Merge vk-gl-cts/vulkan-cts-1.2.2 into vk-gl-cts/vulkan-cts-1.2.3

Change-Id: I39fda12511570ac092cc8c8759797d7c32c08bf6
diff --git a/.travis.yml b/.travis.yml
index de8ff63..c65b709 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,7 +1,7 @@
 language: c++
 
 sudo: required
-dist: trusty
+dist: bionic
 
 cache:
   apt: true
diff --git a/AndroidGen.mk b/AndroidGen.mk
index ff1e09d..76291b2 100644
--- a/AndroidGen.mk
+++ b/AndroidGen.mk
@@ -15,7 +15,6 @@
 	executor/xeCallQueue.cpp \
 	executor/xeCommLink.cpp \
 	executor/xeContainerFormatParser.cpp \
-	executor/xeDefs.cpp \
 	executor/xeLocalTcpIpLink.cpp \
 	executor/xeTcpIpLink.cpp \
 	executor/xeTestCase.cpp \
@@ -24,7 +23,6 @@
 	executor/xeTestLogParser.cpp \
 	executor/xeTestLogWriter.cpp \
 	executor/xeTestResultParser.cpp \
-	executor/xeXMLParser.cpp \
 	executor/xeXMLWriter.cpp \
 	external/vulkancts/framework/vulkan/vkAllocationCallbackUtil.cpp \
 	external/vulkancts/framework/vulkan/vkApiVersion.cpp \
@@ -47,6 +45,7 @@
 	external/vulkancts/framework/vulkan/vkPlatform.cpp \
 	external/vulkancts/framework/vulkan/vkPrograms.cpp \
 	external/vulkancts/framework/vulkan/vkQueryUtil.cpp \
+	external/vulkancts/framework/vulkan/vkRayTracingUtil.cpp \
 	external/vulkancts/framework/vulkan/vkRef.cpp \
 	external/vulkancts/framework/vulkan/vkRefUtil.cpp \
 	external/vulkancts/framework/vulkan/vkRenderDocUtil.cpp \
@@ -60,6 +59,7 @@
 	external/vulkancts/framework/vulkan/vkWsiUtil.cpp \
 	external/vulkancts/framework/vulkan/vkYCbCrImageWithMemory.cpp \
 	external/vulkancts/modules/vulkan/amber/vktAmberExampleTests.cpp \
+	external/vulkancts/modules/vulkan/amber/vktAmberGlslTests.cpp \
 	external/vulkancts/modules/vulkan/amber/vktAmberGraphicsFuzzTests.cpp \
 	external/vulkancts/modules/vulkan/amber/vktAmberHelper.cpp \
 	external/vulkancts/modules/vulkan/amber/vktAmberTestCase.cpp \
@@ -90,6 +90,7 @@
 	external/vulkancts/modules/vulkan/api/vktApiPipelineTests.cpp \
 	external/vulkancts/modules/vulkan/api/vktApiSmokeTests.cpp \
 	external/vulkancts/modules/vulkan/api/vktApiTests.cpp \
+	external/vulkancts/modules/vulkan/api/vktApiToolingInfoTests.cpp \
 	external/vulkancts/modules/vulkan/api/vktApiVersionCheck.cpp \
 	external/vulkancts/modules/vulkan/binding_model/vktBindingBufferDeviceAddressTests.cpp \
 	external/vulkancts/modules/vulkan/binding_model/vktBindingDescriptorCopyTests.cpp \
@@ -121,6 +122,7 @@
 	external/vulkancts/modules/vulkan/draw/vktDrawCreateInfoUtil.cpp \
 	external/vulkancts/modules/vulkan/draw/vktDrawDifferingInterpolationTests.cpp \
 	external/vulkancts/modules/vulkan/draw/vktDrawDiscardRectanglesTests.cpp \
+	external/vulkancts/modules/vulkan/draw/vktDrawExplicitVertexParameterTests.cpp \
 	external/vulkancts/modules/vulkan/draw/vktDrawImageObjectUtil.cpp \
 	external/vulkancts/modules/vulkan/draw/vktDrawIndexedTest.cpp \
 	external/vulkancts/modules/vulkan/draw/vktDrawIndirectTest.cpp \
@@ -128,6 +130,7 @@
 	external/vulkancts/modules/vulkan/draw/vktDrawInvertedDepthRangesTests.cpp \
 	external/vulkancts/modules/vulkan/draw/vktDrawMultipleInterpolationTests.cpp \
 	external/vulkancts/modules/vulkan/draw/vktDrawNegativeViewportHeightTests.cpp \
+	external/vulkancts/modules/vulkan/draw/vktDrawOutputLocationTests.cpp \
 	external/vulkancts/modules/vulkan/draw/vktDrawScissorTests.cpp \
 	external/vulkancts/modules/vulkan/draw/vktDrawShaderDrawParametersTests.cpp \
 	external/vulkancts/modules/vulkan/draw/vktDrawShaderLayerTests.cpp \
@@ -182,6 +185,7 @@
 	external/vulkancts/modules/vulkan/memory/vktMemoryTests.cpp \
 	external/vulkancts/modules/vulkan/memory_model/vktMemoryModelMessagePassing.cpp \
 	external/vulkancts/modules/vulkan/memory_model/vktMemoryModelPadding.cpp \
+	external/vulkancts/modules/vulkan/modifiers/vktModifiersTests.cpp \
 	external/vulkancts/modules/vulkan/multiview/vktMultiViewRenderPassUtil.cpp \
 	external/vulkancts/modules/vulkan/multiview/vktMultiViewRenderTests.cpp \
 	external/vulkancts/modules/vulkan/multiview/vktMultiViewRenderUtil.cpp \
@@ -198,6 +202,7 @@
 	external/vulkancts/modules/vulkan/pipeline/vktPipelineDynamicOffsetTests.cpp \
 	external/vulkancts/modules/vulkan/pipeline/vktPipelineEarlyDestroyTests.cpp \
 	external/vulkancts/modules/vulkan/pipeline/vktPipelineExecutablePropertiesTests.cpp \
+	external/vulkancts/modules/vulkan/pipeline/vktPipelineExtendedDynamicStateTests.cpp \
 	external/vulkancts/modules/vulkan/pipeline/vktPipelineFramebufferAttachmentTests.cpp \
 	external/vulkancts/modules/vulkan/pipeline/vktPipelineImageSamplingInstance.cpp \
 	external/vulkancts/modules/vulkan/pipeline/vktPipelineImageTests.cpp \
@@ -343,6 +348,7 @@
 	external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmSpirvVersion1p4Tests.cpp \
 	external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmSpirvVersionTests.cpp \
 	external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmTests.cpp \
+	external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmTrinaryMinMaxTests.cpp \
 	external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmTypeTests.cpp \
 	external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmUboMatrixPaddingTests.cpp \
 	external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmUtils.cpp \
@@ -402,6 +408,7 @@
 	external/vulkancts/modules/vulkan/texture/vktSampleVerifier.cpp \
 	external/vulkancts/modules/vulkan/texture/vktSampleVerifierUtil.cpp \
 	external/vulkancts/modules/vulkan/texture/vktTextureCompressedFormatTests.cpp \
+	external/vulkancts/modules/vulkan/texture/vktTextureConversionTests.cpp \
 	external/vulkancts/modules/vulkan/texture/vktTextureFilteringAnisotropyTests.cpp \
 	external/vulkancts/modules/vulkan/texture/vktTextureFilteringExplicitLodTests.cpp \
 	external/vulkancts/modules/vulkan/texture/vktTextureFilteringTests.cpp \
@@ -440,6 +447,7 @@
 	external/vulkancts/modules/vulkan/wsi/vktWsiTests.cpp \
 	external/vulkancts/modules/vulkan/ycbcr/vktYCbCrConversionTests.cpp \
 	external/vulkancts/modules/vulkan/ycbcr/vktYCbCrCopyTests.cpp \
+	external/vulkancts/modules/vulkan/ycbcr/vktYCbCrFilteringTests.cpp \
 	external/vulkancts/modules/vulkan/ycbcr/vktYCbCrFormatTests.cpp \
 	external/vulkancts/modules/vulkan/ycbcr/vktYCbCrImageQueryTests.cpp \
 	external/vulkancts/modules/vulkan/ycbcr/vktYCbCrStorageImageWriteTests.cpp \
@@ -489,6 +497,7 @@
 	framework/common/tcuTexture.cpp \
 	framework/common/tcuTextureUtil.cpp \
 	framework/common/tcuThreadUtil.cpp \
+	framework/common/tcuWaiverUtil.cpp \
 	framework/delibs/debase/deDefs.c \
 	framework/delibs/debase/deFloat16.c \
 	framework/delibs/debase/deFloat16Test.c \
@@ -1149,6 +1158,7 @@
 	$(deqp_dir)/external/vulkancts/modules/vulkan/imageless_framebuffer \
 	$(deqp_dir)/external/vulkancts/modules/vulkan/memory \
 	$(deqp_dir)/external/vulkancts/modules/vulkan/memory_model \
+	$(deqp_dir)/external/vulkancts/modules/vulkan/modifiers \
 	$(deqp_dir)/external/vulkancts/modules/vulkan/multiview \
 	$(deqp_dir)/external/vulkancts/modules/vulkan \
 	$(deqp_dir)/external/vulkancts/modules/vulkan/pipeline \
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e0d7d43..ecb1da9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -203,6 +203,7 @@
 	framework/randomshaders
 	framework/egl
 	framework/egl/wrapper
+	framework/xexml
 	external/vulkancts/framework/vulkan
 	)
 
diff --git a/README.md b/README.md
index 0ed668a..03f9070 100644
--- a/README.md
+++ b/README.md
@@ -10,8 +10,10 @@
 Up-to-date documentation for the dEQP is available at
 [Android Open Source Project site](http://source.android.com/devices/graphics/testing.html).
 
-The .qpa logs generated by the conformance tests may contain embedded png images of the results.
-These can be viewed with the [Cherry](https://android.googlesource.com/platform/external/cherry/+/master)
+The .qpa logs generated by the conformance tests may contain embedded PNG images of the results.
+These can be viewed with `scripts/qpa_image_viewer.html`, by opening the file
+with a web browser and following its instructions, or using the
+[Cherry](https://android.googlesource.com/platform/external/cherry/+/master)
 tool.
 
 Khronos Vulkan Conformance Tests
@@ -49,4 +51,4 @@
 The `--angle-path ~/chromium/src/out/Release/` option can then be used to link against and embed the
 ANGLE shared object files.   The full command would be:
 
-	python scripts/android/build_apk.py --sdk <path to Android SDK> --ndk <path to Android NDK> --abis arm64-v8a --angle-path ~/chromium/src/out/Release/
\ No newline at end of file
+	python scripts/android/build_apk.py --sdk <path to Android SDK> --ndk <path to Android NDK> --abis arm64-v8a --angle-path ~/chromium/src/out/Release/
diff --git a/android/cts/master/src/vk-excluded-tests.txt b/android/cts/master/src/vk-excluded-tests.txt
index f526fcb..656c6a4 100644
--- a/android/cts/master/src/vk-excluded-tests.txt
+++ b/android/cts/master/src/vk-excluded-tests.txt
@@ -53,3 +53,8 @@
 
 # Exclude conformance version from android test, issue 1839
 dEQP-VK.api.driver_properties.conformance_version
+
+# VK-GL-CTS 2157, CL 5278
+# Excluded them as Intel HW is failing these tests.
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
diff --git a/android/cts/master/src/vk-master-2019-03-01.txt b/android/cts/master/src/vk-master-2019-03-01.txt
index 35b9668..ee2bfc4 100644
--- a/android/cts/master/src/vk-master-2019-03-01.txt
+++ b/android/cts/master/src/vk-master-2019-03-01.txt
@@ -111722,70 +111722,70 @@
 dEQP-VK.pipeline.depth.format.d32_sfloat_s8_uint.compare_ops.not_equal_less_or_equal_not_equal_greater
 dEQP-VK.pipeline.depth.format.d32_sfloat_s8_uint.compare_ops.not_equal_less_or_equal_not_equal_greater_depth_bounds_test
 dEQP-VK.pipeline.depth.format.d32_sfloat_s8_uint.compare_ops.never_zerodepthbounds_depthdisabled_stencilenabled
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
 dEQP-VK.pipeline.early_destroy.cache
 dEQP-VK.pipeline.early_destroy.no_cache
 dEQP-VK.pipeline.image.suballocation.sampling_type.combined.view_type.1d.format.r4g4_unorm_pack8.count_1.size.1x1
@@ -171680,18 +171680,18 @@
 dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_ignores_centroid.137_191_1.samples_16
 dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_ignores_centroid.137_191_1.samples_32
 dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_ignores_centroid.137_191_1.samples_64
-dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_consistency.128_128_1.samples_2
-dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_consistency.128_128_1.samples_4
-dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_consistency.128_128_1.samples_8
-dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_consistency.128_128_1.samples_16
-dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_consistency.128_128_1.samples_32
-dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_consistency.128_128_1.samples_64
-dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_consistency.137_191_1.samples_2
-dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_consistency.137_191_1.samples_4
-dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_consistency.137_191_1.samples_8
-dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_consistency.137_191_1.samples_16
-dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_consistency.137_191_1.samples_32
-dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_consistency.137_191_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.all_components.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.all_components.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.all_components.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.all_components.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.all_components.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.all_components.128_128_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.all_components.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.all_components.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.all_components.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.all_components.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.all_components.137_191_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.all_components.137_191_1.samples_64
 dEQP-VK.pipeline.multisample_interpolation.sample_qualifier_distinct_values.128_128_1.samples_2
 dEQP-VK.pipeline.multisample_interpolation.sample_qualifier_distinct_values.128_128_1.samples_4
 dEQP-VK.pipeline.multisample_interpolation.sample_qualifier_distinct_values.128_128_1.samples_8
@@ -171704,18 +171704,18 @@
 dEQP-VK.pipeline.multisample_interpolation.sample_qualifier_distinct_values.137_191_1.samples_16
 dEQP-VK.pipeline.multisample_interpolation.sample_qualifier_distinct_values.137_191_1.samples_32
 dEQP-VK.pipeline.multisample_interpolation.sample_qualifier_distinct_values.137_191_1.samples_64
-dEQP-VK.pipeline.multisample_interpolation.centroid_interpolate_at_consistency.128_128_1.samples_2
-dEQP-VK.pipeline.multisample_interpolation.centroid_interpolate_at_consistency.128_128_1.samples_4
-dEQP-VK.pipeline.multisample_interpolation.centroid_interpolate_at_consistency.128_128_1.samples_8
-dEQP-VK.pipeline.multisample_interpolation.centroid_interpolate_at_consistency.128_128_1.samples_16
-dEQP-VK.pipeline.multisample_interpolation.centroid_interpolate_at_consistency.128_128_1.samples_32
-dEQP-VK.pipeline.multisample_interpolation.centroid_interpolate_at_consistency.128_128_1.samples_64
-dEQP-VK.pipeline.multisample_interpolation.centroid_interpolate_at_consistency.137_191_1.samples_2
-dEQP-VK.pipeline.multisample_interpolation.centroid_interpolate_at_consistency.137_191_1.samples_4
-dEQP-VK.pipeline.multisample_interpolation.centroid_interpolate_at_consistency.137_191_1.samples_8
-dEQP-VK.pipeline.multisample_interpolation.centroid_interpolate_at_consistency.137_191_1.samples_16
-dEQP-VK.pipeline.multisample_interpolation.centroid_interpolate_at_consistency.137_191_1.samples_32
-dEQP-VK.pipeline.multisample_interpolation.centroid_interpolate_at_consistency.137_191_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.all_components.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.all_components.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.all_components.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.all_components.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.all_components.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.all_components.128_128_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.all_components.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.all_components.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.all_components.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.all_components.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.all_components.137_191_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.all_components.137_191_1.samples_64
 dEQP-VK.pipeline.multisample_interpolation.centroid_qualifier_inside_primitive.128_128_1.samples_2
 dEQP-VK.pipeline.multisample_interpolation.centroid_qualifier_inside_primitive.128_128_1.samples_4
 dEQP-VK.pipeline.multisample_interpolation.centroid_qualifier_inside_primitive.128_128_1.samples_8
@@ -171740,18 +171740,18 @@
 dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_pixel_center.137_191_1.samples_16
 dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_pixel_center.137_191_1.samples_32
 dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_pixel_center.137_191_1.samples_64
-dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.128_128_1.samples_2
-dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.128_128_1.samples_4
-dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.128_128_1.samples_8
-dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.128_128_1.samples_16
-dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.128_128_1.samples_32
-dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.128_128_1.samples_64
-dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.137_191_1.samples_2
-dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.137_191_1.samples_4
-dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.137_191_1.samples_8
-dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.137_191_1.samples_16
-dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.137_191_1.samples_32
-dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.137_191_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.all_components.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.all_components.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.all_components.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.all_components.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.all_components.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.all_components.128_128_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.all_components.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.all_components.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.all_components.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.all_components.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.all_components.137_191_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.all_components.137_191_1.samples_64
 dEQP-VK.pipeline.multisample_shader_builtin.sample_id.128_128_1.samples_2
 dEQP-VK.pipeline.multisample_shader_builtin.sample_id.128_128_1.samples_4
 dEQP-VK.pipeline.multisample_shader_builtin.sample_id.128_128_1.samples_8
@@ -177008,7 +177008,7 @@
 dEQP-VK.pipeline.framebuffer_attachment.diff_attachments_2d_32x32_48x48_ms
 dEQP-VK.pipeline.framebuffer_attachment.diff_attachments_2d_32x32_39x41_ms
 dEQP-VK.pipeline.framebuffer_attachment.diff_attachments_2d_19x27_32x32_ms
-dEQP-VK.pipeline.shader_stencil_export.op_replace
+dEQP-VK.pipeline.shader_stencil_export.s8_uint.op_replace
 dEQP-VK.pipeline.derivative.compute.derivative_by_handle
 dEQP-VK.pipeline.derivative.compute.derivative_by_index
 dEQP-VK.binding_model.shader_access.primary_cmd_buf.sampler_mutable.no_access.single_descriptor.1d
@@ -260983,317 +260983,59 @@
 dEQP-VK.glsl.builtin_var.input_variations.input_builtin_constant
 dEQP-VK.glsl.builtin_var.input_variations.input_varying_constant
 dEQP-VK.glsl.builtin_var.input_variations.input_builtin_varying_constant
-dEQP-VK.glsl.builtin.function.common.abs.int_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.abs.int_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.abs.int_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.abs.int_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.abs.int_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.abs.int_mediump_compute
-dEQP-VK.glsl.builtin.function.common.abs.int_highp_vertex
-dEQP-VK.glsl.builtin.function.common.abs.int_highp_fragment
-dEQP-VK.glsl.builtin.function.common.abs.int_highp_geometry
-dEQP-VK.glsl.builtin.function.common.abs.int_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.abs.int_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.abs.int_highp_compute
-dEQP-VK.glsl.builtin.function.common.abs.ivec2_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.abs.ivec2_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.abs.ivec2_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.abs.ivec2_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.abs.ivec2_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.abs.ivec2_mediump_compute
-dEQP-VK.glsl.builtin.function.common.abs.ivec2_highp_vertex
-dEQP-VK.glsl.builtin.function.common.abs.ivec2_highp_fragment
-dEQP-VK.glsl.builtin.function.common.abs.ivec2_highp_geometry
-dEQP-VK.glsl.builtin.function.common.abs.ivec2_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.abs.ivec2_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.abs.ivec2_highp_compute
-dEQP-VK.glsl.builtin.function.common.abs.ivec3_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.abs.ivec3_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.abs.ivec3_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.abs.ivec3_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.abs.ivec3_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.abs.ivec3_mediump_compute
-dEQP-VK.glsl.builtin.function.common.abs.ivec3_highp_vertex
-dEQP-VK.glsl.builtin.function.common.abs.ivec3_highp_fragment
-dEQP-VK.glsl.builtin.function.common.abs.ivec3_highp_geometry
-dEQP-VK.glsl.builtin.function.common.abs.ivec3_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.abs.ivec3_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.abs.ivec3_highp_compute
-dEQP-VK.glsl.builtin.function.common.abs.ivec4_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.abs.ivec4_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.abs.ivec4_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.abs.ivec4_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.abs.ivec4_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.abs.ivec4_mediump_compute
-dEQP-VK.glsl.builtin.function.common.abs.ivec4_highp_vertex
-dEQP-VK.glsl.builtin.function.common.abs.ivec4_highp_fragment
-dEQP-VK.glsl.builtin.function.common.abs.ivec4_highp_geometry
-dEQP-VK.glsl.builtin.function.common.abs.ivec4_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.abs.ivec4_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.abs.ivec4_highp_compute
-dEQP-VK.glsl.builtin.function.common.sign.int_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.sign.int_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.sign.int_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.sign.int_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.sign.int_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.sign.int_mediump_compute
-dEQP-VK.glsl.builtin.function.common.sign.int_highp_vertex
-dEQP-VK.glsl.builtin.function.common.sign.int_highp_fragment
-dEQP-VK.glsl.builtin.function.common.sign.int_highp_geometry
-dEQP-VK.glsl.builtin.function.common.sign.int_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.sign.int_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.sign.int_highp_compute
-dEQP-VK.glsl.builtin.function.common.sign.ivec2_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.sign.ivec2_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.sign.ivec2_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.sign.ivec2_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.sign.ivec2_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.sign.ivec2_mediump_compute
-dEQP-VK.glsl.builtin.function.common.sign.ivec2_highp_vertex
-dEQP-VK.glsl.builtin.function.common.sign.ivec2_highp_fragment
-dEQP-VK.glsl.builtin.function.common.sign.ivec2_highp_geometry
-dEQP-VK.glsl.builtin.function.common.sign.ivec2_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.sign.ivec2_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.sign.ivec2_highp_compute
-dEQP-VK.glsl.builtin.function.common.sign.ivec3_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.sign.ivec3_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.sign.ivec3_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.sign.ivec3_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.sign.ivec3_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.sign.ivec3_mediump_compute
-dEQP-VK.glsl.builtin.function.common.sign.ivec3_highp_vertex
-dEQP-VK.glsl.builtin.function.common.sign.ivec3_highp_fragment
-dEQP-VK.glsl.builtin.function.common.sign.ivec3_highp_geometry
-dEQP-VK.glsl.builtin.function.common.sign.ivec3_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.sign.ivec3_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.sign.ivec3_highp_compute
-dEQP-VK.glsl.builtin.function.common.sign.ivec4_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.sign.ivec4_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.sign.ivec4_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.sign.ivec4_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.sign.ivec4_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.sign.ivec4_mediump_compute
-dEQP-VK.glsl.builtin.function.common.sign.ivec4_highp_vertex
-dEQP-VK.glsl.builtin.function.common.sign.ivec4_highp_fragment
-dEQP-VK.glsl.builtin.function.common.sign.ivec4_highp_geometry
-dEQP-VK.glsl.builtin.function.common.sign.ivec4_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.sign.ivec4_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.sign.ivec4_highp_compute
-dEQP-VK.glsl.builtin.function.common.isnan.float_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.isnan.float_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.isnan.float_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.isnan.float_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.isnan.float_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.isnan.float_mediump_compute
-dEQP-VK.glsl.builtin.function.common.isnan.float_highp_vertex
-dEQP-VK.glsl.builtin.function.common.isnan.float_highp_fragment
-dEQP-VK.glsl.builtin.function.common.isnan.float_highp_geometry
-dEQP-VK.glsl.builtin.function.common.isnan.float_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.isnan.float_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.isnan.float_highp_compute
-dEQP-VK.glsl.builtin.function.common.isnan.vec2_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.isnan.vec2_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.isnan.vec2_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.isnan.vec2_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.isnan.vec2_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.isnan.vec2_mediump_compute
-dEQP-VK.glsl.builtin.function.common.isnan.vec2_highp_vertex
-dEQP-VK.glsl.builtin.function.common.isnan.vec2_highp_fragment
-dEQP-VK.glsl.builtin.function.common.isnan.vec2_highp_geometry
-dEQP-VK.glsl.builtin.function.common.isnan.vec2_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.isnan.vec2_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.isnan.vec2_highp_compute
-dEQP-VK.glsl.builtin.function.common.isnan.vec3_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.isnan.vec3_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.isnan.vec3_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.isnan.vec3_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.isnan.vec3_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.isnan.vec3_mediump_compute
-dEQP-VK.glsl.builtin.function.common.isnan.vec3_highp_vertex
-dEQP-VK.glsl.builtin.function.common.isnan.vec3_highp_fragment
-dEQP-VK.glsl.builtin.function.common.isnan.vec3_highp_geometry
-dEQP-VK.glsl.builtin.function.common.isnan.vec3_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.isnan.vec3_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.isnan.vec3_highp_compute
-dEQP-VK.glsl.builtin.function.common.isnan.vec4_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.isnan.vec4_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.isnan.vec4_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.isnan.vec4_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.isnan.vec4_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.isnan.vec4_mediump_compute
-dEQP-VK.glsl.builtin.function.common.isnan.vec4_highp_vertex
-dEQP-VK.glsl.builtin.function.common.isnan.vec4_highp_fragment
-dEQP-VK.glsl.builtin.function.common.isnan.vec4_highp_geometry
-dEQP-VK.glsl.builtin.function.common.isnan.vec4_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.isnan.vec4_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.isnan.vec4_highp_compute
-dEQP-VK.glsl.builtin.function.common.isinf.float_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.isinf.float_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.isinf.float_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.isinf.float_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.isinf.float_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.isinf.float_mediump_compute
-dEQP-VK.glsl.builtin.function.common.isinf.float_highp_vertex
-dEQP-VK.glsl.builtin.function.common.isinf.float_highp_fragment
-dEQP-VK.glsl.builtin.function.common.isinf.float_highp_geometry
-dEQP-VK.glsl.builtin.function.common.isinf.float_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.isinf.float_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.isinf.float_highp_compute
-dEQP-VK.glsl.builtin.function.common.isinf.vec2_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.isinf.vec2_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.isinf.vec2_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.isinf.vec2_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.isinf.vec2_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.isinf.vec2_mediump_compute
-dEQP-VK.glsl.builtin.function.common.isinf.vec2_highp_vertex
-dEQP-VK.glsl.builtin.function.common.isinf.vec2_highp_fragment
-dEQP-VK.glsl.builtin.function.common.isinf.vec2_highp_geometry
-dEQP-VK.glsl.builtin.function.common.isinf.vec2_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.isinf.vec2_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.isinf.vec2_highp_compute
-dEQP-VK.glsl.builtin.function.common.isinf.vec3_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.isinf.vec3_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.isinf.vec3_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.isinf.vec3_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.isinf.vec3_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.isinf.vec3_mediump_compute
-dEQP-VK.glsl.builtin.function.common.isinf.vec3_highp_vertex
-dEQP-VK.glsl.builtin.function.common.isinf.vec3_highp_fragment
-dEQP-VK.glsl.builtin.function.common.isinf.vec3_highp_geometry
-dEQP-VK.glsl.builtin.function.common.isinf.vec3_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.isinf.vec3_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.isinf.vec3_highp_compute
-dEQP-VK.glsl.builtin.function.common.isinf.vec4_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.isinf.vec4_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.isinf.vec4_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.isinf.vec4_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.isinf.vec4_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.isinf.vec4_mediump_compute
-dEQP-VK.glsl.builtin.function.common.isinf.vec4_highp_vertex
-dEQP-VK.glsl.builtin.function.common.isinf.vec4_highp_fragment
-dEQP-VK.glsl.builtin.function.common.isinf.vec4_highp_geometry
-dEQP-VK.glsl.builtin.function.common.isinf.vec4_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.isinf.vec4_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.isinf.vec4_highp_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.float_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.float_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.float_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.float_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.float_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstoint.float_mediump_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.float_highp_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.float_highp_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.float_highp_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.float_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.float_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstoint.float_highp_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec2_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec2_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec2_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec2_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec2_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec2_mediump_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec2_highp_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec2_highp_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec2_highp_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec2_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec2_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec2_highp_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec3_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec3_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec3_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec3_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec3_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec3_mediump_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec3_highp_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec3_highp_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec3_highp_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec3_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec3_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec3_highp_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec4_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec4_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec4_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec4_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec4_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec4_mediump_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec4_highp_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec4_highp_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec4_highp_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec4_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec4_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec4_highp_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.float_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.float_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.float_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.float_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.float_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstouint.float_mediump_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.float_highp_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.float_highp_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.float_highp_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.float_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.float_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstouint.float_highp_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec2_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec2_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec2_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec2_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec2_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec2_mediump_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec2_highp_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec2_highp_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec2_highp_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec2_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec2_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec2_highp_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec3_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec3_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec3_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec3_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec3_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec3_mediump_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec3_highp_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec3_highp_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec3_highp_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec3_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec3_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec3_highp_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec4_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec4_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec4_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec4_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec4_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec4_mediump_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec4_highp_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec4_highp_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec4_highp_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec4_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec4_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec4_highp_compute
-dEQP-VK.glsl.builtin.function.common.intbitstofloat.int_highp_geometry
-dEQP-VK.glsl.builtin.function.common.intbitstofloat.int_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.intbitstofloat.int_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.intbitstofloat.int_highp_compute
-dEQP-VK.glsl.builtin.function.common.intbitstofloat.ivec2_highp_geometry
-dEQP-VK.glsl.builtin.function.common.intbitstofloat.ivec2_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.intbitstofloat.ivec2_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.intbitstofloat.ivec2_highp_compute
-dEQP-VK.glsl.builtin.function.common.intbitstofloat.ivec3_highp_geometry
-dEQP-VK.glsl.builtin.function.common.intbitstofloat.ivec3_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.intbitstofloat.ivec3_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.intbitstofloat.ivec3_highp_compute
-dEQP-VK.glsl.builtin.function.common.uintbitstofloat.uint_highp_geometry
-dEQP-VK.glsl.builtin.function.common.uintbitstofloat.uint_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.uintbitstofloat.uint_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.uintbitstofloat.uint_highp_compute
-dEQP-VK.glsl.builtin.function.common.uintbitstofloat.uvec2_highp_geometry
-dEQP-VK.glsl.builtin.function.common.uintbitstofloat.uvec2_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.uintbitstofloat.uvec2_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.uintbitstofloat.uvec2_highp_compute
-dEQP-VK.glsl.builtin.function.common.uintbitstofloat.uvec3_highp_geometry
-dEQP-VK.glsl.builtin.function.common.uintbitstofloat.uvec3_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.uintbitstofloat.uvec3_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.uintbitstofloat.uvec3_highp_compute
 dEQP-VK.glsl.builtin.function.integer.uaddcarry.uint_mediump_vertex
 dEQP-VK.glsl.builtin.function.integer.uaddcarry.uint_mediump_fragment
diff --git a/android/cts/master/vk-master-2019-03-01.txt b/android/cts/master/vk-master-2019-03-01.txt
index 13f24a9..d2703fb 100644
--- a/android/cts/master/vk-master-2019-03-01.txt
+++ b/android/cts/master/vk-master-2019-03-01.txt
@@ -111722,70 +111722,70 @@
 dEQP-VK.pipeline.depth.format.d32_sfloat_s8_uint.compare_ops.not_equal_less_or_equal_not_equal_greater
 dEQP-VK.pipeline.depth.format.d32_sfloat_s8_uint.compare_ops.not_equal_less_or_equal_not_equal_greater_depth_bounds_test
 dEQP-VK.pipeline.depth.format.d32_sfloat_s8_uint.compare_ops.never_zerodepthbounds_depthdisabled_stencilenabled
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.graphics.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
-dEQP-VK.pipeline.dynamic_offset.compute.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.single_set.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.single_set.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
 dEQP-VK.pipeline.early_destroy.cache
 dEQP-VK.pipeline.early_destroy.no_cache
 dEQP-VK.pipeline.image.suballocation.sampling_type.combined.view_type.1d.format.r4g4_unorm_pack8.count_1.size.1x1
@@ -171680,18 +171680,18 @@
 dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_ignores_centroid.137_191_1.samples_16
 dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_ignores_centroid.137_191_1.samples_32
 dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_ignores_centroid.137_191_1.samples_64
-dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_consistency.128_128_1.samples_2
-dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_consistency.128_128_1.samples_4
-dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_consistency.128_128_1.samples_8
-dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_consistency.128_128_1.samples_16
-dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_consistency.128_128_1.samples_32
-dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_consistency.128_128_1.samples_64
-dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_consistency.137_191_1.samples_2
-dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_consistency.137_191_1.samples_4
-dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_consistency.137_191_1.samples_8
-dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_consistency.137_191_1.samples_16
-dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_consistency.137_191_1.samples_32
-dEQP-VK.pipeline.multisample_interpolation.sample_interpolate_at_consistency.137_191_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.all_components.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.all_components.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.all_components.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.all_components.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.all_components.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.all_components.128_128_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.all_components.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.all_components.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.all_components.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.all_components.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.all_components.137_191_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.all_components.137_191_1.samples_64
 dEQP-VK.pipeline.multisample_interpolation.sample_qualifier_distinct_values.128_128_1.samples_2
 dEQP-VK.pipeline.multisample_interpolation.sample_qualifier_distinct_values.128_128_1.samples_4
 dEQP-VK.pipeline.multisample_interpolation.sample_qualifier_distinct_values.128_128_1.samples_8
@@ -171704,18 +171704,18 @@
 dEQP-VK.pipeline.multisample_interpolation.sample_qualifier_distinct_values.137_191_1.samples_16
 dEQP-VK.pipeline.multisample_interpolation.sample_qualifier_distinct_values.137_191_1.samples_32
 dEQP-VK.pipeline.multisample_interpolation.sample_qualifier_distinct_values.137_191_1.samples_64
-dEQP-VK.pipeline.multisample_interpolation.centroid_interpolate_at_consistency.128_128_1.samples_2
-dEQP-VK.pipeline.multisample_interpolation.centroid_interpolate_at_consistency.128_128_1.samples_4
-dEQP-VK.pipeline.multisample_interpolation.centroid_interpolate_at_consistency.128_128_1.samples_8
-dEQP-VK.pipeline.multisample_interpolation.centroid_interpolate_at_consistency.128_128_1.samples_16
-dEQP-VK.pipeline.multisample_interpolation.centroid_interpolate_at_consistency.128_128_1.samples_32
-dEQP-VK.pipeline.multisample_interpolation.centroid_interpolate_at_consistency.128_128_1.samples_64
-dEQP-VK.pipeline.multisample_interpolation.centroid_interpolate_at_consistency.137_191_1.samples_2
-dEQP-VK.pipeline.multisample_interpolation.centroid_interpolate_at_consistency.137_191_1.samples_4
-dEQP-VK.pipeline.multisample_interpolation.centroid_interpolate_at_consistency.137_191_1.samples_8
-dEQP-VK.pipeline.multisample_interpolation.centroid_interpolate_at_consistency.137_191_1.samples_16
-dEQP-VK.pipeline.multisample_interpolation.centroid_interpolate_at_consistency.137_191_1.samples_32
-dEQP-VK.pipeline.multisample_interpolation.centroid_interpolate_at_consistency.137_191_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.all_components.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.all_components.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.all_components.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.all_components.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.all_components.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.all_components.128_128_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.all_components.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.all_components.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.all_components.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.all_components.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.all_components.137_191_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.all_components.137_191_1.samples_64
 dEQP-VK.pipeline.multisample_interpolation.centroid_qualifier_inside_primitive.128_128_1.samples_2
 dEQP-VK.pipeline.multisample_interpolation.centroid_qualifier_inside_primitive.128_128_1.samples_4
 dEQP-VK.pipeline.multisample_interpolation.centroid_qualifier_inside_primitive.128_128_1.samples_8
@@ -171740,18 +171740,18 @@
 dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_pixel_center.137_191_1.samples_16
 dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_pixel_center.137_191_1.samples_32
 dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_pixel_center.137_191_1.samples_64
-dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.128_128_1.samples_2
-dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.128_128_1.samples_4
-dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.128_128_1.samples_8
-dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.128_128_1.samples_16
-dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.128_128_1.samples_32
-dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.128_128_1.samples_64
-dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.137_191_1.samples_2
-dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.137_191_1.samples_4
-dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.137_191_1.samples_8
-dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.137_191_1.samples_16
-dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.137_191_1.samples_32
-dEQP-VK.pipeline.multisample_interpolation.offset_interpolate_at_sample_position.137_191_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.all_components.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.all_components.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.all_components.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.all_components.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.all_components.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.all_components.128_128_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.all_components.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.all_components.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.all_components.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.all_components.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.all_components.137_191_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.all_components.137_191_1.samples_64
 dEQP-VK.pipeline.multisample_shader_builtin.sample_id.128_128_1.samples_2
 dEQP-VK.pipeline.multisample_shader_builtin.sample_id.128_128_1.samples_4
 dEQP-VK.pipeline.multisample_shader_builtin.sample_id.128_128_1.samples_8
@@ -177008,7 +177008,7 @@
 dEQP-VK.pipeline.framebuffer_attachment.diff_attachments_2d_32x32_48x48_ms
 dEQP-VK.pipeline.framebuffer_attachment.diff_attachments_2d_32x32_39x41_ms
 dEQP-VK.pipeline.framebuffer_attachment.diff_attachments_2d_19x27_32x32_ms
-dEQP-VK.pipeline.shader_stencil_export.op_replace
+dEQP-VK.pipeline.shader_stencil_export.s8_uint.op_replace
 dEQP-VK.pipeline.derivative.compute.derivative_by_handle
 dEQP-VK.pipeline.derivative.compute.derivative_by_index
 dEQP-VK.binding_model.shader_access.primary_cmd_buf.sampler_mutable.no_access.single_descriptor.1d
@@ -260983,317 +260983,59 @@
 dEQP-VK.glsl.builtin_var.input_variations.input_builtin_constant
 dEQP-VK.glsl.builtin_var.input_variations.input_varying_constant
 dEQP-VK.glsl.builtin_var.input_variations.input_builtin_varying_constant
-dEQP-VK.glsl.builtin.function.common.abs.int_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.abs.int_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.abs.int_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.abs.int_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.abs.int_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.abs.int_mediump_compute
-dEQP-VK.glsl.builtin.function.common.abs.int_highp_vertex
-dEQP-VK.glsl.builtin.function.common.abs.int_highp_fragment
-dEQP-VK.glsl.builtin.function.common.abs.int_highp_geometry
-dEQP-VK.glsl.builtin.function.common.abs.int_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.abs.int_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.abs.int_highp_compute
-dEQP-VK.glsl.builtin.function.common.abs.ivec2_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.abs.ivec2_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.abs.ivec2_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.abs.ivec2_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.abs.ivec2_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.abs.ivec2_mediump_compute
-dEQP-VK.glsl.builtin.function.common.abs.ivec2_highp_vertex
-dEQP-VK.glsl.builtin.function.common.abs.ivec2_highp_fragment
-dEQP-VK.glsl.builtin.function.common.abs.ivec2_highp_geometry
-dEQP-VK.glsl.builtin.function.common.abs.ivec2_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.abs.ivec2_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.abs.ivec2_highp_compute
-dEQP-VK.glsl.builtin.function.common.abs.ivec3_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.abs.ivec3_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.abs.ivec3_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.abs.ivec3_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.abs.ivec3_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.abs.ivec3_mediump_compute
-dEQP-VK.glsl.builtin.function.common.abs.ivec3_highp_vertex
-dEQP-VK.glsl.builtin.function.common.abs.ivec3_highp_fragment
-dEQP-VK.glsl.builtin.function.common.abs.ivec3_highp_geometry
-dEQP-VK.glsl.builtin.function.common.abs.ivec3_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.abs.ivec3_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.abs.ivec3_highp_compute
-dEQP-VK.glsl.builtin.function.common.abs.ivec4_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.abs.ivec4_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.abs.ivec4_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.abs.ivec4_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.abs.ivec4_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.abs.ivec4_mediump_compute
-dEQP-VK.glsl.builtin.function.common.abs.ivec4_highp_vertex
-dEQP-VK.glsl.builtin.function.common.abs.ivec4_highp_fragment
-dEQP-VK.glsl.builtin.function.common.abs.ivec4_highp_geometry
-dEQP-VK.glsl.builtin.function.common.abs.ivec4_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.abs.ivec4_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.abs.ivec4_highp_compute
-dEQP-VK.glsl.builtin.function.common.sign.int_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.sign.int_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.sign.int_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.sign.int_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.sign.int_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.sign.int_mediump_compute
-dEQP-VK.glsl.builtin.function.common.sign.int_highp_vertex
-dEQP-VK.glsl.builtin.function.common.sign.int_highp_fragment
-dEQP-VK.glsl.builtin.function.common.sign.int_highp_geometry
-dEQP-VK.glsl.builtin.function.common.sign.int_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.sign.int_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.sign.int_highp_compute
-dEQP-VK.glsl.builtin.function.common.sign.ivec2_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.sign.ivec2_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.sign.ivec2_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.sign.ivec2_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.sign.ivec2_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.sign.ivec2_mediump_compute
-dEQP-VK.glsl.builtin.function.common.sign.ivec2_highp_vertex
-dEQP-VK.glsl.builtin.function.common.sign.ivec2_highp_fragment
-dEQP-VK.glsl.builtin.function.common.sign.ivec2_highp_geometry
-dEQP-VK.glsl.builtin.function.common.sign.ivec2_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.sign.ivec2_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.sign.ivec2_highp_compute
-dEQP-VK.glsl.builtin.function.common.sign.ivec3_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.sign.ivec3_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.sign.ivec3_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.sign.ivec3_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.sign.ivec3_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.sign.ivec3_mediump_compute
-dEQP-VK.glsl.builtin.function.common.sign.ivec3_highp_vertex
-dEQP-VK.glsl.builtin.function.common.sign.ivec3_highp_fragment
-dEQP-VK.glsl.builtin.function.common.sign.ivec3_highp_geometry
-dEQP-VK.glsl.builtin.function.common.sign.ivec3_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.sign.ivec3_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.sign.ivec3_highp_compute
-dEQP-VK.glsl.builtin.function.common.sign.ivec4_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.sign.ivec4_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.sign.ivec4_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.sign.ivec4_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.sign.ivec4_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.sign.ivec4_mediump_compute
-dEQP-VK.glsl.builtin.function.common.sign.ivec4_highp_vertex
-dEQP-VK.glsl.builtin.function.common.sign.ivec4_highp_fragment
-dEQP-VK.glsl.builtin.function.common.sign.ivec4_highp_geometry
-dEQP-VK.glsl.builtin.function.common.sign.ivec4_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.sign.ivec4_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.sign.ivec4_highp_compute
-dEQP-VK.glsl.builtin.function.common.isnan.float_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.isnan.float_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.isnan.float_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.isnan.float_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.isnan.float_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.isnan.float_mediump_compute
-dEQP-VK.glsl.builtin.function.common.isnan.float_highp_vertex
-dEQP-VK.glsl.builtin.function.common.isnan.float_highp_fragment
-dEQP-VK.glsl.builtin.function.common.isnan.float_highp_geometry
-dEQP-VK.glsl.builtin.function.common.isnan.float_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.isnan.float_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.isnan.float_highp_compute
-dEQP-VK.glsl.builtin.function.common.isnan.vec2_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.isnan.vec2_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.isnan.vec2_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.isnan.vec2_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.isnan.vec2_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.isnan.vec2_mediump_compute
-dEQP-VK.glsl.builtin.function.common.isnan.vec2_highp_vertex
-dEQP-VK.glsl.builtin.function.common.isnan.vec2_highp_fragment
-dEQP-VK.glsl.builtin.function.common.isnan.vec2_highp_geometry
-dEQP-VK.glsl.builtin.function.common.isnan.vec2_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.isnan.vec2_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.isnan.vec2_highp_compute
-dEQP-VK.glsl.builtin.function.common.isnan.vec3_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.isnan.vec3_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.isnan.vec3_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.isnan.vec3_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.isnan.vec3_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.isnan.vec3_mediump_compute
-dEQP-VK.glsl.builtin.function.common.isnan.vec3_highp_vertex
-dEQP-VK.glsl.builtin.function.common.isnan.vec3_highp_fragment
-dEQP-VK.glsl.builtin.function.common.isnan.vec3_highp_geometry
-dEQP-VK.glsl.builtin.function.common.isnan.vec3_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.isnan.vec3_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.isnan.vec3_highp_compute
-dEQP-VK.glsl.builtin.function.common.isnan.vec4_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.isnan.vec4_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.isnan.vec4_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.isnan.vec4_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.isnan.vec4_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.isnan.vec4_mediump_compute
-dEQP-VK.glsl.builtin.function.common.isnan.vec4_highp_vertex
-dEQP-VK.glsl.builtin.function.common.isnan.vec4_highp_fragment
-dEQP-VK.glsl.builtin.function.common.isnan.vec4_highp_geometry
-dEQP-VK.glsl.builtin.function.common.isnan.vec4_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.isnan.vec4_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.isnan.vec4_highp_compute
-dEQP-VK.glsl.builtin.function.common.isinf.float_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.isinf.float_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.isinf.float_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.isinf.float_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.isinf.float_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.isinf.float_mediump_compute
-dEQP-VK.glsl.builtin.function.common.isinf.float_highp_vertex
-dEQP-VK.glsl.builtin.function.common.isinf.float_highp_fragment
-dEQP-VK.glsl.builtin.function.common.isinf.float_highp_geometry
-dEQP-VK.glsl.builtin.function.common.isinf.float_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.isinf.float_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.isinf.float_highp_compute
-dEQP-VK.glsl.builtin.function.common.isinf.vec2_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.isinf.vec2_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.isinf.vec2_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.isinf.vec2_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.isinf.vec2_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.isinf.vec2_mediump_compute
-dEQP-VK.glsl.builtin.function.common.isinf.vec2_highp_vertex
-dEQP-VK.glsl.builtin.function.common.isinf.vec2_highp_fragment
-dEQP-VK.glsl.builtin.function.common.isinf.vec2_highp_geometry
-dEQP-VK.glsl.builtin.function.common.isinf.vec2_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.isinf.vec2_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.isinf.vec2_highp_compute
-dEQP-VK.glsl.builtin.function.common.isinf.vec3_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.isinf.vec3_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.isinf.vec3_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.isinf.vec3_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.isinf.vec3_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.isinf.vec3_mediump_compute
-dEQP-VK.glsl.builtin.function.common.isinf.vec3_highp_vertex
-dEQP-VK.glsl.builtin.function.common.isinf.vec3_highp_fragment
-dEQP-VK.glsl.builtin.function.common.isinf.vec3_highp_geometry
-dEQP-VK.glsl.builtin.function.common.isinf.vec3_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.isinf.vec3_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.isinf.vec3_highp_compute
-dEQP-VK.glsl.builtin.function.common.isinf.vec4_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.isinf.vec4_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.isinf.vec4_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.isinf.vec4_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.isinf.vec4_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.isinf.vec4_mediump_compute
-dEQP-VK.glsl.builtin.function.common.isinf.vec4_highp_vertex
-dEQP-VK.glsl.builtin.function.common.isinf.vec4_highp_fragment
-dEQP-VK.glsl.builtin.function.common.isinf.vec4_highp_geometry
-dEQP-VK.glsl.builtin.function.common.isinf.vec4_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.isinf.vec4_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.isinf.vec4_highp_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.float_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.float_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.float_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.float_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.float_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstoint.float_mediump_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.float_highp_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.float_highp_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.float_highp_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.float_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.float_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstoint.float_highp_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec2_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec2_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec2_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec2_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec2_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec2_mediump_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec2_highp_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec2_highp_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec2_highp_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec2_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec2_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec2_highp_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec3_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec3_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec3_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec3_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec3_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec3_mediump_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec3_highp_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec3_highp_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec3_highp_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec3_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec3_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec3_highp_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec4_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec4_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec4_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec4_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec4_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec4_mediump_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec4_highp_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec4_highp_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec4_highp_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec4_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec4_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstoint.vec4_highp_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.float_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.float_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.float_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.float_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.float_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstouint.float_mediump_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.float_highp_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.float_highp_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.float_highp_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.float_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.float_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstouint.float_highp_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec2_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec2_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec2_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec2_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec2_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec2_mediump_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec2_highp_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec2_highp_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec2_highp_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec2_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec2_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec2_highp_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec3_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec3_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec3_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec3_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec3_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec3_mediump_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec3_highp_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec3_highp_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec3_highp_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec3_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec3_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec3_highp_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec4_mediump_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec4_mediump_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec4_mediump_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec4_mediump_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec4_mediump_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec4_mediump_compute
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec4_highp_vertex
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec4_highp_fragment
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec4_highp_geometry
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec4_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec4_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.floatbitstouint.vec4_highp_compute
-dEQP-VK.glsl.builtin.function.common.intbitstofloat.int_highp_geometry
-dEQP-VK.glsl.builtin.function.common.intbitstofloat.int_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.intbitstofloat.int_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.intbitstofloat.int_highp_compute
-dEQP-VK.glsl.builtin.function.common.intbitstofloat.ivec2_highp_geometry
-dEQP-VK.glsl.builtin.function.common.intbitstofloat.ivec2_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.intbitstofloat.ivec2_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.intbitstofloat.ivec2_highp_compute
-dEQP-VK.glsl.builtin.function.common.intbitstofloat.ivec3_highp_geometry
-dEQP-VK.glsl.builtin.function.common.intbitstofloat.ivec3_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.intbitstofloat.ivec3_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.intbitstofloat.ivec3_highp_compute
-dEQP-VK.glsl.builtin.function.common.uintbitstofloat.uint_highp_geometry
-dEQP-VK.glsl.builtin.function.common.uintbitstofloat.uint_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.uintbitstofloat.uint_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.uintbitstofloat.uint_highp_compute
-dEQP-VK.glsl.builtin.function.common.uintbitstofloat.uvec2_highp_geometry
-dEQP-VK.glsl.builtin.function.common.uintbitstofloat.uvec2_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.uintbitstofloat.uvec2_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.uintbitstofloat.uvec2_highp_compute
-dEQP-VK.glsl.builtin.function.common.uintbitstofloat.uvec3_highp_geometry
-dEQP-VK.glsl.builtin.function.common.uintbitstofloat.uvec3_highp_tess_control
-dEQP-VK.glsl.builtin.function.common.uintbitstofloat.uvec3_highp_tess_eval
 dEQP-VK.glsl.builtin.function.common.uintbitstofloat.uvec3_highp_compute
 dEQP-VK.glsl.builtin.function.integer.uaddcarry.uint_mediump_vertex
 dEQP-VK.glsl.builtin.function.integer.uaddcarry.uint_mediump_fragment
diff --git a/android/cts/master/vk-master-2020-03-01.txt b/android/cts/master/vk-master-2020-03-01.txt
index 2198d62..ec8dc95 100644
--- a/android/cts/master/vk-master-2020-03-01.txt
+++ b/android/cts/master/vk-master-2020-03-01.txt
@@ -26,6 +26,47 @@
 dEQP-VK.api.info.vulkan1p2_limits_validation.ext_line_rasterization
 dEQP-VK.api.device_init.create_instance_extension_name_abuse
 dEQP-VK.api.device_init.create_instance_layer_name_abuse
+dEQP-VK.api.device_init.enumerate_devices_alloc_leak
+dEQP-VK.api.object_management.private_data.device_memory_small
+dEQP-VK.api.object_management.private_data.buffer_uniform_small
+dEQP-VK.api.object_management.private_data.buffer_uniform_large
+dEQP-VK.api.object_management.private_data.buffer_storage_small
+dEQP-VK.api.object_management.private_data.buffer_storage_large
+dEQP-VK.api.object_management.private_data.buffer_view_uniform_r8g8b8a8_unorm
+dEQP-VK.api.object_management.private_data.buffer_view_storage_r8g8b8a8_unorm
+dEQP-VK.api.object_management.private_data.image_1d
+dEQP-VK.api.object_management.private_data.image_2d
+dEQP-VK.api.object_management.private_data.image_3d
+dEQP-VK.api.object_management.private_data.image_view_1d
+dEQP-VK.api.object_management.private_data.image_view_1d_arr
+dEQP-VK.api.object_management.private_data.image_view_2d
+dEQP-VK.api.object_management.private_data.image_view_2d_arr
+dEQP-VK.api.object_management.private_data.image_view_cube
+dEQP-VK.api.object_management.private_data.image_view_cube_arr
+dEQP-VK.api.object_management.private_data.image_view_3d
+dEQP-VK.api.object_management.private_data.semaphore
+dEQP-VK.api.object_management.private_data.event
+dEQP-VK.api.object_management.private_data.fence
+dEQP-VK.api.object_management.private_data.fence_signaled
+dEQP-VK.api.object_management.private_data.query_pool
+dEQP-VK.api.object_management.private_data.sampler
+dEQP-VK.api.object_management.private_data.shader_module
+dEQP-VK.api.object_management.private_data.pipeline_cache
+dEQP-VK.api.object_management.private_data.pipeline_layout_empty
+dEQP-VK.api.object_management.private_data.pipeline_layout_single
+dEQP-VK.api.object_management.private_data.render_pass
+dEQP-VK.api.object_management.private_data.graphics_pipeline
+dEQP-VK.api.object_management.private_data.compute_pipeline
+dEQP-VK.api.object_management.private_data.descriptor_set_layout_empty
+dEQP-VK.api.object_management.private_data.descriptor_set_layout_single
+dEQP-VK.api.object_management.private_data.descriptor_pool
+dEQP-VK.api.object_management.private_data.descriptor_pool_free_descriptor_set
+dEQP-VK.api.object_management.private_data.descriptor_set
+dEQP-VK.api.object_management.private_data.framebuffer
+dEQP-VK.api.object_management.private_data.command_pool
+dEQP-VK.api.object_management.private_data.command_pool_transient
+dEQP-VK.api.object_management.private_data.command_buffer_primary
+dEQP-VK.api.object_management.private_data.command_buffer_secondary
 dEQP-VK.api.buffer.basic.size_max_uint64
 dEQP-VK.api.buffer_marker.graphics.external_host_mem.top_of_pipe.sequential.4
 dEQP-VK.api.buffer_marker.graphics.external_host_mem.top_of_pipe.sequential.64
@@ -1855,6 +1896,8 @@
 dEQP-VK.api.copy_and_blit.core.image_to_image.dimensions.src6x32768_dst6x32768.r32g32b32a32_uint.r32g32b32a32_uint.optimal_general
 dEQP-VK.api.copy_and_blit.core.image_to_image.dimensions.src6x32768_dst6x32768.r32g32b32a32_uint.r32g32b32a32_uint.general_optimal
 dEQP-VK.api.copy_and_blit.core.image_to_image.dimensions.src6x32768_dst6x32768.r32g32b32a32_uint.r32g32b32a32_uint.general_general
+dEQP-VK.api.copy_and_blit.core.image_to_buffer.buffer_offset_relaxed
+dEQP-VK.api.copy_and_blit.core.buffer_to_image.buffer_offset_relaxed
 dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.d16_unorm_D
 dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.buffer_offset_d16_unorm_D
 dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.x8_d24_unorm_pack32_D
@@ -1897,6 +1940,22189 @@
 dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.buffer_offset_d32_sfloat_s8_uint_SD
 dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.buffer_offset_d32_sfloat_s8_uint_S
 dEQP-VK.api.copy_and_blit.core.buffer_to_depthstencil.buffer_offset_d32_sfloat_s8_uint_D
+dEQP-VK.api.copy_and_blit.core.blit_image.simple_tests.whole.cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.simple_tests.whole.r32_sfloat_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.simple_tests.whole.b8g8r8a8_unorm_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.simple_tests.mirror_xy.cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.simple_tests.mirror_xy.r32_sfloat_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.simple_tests.mirror_xy.b8g8r8a8_unorm_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.simple_tests.mirror_x.cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.simple_tests.mirror_x.r32_sfloat_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.simple_tests.mirror_x.b8g8r8a8_unorm_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.simple_tests.mirror_y.cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.simple_tests.mirror_y.r32_sfloat_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.simple_tests.mirror_y.b8g8r8a8_unorm_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.simple_tests.mirror_subregions.cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.simple_tests.mirror_subregions.r32_sfloat_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.simple_tests.mirror_subregions.b8g8r8a8_unorm_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.simple_tests.scaling_whole1.cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.simple_tests.scaling_whole1.r32_sfloat_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.simple_tests.scaling_whole1.b8g8r8a8_unorm_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.simple_tests.scaling_whole2.cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.simple_tests.scaling_whole2.r32_sfloat_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.simple_tests.scaling_whole2.b8g8r8a8_unorm_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.simple_tests.scaling_and_offset.cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.simple_tests.scaling_and_offset.r32_sfloat_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.simple_tests.scaling_and_offset.b8g8r8a8_unorm_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.simple_tests.without_scaling_partial.cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.simple_tests.without_scaling_partial.r32_sfloat_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.simple_tests.without_scaling_partial.b8g8r8a8_unorm_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4_unorm_pack8.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4_unorm_pack8.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4_unorm_pack8.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4b4a4_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4b4a4_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4b4a4_unorm_pack16.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b4g4r4a4_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b4g4r4a4_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r5g6b5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r5g6b5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b5g6r5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b5g6r5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r5g5b5a1_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r5g5b5a1_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b5g5r5a1_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b5g5r5a1_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a1r5g5b5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a1r5g5b5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r32_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32b32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32b32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32b32_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32b32a32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32b32a32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b10g11r11_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.b10g11r11_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.e5b9g9r9_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4_unorm_pack8.e5b9g9r9_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r4g4_unorm_pack8.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r4g4_unorm_pack8.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r4g4_unorm_pack8.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r4g4b4a4_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r4g4b4a4_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r4g4b4a4_unorm_pack16.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b4g4r4a4_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b4g4r4a4_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r5g6b5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r5g6b5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b5g6r5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b5g6r5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r5g5b5a1_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r5g5b5a1_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b5g5r5a1_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b5g5r5a1_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a1r5g5b5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a1r5g5b5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8a8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8a8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8a8_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8a8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8a8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8a8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8a8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8a8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r8g8b8a8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8a8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8a8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8a8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8a8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8a8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8a8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8a8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b8g8r8a8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a8b8g8r8_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a8b8g8r8_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a8b8g8r8_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a8b8g8r8_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a8b8g8r8_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a8b8g8r8_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a8b8g8r8_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a8b8g8r8_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2r10g10b10_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2r10g10b10_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2r10g10b10_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2r10g10b10_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2r10g10b10_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2r10g10b10_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2r10g10b10_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2r10g10b10_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2b10g10r10_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2b10g10r10_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2b10g10r10_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2b10g10r10_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2b10g10r10_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2b10g10r10_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2b10g10r10_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.a2b10g10r10_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r16g16b16a16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r32_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r32g32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r32g32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r32g32b32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r32g32b32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r32g32b32_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r32g32b32a32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r32g32b32a32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b10g11r11_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.b10g11r11_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.e5b9g9r9_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.e5b9g9r9_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g6b5_unorm_pack16.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g6r5_unorm_pack16.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_unorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_snorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_uscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_sscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_unorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_snorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_uscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_sscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r4g4_unorm_pack8.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r4g4_unorm_pack8.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r4g4_unorm_pack8.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r4g4b4a4_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r4g4b4a4_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r4g4b4a4_unorm_pack16.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b4g4r4a4_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b4g4r4a4_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r5g6b5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r5g6b5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b5g6r5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b5g6r5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r5g5b5a1_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r5g5b5a1_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b5g5r5a1_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b5g5r5a1_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a1r5g5b5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a1r5g5b5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8a8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8a8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8a8_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8a8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8a8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8a8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8a8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8a8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r8g8b8a8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8a8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8a8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8a8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8a8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8a8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8a8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8a8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b8g8r8a8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a8b8g8r8_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a8b8g8r8_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a8b8g8r8_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a8b8g8r8_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a8b8g8r8_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a8b8g8r8_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a8b8g8r8_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a8b8g8r8_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2r10g10b10_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2r10g10b10_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2r10g10b10_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2r10g10b10_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2r10g10b10_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2r10g10b10_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2r10g10b10_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2r10g10b10_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2b10g10r10_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2b10g10r10_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2b10g10r10_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2b10g10r10_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2b10g10r10_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2b10g10r10_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2b10g10r10_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.a2b10g10r10_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r16g16b16a16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r32_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r32g32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r32g32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r32g32b32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r32g32b32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r32g32b32_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r32g32b32a32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.r32g32b32a32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b10g11r11_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.b10g11r11_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.e5b9g9r9_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_unorm.e5b9g9r9_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_snorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_uscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_sscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_unorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_snorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_uscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_sscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r4g4_unorm_pack8.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r4g4_unorm_pack8.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r4g4_unorm_pack8.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r4g4b4a4_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r4g4b4a4_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r4g4b4a4_unorm_pack16.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b4g4r4a4_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b4g4r4a4_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r5g6b5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r5g6b5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b5g6r5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b5g6r5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r5g5b5a1_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r5g5b5a1_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b5g5r5a1_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b5g5r5a1_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a1r5g5b5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a1r5g5b5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8a8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8a8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8a8_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8a8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8a8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8a8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8a8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8a8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r8g8b8a8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8a8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8a8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8a8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8a8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8a8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8a8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8a8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b8g8r8a8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a8b8g8r8_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a8b8g8r8_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a8b8g8r8_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a8b8g8r8_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a8b8g8r8_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a8b8g8r8_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a8b8g8r8_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a8b8g8r8_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2r10g10b10_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2r10g10b10_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2r10g10b10_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2r10g10b10_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2r10g10b10_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2r10g10b10_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2r10g10b10_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2r10g10b10_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2b10g10r10_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2b10g10r10_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2b10g10r10_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2b10g10r10_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2b10g10r10_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2b10g10r10_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2b10g10r10_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.a2b10g10r10_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r16g16b16a16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r32_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r32g32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r32g32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r32g32b32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r32g32b32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r32g32b32_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r32g32b32a32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.r32g32b32a32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b10g11r11_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.b10g11r11_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.e5b9g9r9_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_unorm.e5b9g9r9_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_snorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_uscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_sscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_unorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_snorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_uscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_sscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_unorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_snorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_uscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r4g4_unorm_pack8.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r4g4_unorm_pack8.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r4g4_unorm_pack8.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r4g4b4a4_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r4g4b4a4_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r4g4b4a4_unorm_pack16.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b4g4r4a4_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b4g4r4a4_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r5g6b5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r5g6b5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b5g6r5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b5g6r5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r5g5b5a1_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r5g5b5a1_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b5g5r5a1_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b5g5r5a1_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a1r5g5b5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a1r5g5b5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8a8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8a8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8a8_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8a8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8a8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8a8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8a8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8a8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r8g8b8a8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8a8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8a8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8a8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8a8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8a8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8a8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8a8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b8g8r8a8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a8b8g8r8_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a8b8g8r8_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a8b8g8r8_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a8b8g8r8_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a8b8g8r8_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a8b8g8r8_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a8b8g8r8_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a8b8g8r8_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2r10g10b10_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2r10g10b10_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2r10g10b10_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2r10g10b10_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2r10g10b10_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2r10g10b10_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2r10g10b10_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2r10g10b10_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2b10g10r10_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2b10g10r10_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2b10g10r10_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2b10g10r10_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2b10g10r10_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2b10g10r10_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2b10g10r10_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.a2b10g10r10_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r16g16b16a16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r32_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r32g32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r32g32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r32g32b32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r32g32b32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r32g32b32_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r32g32b32a32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.r32g32b32a32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b10g11r11_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.b10g11r11_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.e5b9g9r9_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16_sfloat.e5b9g9r9_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_unorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_snorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_uscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16_sfloat.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r4g4_unorm_pack8.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r4g4_unorm_pack8.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r4g4_unorm_pack8.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r4g4b4a4_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r4g4b4a4_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r4g4b4a4_unorm_pack16.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b4g4r4a4_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b4g4r4a4_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r5g6b5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r5g6b5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b5g6r5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b5g6r5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r5g5b5a1_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r5g5b5a1_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b5g5r5a1_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b5g5r5a1_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a1r5g5b5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a1r5g5b5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8a8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8a8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8a8_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8a8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8a8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8a8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8a8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8a8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r8g8b8a8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8a8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8a8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8a8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8a8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8a8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8a8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8a8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b8g8r8a8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a8b8g8r8_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a8b8g8r8_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a8b8g8r8_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a8b8g8r8_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a8b8g8r8_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a8b8g8r8_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a8b8g8r8_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a8b8g8r8_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2r10g10b10_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2r10g10b10_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2r10g10b10_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2r10g10b10_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2r10g10b10_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2r10g10b10_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2r10g10b10_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2r10g10b10_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2b10g10r10_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2b10g10r10_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2b10g10r10_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2b10g10r10_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2b10g10r10_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2b10g10r10_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2b10g10r10_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.a2b10g10r10_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r16g16b16a16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r32_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r32g32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r32g32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r32g32b32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r32g32b32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r32g32b32_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r32g32b32a32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.r32g32b32a32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b10g11r11_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.b10g11r11_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.e5b9g9r9_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_unorm.e5b9g9r9_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_snorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_uscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r4g4_unorm_pack8.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r4g4_unorm_pack8.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r4g4_unorm_pack8.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r4g4b4a4_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r4g4b4a4_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r4g4b4a4_unorm_pack16.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b4g4r4a4_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b4g4r4a4_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r5g6b5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r5g6b5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b5g6r5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b5g6r5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r5g5b5a1_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r5g5b5a1_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b5g5r5a1_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b5g5r5a1_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a1r5g5b5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a1r5g5b5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8a8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8a8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8a8_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8a8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8a8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8a8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8a8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8a8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r8g8b8a8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8a8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8a8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8a8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8a8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8a8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8a8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8a8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b8g8r8a8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a8b8g8r8_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a8b8g8r8_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a8b8g8r8_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a8b8g8r8_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a8b8g8r8_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a8b8g8r8_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a8b8g8r8_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a8b8g8r8_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2r10g10b10_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2r10g10b10_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2r10g10b10_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2r10g10b10_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2r10g10b10_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2r10g10b10_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2r10g10b10_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2r10g10b10_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2b10g10r10_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2b10g10r10_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2b10g10r10_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2b10g10r10_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2b10g10r10_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2b10g10r10_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2b10g10r10_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.a2b10g10r10_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r16g16b16a16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r32_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r32g32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r32g32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r32g32b32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r32g32b32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r32g32b32_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r32g32b32a32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.r32g32b32a32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b10g11r11_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.b10g11r11_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.e5b9g9r9_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16_sfloat.e5b9g9r9_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r4g4_unorm_pack8.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r4g4_unorm_pack8.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r4g4_unorm_pack8.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r4g4b4a4_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r4g4b4a4_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r4g4b4a4_unorm_pack16.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b4g4r4a4_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b4g4r4a4_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r5g6b5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r5g6b5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b5g6r5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b5g6r5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r5g5b5a1_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r5g5b5a1_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b5g5r5a1_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b5g5r5a1_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a1r5g5b5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a1r5g5b5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8a8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8a8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8a8_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8a8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8a8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8a8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8a8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8a8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r8g8b8a8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8a8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8a8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8a8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8a8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8a8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8a8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8a8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b8g8r8a8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a8b8g8r8_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a8b8g8r8_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a8b8g8r8_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a8b8g8r8_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a8b8g8r8_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a8b8g8r8_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a8b8g8r8_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a8b8g8r8_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2r10g10b10_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2r10g10b10_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2r10g10b10_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2r10g10b10_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2r10g10b10_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2r10g10b10_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2r10g10b10_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2r10g10b10_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2b10g10r10_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2b10g10r10_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2b10g10r10_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2b10g10r10_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2b10g10r10_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2b10g10r10_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2b10g10r10_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.a2b10g10r10_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r16g16b16a16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r32_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r32g32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r32g32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r32g32b32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r32g32b32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r32g32b32_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r32g32b32a32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.r32g32b32a32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b10g11r11_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.b10g11r11_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.e5b9g9r9_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_unorm.e5b9g9r9_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_snorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_uscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r16g16b16a16_sfloat.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r4g4_unorm_pack8.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r4g4_unorm_pack8.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r4g4_unorm_pack8.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r4g4b4a4_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r4g4b4a4_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r4g4b4a4_unorm_pack16.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b4g4r4a4_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b4g4r4a4_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r5g6b5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r5g6b5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b5g6r5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b5g6r5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r5g5b5a1_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r5g5b5a1_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b5g5r5a1_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b5g5r5a1_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a1r5g5b5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a1r5g5b5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8a8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8a8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8a8_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8a8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8a8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8a8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8a8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8a8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r8g8b8a8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8a8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8a8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8a8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8a8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8a8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8a8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8a8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b8g8r8a8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a8b8g8r8_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a8b8g8r8_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a8b8g8r8_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a8b8g8r8_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a8b8g8r8_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a8b8g8r8_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a8b8g8r8_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a8b8g8r8_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2r10g10b10_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2r10g10b10_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2r10g10b10_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2r10g10b10_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2r10g10b10_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2r10g10b10_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2r10g10b10_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2r10g10b10_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2b10g10r10_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2b10g10r10_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2b10g10r10_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2b10g10r10_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2b10g10r10_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2b10g10r10_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2b10g10r10_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.a2b10g10r10_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r16g16b16a16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r32_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r32g32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r32g32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r32g32b32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r32g32b32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r32g32b32_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r32g32b32a32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.r32g32b32a32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b10g11r11_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.b10g11r11_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.e5b9g9r9_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32_sfloat.e5b9g9r9_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32_sfloat.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r4g4_unorm_pack8.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r4g4_unorm_pack8.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r4g4_unorm_pack8.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r4g4b4a4_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r4g4b4a4_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r4g4b4a4_unorm_pack16.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b4g4r4a4_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b4g4r4a4_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r5g6b5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r5g6b5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b5g6r5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b5g6r5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r5g5b5a1_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r5g5b5a1_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b5g5r5a1_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b5g5r5a1_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a1r5g5b5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a1r5g5b5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8a8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8a8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8a8_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8a8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8a8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8a8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8a8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8a8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r8g8b8a8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8a8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8a8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8a8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8a8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8a8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8a8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8a8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b8g8r8a8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a8b8g8r8_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a8b8g8r8_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a8b8g8r8_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a8b8g8r8_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a8b8g8r8_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a8b8g8r8_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a8b8g8r8_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a8b8g8r8_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2r10g10b10_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2r10g10b10_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2r10g10b10_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2r10g10b10_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2r10g10b10_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2r10g10b10_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2r10g10b10_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2r10g10b10_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2b10g10r10_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2b10g10r10_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2b10g10r10_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2b10g10r10_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2b10g10r10_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2b10g10r10_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2b10g10r10_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.a2b10g10r10_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r16g16b16a16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r32_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r32g32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r32g32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r32g32b32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r32g32b32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r32g32b32_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r32g32b32a32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.r32g32b32a32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b10g11r11_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.b10g11r11_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.e5b9g9r9_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32_sfloat.e5b9g9r9_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r32g32b32a32_sfloat.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b10g11r11_ufloat_pack32.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.r8_srgb.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.r8_srgb.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.r8_srgb.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.r8_srgb.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.r8_srgb.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.r8g8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.r8g8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.r8g8_srgb.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.r8g8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.r8g8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.r8g8_srgb.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.r8g8b8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.r8g8b8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.r8g8b8_srgb.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.r8g8b8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.r8g8b8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.r8g8b8_srgb.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.b8g8r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.b8g8r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.b8g8r8_srgb.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.b8g8r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.b8g8r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.b8g8r8_srgb.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.b8g8r8_srgb.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.b8g8r8_srgb.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.b8g8r8_srgb.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.r8g8b8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.r8g8b8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.r8g8b8a8_srgb.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.r8g8b8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.r8g8b8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.r8g8b8a8_srgb.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.b8g8r8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.b8g8r8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.b8g8r8a8_srgb.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.b8g8r8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.b8g8r8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.b8g8r8a8_srgb.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.a8b8g8r8_srgb_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.a8b8g8r8_srgb_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.a8b8g8r8_srgb_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.a8b8g8r8_srgb_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.a8b8g8r8_srgb_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8_srgb.a8b8g8r8_srgb_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.r8_srgb.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.r8_srgb.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.r8g8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.r8g8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.r8g8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.r8g8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.r8g8b8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.r8g8b8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.r8g8b8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.r8g8b8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.b8g8r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.b8g8r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.b8g8r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.b8g8r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.b8g8r8_srgb.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.b8g8r8_srgb.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.r8g8b8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.r8g8b8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.r8g8b8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.r8g8b8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.b8g8r8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.b8g8r8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.b8g8r8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.b8g8r8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.a8b8g8r8_srgb_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.a8b8g8r8_srgb_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.a8b8g8r8_srgb_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8_srgb.a8b8g8r8_srgb_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.r8_srgb.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.r8_srgb.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.r8g8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.r8g8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.r8g8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.r8g8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.r8g8b8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.r8g8b8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.r8g8b8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.r8g8b8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.b8g8r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.b8g8r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.b8g8r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.b8g8r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.b8g8r8_srgb.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.b8g8r8_srgb.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.r8g8b8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.r8g8b8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.r8g8b8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.r8g8b8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.b8g8r8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.b8g8r8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.b8g8r8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.b8g8r8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.a8b8g8r8_srgb_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.a8b8g8r8_srgb_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.a8b8g8r8_srgb_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8_srgb.a8b8g8r8_srgb_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.r8_srgb.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.r8_srgb.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.r8_srgb.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.r8_srgb.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.r8_srgb.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.r8g8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.r8g8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.r8g8_srgb.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.r8g8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.r8g8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.r8g8_srgb.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.r8g8b8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.r8g8b8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.r8g8b8_srgb.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.r8g8b8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.r8g8b8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.r8g8b8_srgb.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.b8g8r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.b8g8r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.b8g8r8_srgb.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.b8g8r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.b8g8r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.b8g8r8_srgb.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.b8g8r8_srgb.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.b8g8r8_srgb.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.b8g8r8_srgb.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.r8g8b8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.r8g8b8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.r8g8b8a8_srgb.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.r8g8b8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.r8g8b8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.r8g8b8a8_srgb.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.b8g8r8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.b8g8r8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.b8g8r8a8_srgb.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.b8g8r8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.b8g8r8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.b8g8r8a8_srgb.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.a8b8g8r8_srgb_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.a8b8g8r8_srgb_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.a8b8g8r8_srgb_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.a8b8g8r8_srgb_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.a8b8g8r8_srgb_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8_srgb.a8b8g8r8_srgb_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.r8_srgb.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.r8_srgb.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.r8g8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.r8g8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.r8g8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.r8g8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.r8g8b8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.r8g8b8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.r8g8b8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.r8g8b8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.b8g8r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.b8g8r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.b8g8r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.b8g8r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.b8g8r8_srgb.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.b8g8r8_srgb.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.r8g8b8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.r8g8b8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.r8g8b8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.r8g8b8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.b8g8r8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.b8g8r8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.b8g8r8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.b8g8r8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.a8b8g8r8_srgb_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.a8b8g8r8_srgb_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.a8b8g8r8_srgb_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.r8g8b8a8_srgb.a8b8g8r8_srgb_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.r8_srgb.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.r8_srgb.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.r8g8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.r8g8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.r8g8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.r8g8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.r8g8b8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.r8g8b8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.r8g8b8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.r8g8b8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.b8g8r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.b8g8r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.b8g8r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.b8g8r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.b8g8r8_srgb.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.b8g8r8_srgb.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.r8g8b8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.r8g8b8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.r8g8b8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.r8g8b8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.b8g8r8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.b8g8r8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.b8g8r8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.b8g8r8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.a8b8g8r8_srgb_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.a8b8g8r8_srgb_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.a8b8g8r8_srgb_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.b8g8r8a8_srgb.a8b8g8r8_srgb_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8_srgb.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8_srgb.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8g8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8g8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8g8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8g8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8g8b8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8g8b8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8g8b8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8g8b8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.b8g8r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.b8g8r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.b8g8r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.b8g8r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.b8g8r8_srgb.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.b8g8r8_srgb.linear_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8g8b8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8g8b8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8g8b8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8g8b8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.b8g8r8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.b8g8r8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.b8g8r8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.b8g8r8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.a8b8g8r8_srgb_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.a8b8g8r8_srgb_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.a8b8g8r8_srgb_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.a8b8g8r8_srgb_pack32.general_general_cubic
 dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.depth_stencil.1d_d16_unorm_d16_unorm.optimal_optimal_nearest
 dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.depth_stencil.1d_d16_unorm_d16_unorm.optimal_general_nearest
 dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.depth_stencil.1d_d16_unorm_d16_unorm.general_optimal_nearest
@@ -1965,6 +24191,1206 @@
 dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.depth_stencil.d32_sfloat_s8_uint_d32_sfloat_s8_uint_separate_layouts.optimal_general_nearest
 dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.depth_stencil.d32_sfloat_s8_uint_d32_sfloat_s8_uint_separate_layouts.general_optimal_nearest
 dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.depth_stencil.d32_sfloat_s8_uint_d32_sfloat_s8_uint_separate_layouts.general_general_nearest
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a8b8g8r8_srgb_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a8b8g8r8_srgb_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a8b8g8r8_srgb_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a8b8g8r8_srgb_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a8b8g8r8_srgb_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a8b8g8r8_srgb_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a8b8g8r8_srgb_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a8b8g8r8_srgb_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a8b8g8r8_srgb_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a8b8g8r8_srgb_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a8b8g8r8_srgb_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a8b8g8r8_srgb_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a8b8g8r8_srgb_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a8b8g8r8_srgb_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a8b8g8r8_srgb_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a8b8g8r8_srgb_pack32.general_general_cubic
 dEQP-VK.api.copy_and_blit.dedicated_allocation.image_to_image.all_formats.depth_stencil.1d_d16_unorm_d16_unorm.optimal_optimal
 dEQP-VK.api.copy_and_blit.dedicated_allocation.image_to_image.all_formats.depth_stencil.1d_d16_unorm_d16_unorm.optimal_general
 dEQP-VK.api.copy_and_blit.dedicated_allocation.image_to_image.all_formats.depth_stencil.1d_d16_unorm_d16_unorm.general_optimal
@@ -3313,6 +26739,8 @@
 dEQP-VK.api.copy_and_blit.dedicated_allocation.image_to_image.dimensions.src6x32768_dst6x32768.r16g16b16_sfloat.r16g16b16_sfloat.optimal_general
 dEQP-VK.api.copy_and_blit.dedicated_allocation.image_to_image.dimensions.src6x32768_dst6x32768.r16g16b16_sfloat.r16g16b16_sfloat.general_optimal
 dEQP-VK.api.copy_and_blit.dedicated_allocation.image_to_image.dimensions.src6x32768_dst6x32768.r16g16b16_sfloat.r16g16b16_sfloat.general_general
+dEQP-VK.api.copy_and_blit.dedicated_allocation.image_to_buffer.buffer_offset_relaxed
+dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_image.buffer_offset_relaxed
 dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.d16_unorm_D
 dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.buffer_offset_d16_unorm_D
 dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.x8_d24_unorm_pack32_D
@@ -3355,6 +26783,1623 @@
 dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.buffer_offset_d32_sfloat_s8_uint_SD
 dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.buffer_offset_d32_sfloat_s8_uint_S
 dEQP-VK.api.copy_and_blit.dedicated_allocation.buffer_to_depthstencil.buffer_offset_d32_sfloat_s8_uint_D
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.simple_tests.whole.cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.simple_tests.whole.r32_sfloat_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.simple_tests.whole.b8g8r8a8_unorm_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.simple_tests.mirror_xy.cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.simple_tests.mirror_xy.r32_sfloat_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.simple_tests.mirror_xy.b8g8r8a8_unorm_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.simple_tests.mirror_x.cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.simple_tests.mirror_x.r32_sfloat_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.simple_tests.mirror_x.b8g8r8a8_unorm_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.simple_tests.mirror_y.cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.simple_tests.mirror_y.r32_sfloat_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.simple_tests.mirror_y.b8g8r8a8_unorm_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.simple_tests.mirror_subregions.cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.simple_tests.mirror_subregions.r32_sfloat_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.simple_tests.mirror_subregions.b8g8r8a8_unorm_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.simple_tests.scaling_whole1.cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.simple_tests.scaling_whole1.r32_sfloat_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.simple_tests.scaling_whole1.b8g8r8a8_unorm_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.simple_tests.scaling_whole2.cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.simple_tests.scaling_whole2.r32_sfloat_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.simple_tests.scaling_whole2.b8g8r8a8_unorm_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.simple_tests.scaling_and_offset.cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.simple_tests.scaling_and_offset.r32_sfloat_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.simple_tests.scaling_and_offset.b8g8r8a8_unorm_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.simple_tests.without_scaling_partial.cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.simple_tests.without_scaling_partial.r32_sfloat_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.simple_tests.without_scaling_partial.b8g8r8a8_unorm_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4_unorm_pack8.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4_unorm_pack8.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4_unorm_pack8.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4b4a4_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4b4a4_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r4g4b4a4_unorm_pack16.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b4g4r4a4_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b4g4r4a4_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r5g6b5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r5g6b5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b5g6r5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b5g6r5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r5g5b5a1_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r5g5b5a1_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b5g5r5a1_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b5g5r5a1_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a1r5g5b5_unorm_pack16.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a1r5g5b5_unorm_pack16.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r8g8b8a8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b8g8r8a8_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a8b8g8r8_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2r10g10b10_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_unorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_unorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_snorm_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_snorm_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_uscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_uscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_sscaled_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.a2b10g10r10_sscaled_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_unorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_unorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_unorm.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_snorm.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_snorm.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_uscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_uscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_sscaled.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_sscaled.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r16g16b16a16_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r32_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32b32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32b32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32b32_sfloat.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32b32a32_sfloat.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.r32g32b32a32_sfloat.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b10g11r11_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.b10g11r11_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.e5b9g9r9_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4_unorm_pack8.e5b9g9r9_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r4g4_unorm_pack8.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r4g4_unorm_pack8.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.r4g4_unorm_pack8.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.e5b9g9r9_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r4g4b4a4_unorm_pack16.e5b9g9r9_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b4g4r4a4_unorm_pack16.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r5g6b5_unorm_pack16.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r5g6b5_unorm_pack16.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r5g6b5_unorm_pack16.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r5g6b5_unorm_pack16.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r5g6b5_unorm_pack16.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r5g6b5_unorm_pack16.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r5g6b5_unorm_pack16.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r5g6b5_unorm_pack16.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r5g6b5_unorm_pack16.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r5g6b5_unorm_pack16.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b5g6r5_unorm_pack16.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b5g6r5_unorm_pack16.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b5g6r5_unorm_pack16.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b5g6r5_unorm_pack16.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b5g6r5_unorm_pack16.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b5g6r5_unorm_pack16.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b5g6r5_unorm_pack16.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b5g6r5_unorm_pack16.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b5g6r5_unorm_pack16.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b5g6r5_unorm_pack16.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r5g5b5a1_unorm_pack16.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b5g5r5a1_unorm_pack16.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a1r5g5b5_unorm_pack16.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_unorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_unorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_unorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_unorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_unorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_unorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_unorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_unorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_unorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_unorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_snorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_snorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_snorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_snorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_snorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_snorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_snorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_snorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_snorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_snorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_uscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_uscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_uscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_uscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_uscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_uscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_uscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_uscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_uscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_uscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_sscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_sscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_sscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_sscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_sscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_sscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_sscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_sscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_sscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_sscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_unorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_unorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_unorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_unorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_unorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_unorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_unorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_unorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_unorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_unorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_snorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_snorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_snorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_snorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_snorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_snorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_snorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_snorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_snorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_snorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_uscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_uscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_uscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_uscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_uscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_uscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_uscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_uscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_uscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_uscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_sscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_sscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_sscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_sscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_sscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_sscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_sscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_sscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_sscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_sscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_unorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_unorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_unorm.r4g4_unorm_pack8.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_unorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_unorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_unorm.r4g4_unorm_pack8.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_unorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_unorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_unorm.r4g4_unorm_pack8.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_unorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_unorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_unorm.e5b9g9r9_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_unorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_unorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_unorm.e5b9g9r9_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_snorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_snorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_snorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_snorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_snorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_snorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_snorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_snorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_snorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_snorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_uscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_uscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_uscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_uscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_uscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_uscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_uscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_uscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_uscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_uscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_sscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_sscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_sscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_sscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_sscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_sscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_sscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_sscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_sscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_sscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_unorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_unorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_unorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_unorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_unorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_unorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_unorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_unorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_unorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_unorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_snorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_snorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_snorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_snorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_snorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_snorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_snorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_snorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_snorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_snorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_uscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_uscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_uscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_uscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_uscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_uscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_uscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_uscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_uscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_uscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_sscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_sscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_sscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_sscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_sscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_sscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_sscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_sscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_sscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_sscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_unorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_unorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_unorm.r4g4_unorm_pack8.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_unorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_unorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_unorm.r4g4_unorm_pack8.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_unorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_unorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_unorm.r4g4_unorm_pack8.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_unorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_unorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_unorm.e5b9g9r9_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_unorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_unorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_unorm.e5b9g9r9_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_snorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_snorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_snorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_snorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_snorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_snorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_snorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_snorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_snorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_snorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_uscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_uscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_uscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_uscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_uscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_uscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_uscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_uscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_uscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_uscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_sscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_sscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_sscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_sscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_sscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_sscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_sscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_sscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_sscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_sscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_unorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_unorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_unorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_unorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_unorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_unorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_unorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_unorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_unorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_unorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_snorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_snorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_snorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_snorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_snorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_snorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_snorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_snorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_snorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_snorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_uscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_uscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_uscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_uscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_uscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_uscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_uscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_uscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_uscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_uscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_sscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_sscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_sscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_sscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_sscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_sscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_sscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_sscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_sscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_sscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_unorm_pack32.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_snorm_pack32.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_unorm_pack32.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_snorm_pack32.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_uscaled_pack32.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2r10g10b10_sscaled_pack32.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_unorm_pack32.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_snorm_pack32.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_uscaled_pack32.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a2b10g10r10_sscaled_pack32.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_unorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_unorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_unorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_unorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_unorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_unorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_unorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_unorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_unorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_unorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_snorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_snorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_snorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_snorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_snorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_snorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_snorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_snorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_snorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_snorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_uscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_uscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_uscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_uscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_uscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_uscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_uscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_uscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_uscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_uscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_sscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_sscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_sscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_sscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_sscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_sscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_sscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_sscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_sscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_sscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_sfloat.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_sfloat.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_sfloat.r4g4_unorm_pack8.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_sfloat.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_sfloat.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_sfloat.r4g4_unorm_pack8.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_sfloat.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_sfloat.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_sfloat.r4g4_unorm_pack8.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_sfloat.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_sfloat.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_sfloat.e5b9g9r9_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_sfloat.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_sfloat.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16_sfloat.e5b9g9r9_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_unorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_unorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_unorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_unorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_unorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_unorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_unorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_unorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_unorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_unorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_snorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_snorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_snorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_snorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_snorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_snorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_snorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_snorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_snorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_snorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_uscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_uscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_uscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_uscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_uscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_uscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_uscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_uscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_uscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_uscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_sscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_sscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_sscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_sscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_sscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_sscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_sscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_sscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_sscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_sscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_sfloat.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_sfloat.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_sfloat.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_sfloat.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_sfloat.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_sfloat.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_sfloat.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_sfloat.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_sfloat.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16_sfloat.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_unorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_unorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_unorm.r4g4_unorm_pack8.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_unorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_unorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_unorm.r4g4_unorm_pack8.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_unorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_unorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_unorm.r4g4_unorm_pack8.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_unorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_unorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_unorm.e5b9g9r9_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_unorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_unorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_unorm.e5b9g9r9_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_snorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_snorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_snorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_snorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_snorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_snorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_snorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_snorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_snorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_snorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_uscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_uscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_uscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_uscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_uscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_uscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_uscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_uscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_uscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_uscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_sscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_sscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_sscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_sscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_sscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_sscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_sscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_sscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_sscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_sscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_sfloat.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_sfloat.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_sfloat.r4g4_unorm_pack8.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_sfloat.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_sfloat.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_sfloat.r4g4_unorm_pack8.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_sfloat.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_sfloat.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_sfloat.r4g4_unorm_pack8.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_sfloat.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_sfloat.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_sfloat.e5b9g9r9_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_sfloat.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_sfloat.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16_sfloat.e5b9g9r9_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_unorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_unorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_unorm.r4g4_unorm_pack8.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_unorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_unorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_unorm.r4g4_unorm_pack8.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_unorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_unorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_unorm.r4g4_unorm_pack8.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_unorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_unorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_unorm.e5b9g9r9_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_unorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_unorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_unorm.e5b9g9r9_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_snorm.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_snorm.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_snorm.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_snorm.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_snorm.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_snorm.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_snorm.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_snorm.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_snorm.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_snorm.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_uscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_uscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_uscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_uscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_uscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_uscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_uscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_uscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_uscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_uscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_sscaled.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_sscaled.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_sscaled.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_sscaled.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_sscaled.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_sscaled.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_sscaled.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_sscaled.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_sscaled.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_sscaled.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_sfloat.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_sfloat.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_sfloat.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_sfloat.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_sfloat.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_sfloat.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_sfloat.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_sfloat.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_sfloat.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r16g16b16a16_sfloat.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32_sfloat.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32_sfloat.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32_sfloat.r4g4_unorm_pack8.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32_sfloat.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32_sfloat.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32_sfloat.r4g4_unorm_pack8.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32_sfloat.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32_sfloat.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32_sfloat.r4g4_unorm_pack8.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32_sfloat.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32_sfloat.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32_sfloat.e5b9g9r9_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32_sfloat.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32_sfloat.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32_sfloat.e5b9g9r9_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32_sfloat.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32_sfloat.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32_sfloat.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32_sfloat.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32_sfloat.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32_sfloat.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32_sfloat.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32_sfloat.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32_sfloat.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32_sfloat.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32b32_sfloat.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32b32_sfloat.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32b32_sfloat.r4g4_unorm_pack8.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32b32_sfloat.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32b32_sfloat.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32b32_sfloat.r4g4_unorm_pack8.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32b32_sfloat.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32b32_sfloat.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32b32_sfloat.r4g4_unorm_pack8.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32b32_sfloat.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32b32_sfloat.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32b32_sfloat.e5b9g9r9_ufloat_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32b32_sfloat.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32b32_sfloat.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32b32_sfloat.e5b9g9r9_ufloat_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32b32a32_sfloat.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32b32a32_sfloat.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32b32a32_sfloat.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32b32a32_sfloat.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32b32a32_sfloat.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32b32a32_sfloat.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32b32a32_sfloat.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32b32a32_sfloat.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32b32a32_sfloat.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r32g32b32a32_sfloat.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b10g11r11_ufloat_pack32.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b10g11r11_ufloat_pack32.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b10g11r11_ufloat_pack32.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b10g11r11_ufloat_pack32.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b10g11r11_ufloat_pack32.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r4g4_unorm_pack8.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r4g4_unorm_pack8.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r4g4b4a4_unorm_pack16.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r4g4b4a4_unorm_pack16.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a8b8g8r8_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_unorm.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_unorm.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32g32b32_sfloat.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32g32b32_sfloat.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.e5b9g9r9_ufloat_pack32.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.r8_srgb.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.r8_srgb.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.r8_srgb.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.r8_srgb.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.r8_srgb.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.r8g8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.r8g8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.r8g8_srgb.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.r8g8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.r8g8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.r8g8_srgb.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.r8g8b8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.r8g8b8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.r8g8b8_srgb.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.r8g8b8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.r8g8b8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.r8g8b8_srgb.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.b8g8r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.b8g8r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.b8g8r8_srgb.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.b8g8r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.b8g8r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.b8g8r8_srgb.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.b8g8r8_srgb.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.b8g8r8_srgb.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.b8g8r8_srgb.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.r8g8b8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.r8g8b8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.r8g8b8a8_srgb.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.r8g8b8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.r8g8b8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.r8g8b8a8_srgb.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.b8g8r8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.b8g8r8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.b8g8r8a8_srgb.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.b8g8r8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.b8g8r8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.b8g8r8a8_srgb.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.a8b8g8r8_srgb_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.a8b8g8r8_srgb_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.a8b8g8r8_srgb_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.a8b8g8r8_srgb_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.a8b8g8r8_srgb_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8_srgb.a8b8g8r8_srgb_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_srgb.r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_srgb.r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_srgb.r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_srgb.r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_srgb.r8_srgb.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_srgb.r8_srgb.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_srgb.a8b8g8r8_srgb_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_srgb.a8b8g8r8_srgb_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_srgb.a8b8g8r8_srgb_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8_srgb.a8b8g8r8_srgb_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_srgb.r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_srgb.r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_srgb.r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_srgb.r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_srgb.r8_srgb.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_srgb.r8_srgb.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_srgb.a8b8g8r8_srgb_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_srgb.a8b8g8r8_srgb_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_srgb.a8b8g8r8_srgb_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8_srgb.a8b8g8r8_srgb_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_srgb.r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_srgb.r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_srgb.r8_srgb.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_srgb.r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_srgb.r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_srgb.r8_srgb.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_srgb.r8_srgb.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_srgb.r8_srgb.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_srgb.r8_srgb.linear_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_srgb.a8b8g8r8_srgb_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_srgb.a8b8g8r8_srgb_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_srgb.a8b8g8r8_srgb_pack32.optimal_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_srgb.a8b8g8r8_srgb_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_srgb.a8b8g8r8_srgb_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8_srgb.a8b8g8r8_srgb_pack32.general_linear_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_srgb.r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_srgb.r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_srgb.r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_srgb.r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_srgb.r8_srgb.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_srgb.r8_srgb.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_srgb.a8b8g8r8_srgb_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_srgb.a8b8g8r8_srgb_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_srgb.a8b8g8r8_srgb_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.r8g8b8a8_srgb.a8b8g8r8_srgb_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_srgb.r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_srgb.r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_srgb.r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_srgb.r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_srgb.r8_srgb.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_srgb.r8_srgb.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_srgb.a8b8g8r8_srgb_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_srgb.a8b8g8r8_srgb_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_srgb.a8b8g8r8_srgb_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.b8g8r8a8_srgb.a8b8g8r8_srgb_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8_srgb.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8_srgb.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8g8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8g8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8g8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8g8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8g8b8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8g8b8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8g8b8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8g8b8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.b8g8r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.b8g8r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.b8g8r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.b8g8r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.b8g8r8_srgb.linear_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.b8g8r8_srgb.linear_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8g8b8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8g8b8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8g8b8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.r8g8b8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.b8g8r8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.b8g8r8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.b8g8r8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.b8g8r8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.a8b8g8r8_srgb_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.a8b8g8r8_srgb_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.a8b8g8r8_srgb_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.color.a8b8g8r8_srgb_pack32.a8b8g8r8_srgb_pack32.general_general_cubic
 dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.depth_stencil.1d_d16_unorm_d16_unorm.optimal_optimal_nearest
 dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.depth_stencil.1d_d16_unorm_d16_unorm.optimal_general_nearest
 dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.depth_stencil.1d_d16_unorm_d16_unorm.general_optimal_nearest
@@ -3423,6 +28468,1206 @@
 dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.depth_stencil.d32_sfloat_s8_uint_d32_sfloat_s8_uint_separate_layouts.optimal_general_nearest
 dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.depth_stencil.d32_sfloat_s8_uint_d32_sfloat_s8_uint_separate_layouts.general_optimal_nearest
 dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.depth_stencil.d32_sfloat_s8_uint_d32_sfloat_s8_uint_separate_layouts.general_general_nearest
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.r8g8b8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.b8g8r8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a8b8g8r8_srgb_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a8b8g8r8_srgb_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a8b8g8r8_srgb_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_1.a8b8g8r8_srgb_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.r8g8b8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.b8g8r8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a8b8g8r8_srgb_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a8b8g8r8_srgb_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a8b8g8r8_srgb_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_base_level.layercount_6.a8b8g8r8_srgb_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.r8g8b8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.b8g8r8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a8b8g8r8_srgb_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a8b8g8r8_srgb_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a8b8g8r8_srgb_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_1.a8b8g8r8_srgb_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r4g4_unorm_pack8.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r4g4_unorm_pack8.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r4g4_unorm_pack8.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r4g4_unorm_pack8.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r4g4b4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r4g4b4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r4g4b4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r4g4b4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b4g4r4a4_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b4g4r4a4_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b4g4r4a4_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b4g4r4a4_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r5g6b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r5g6b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r5g6b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r5g6b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b5g6r5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b5g6r5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b5g6r5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b5g6r5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r5g5b5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r5g5b5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r5g5b5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r5g5b5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b5g5r5a1_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b5g5r5a1_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b5g5r5a1_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b5g5r5a1_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a1r5g5b5_unorm_pack16.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a1r5g5b5_unorm_pack16.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a1r5g5b5_unorm_pack16.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a1r5g5b5_unorm_pack16.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a8b8g8r8_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a8b8g8r8_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a8b8g8r8_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a8b8g8r8_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a8b8g8r8_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a8b8g8r8_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a8b8g8r8_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a8b8g8r8_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2r10g10b10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_unorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_unorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_unorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_unorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_snorm_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_snorm_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_snorm_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_snorm_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_uscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_uscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_uscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_uscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_sscaled_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_sscaled_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_sscaled_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a2b10g10r10_sscaled_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_unorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_unorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_unorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_unorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_snorm.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_snorm.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_snorm.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_snorm.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_uscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_uscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_uscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_uscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_sscaled.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_sscaled.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_sscaled.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_sscaled.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r16g16b16a16_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32g32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32g32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32g32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32g32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32g32b32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32g32b32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32g32b32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32g32b32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32g32b32a32_sfloat.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32g32b32a32_sfloat.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32g32b32a32_sfloat.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r32g32b32a32_sfloat.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b10g11r11_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b10g11r11_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b10g11r11_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b10g11r11_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.e5b9g9r9_ufloat_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.e5b9g9r9_ufloat_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.e5b9g9r9_ufloat_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.e5b9g9r9_ufloat_pack32.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.r8g8b8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_srgb.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_srgb.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_srgb.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.b8g8r8a8_srgb.general_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a8b8g8r8_srgb_pack32.optimal_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a8b8g8r8_srgb_pack32.optimal_general_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a8b8g8r8_srgb_pack32.general_optimal_cubic
+dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.all_formats.generate_mipmaps.from_previous_level.layercount_6.a8b8g8r8_srgb_pack32.general_general_cubic
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r4g4_unorm_pack8_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.r4g4b4a4_unorm_pack16_multiple_subresourcerange
 dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.single_layer.b4g4r4a4_unorm_pack16_multiple_subresourcerange
@@ -26229,6 +52474,12 @@
 dEQP-VK.api.fill_and_update_buffer.dedicated_alloc.fill_buffer_vk_whole_size_3_extra_bytes_offset_4
 dEQP-VK.api.fill_and_update_buffer.dedicated_alloc.fill_buffer_vk_whole_size_3_extra_bytes_offset_8
 dEQP-VK.api.fill_and_update_buffer.dedicated_alloc.fill_buffer_vk_whole_size_3_extra_bytes_offset_12
+dEQP-VK.api.external.memory.android_hardware_buffer.image_formats.d16_unorm
+dEQP-VK.api.external.memory.android_hardware_buffer.image_formats.x8_d24_unorm_pack32
+dEQP-VK.api.external.memory.android_hardware_buffer.image_formats.d24_unorm_s8_uint
+dEQP-VK.api.external.memory.android_hardware_buffer.image_formats.d32_sfloat
+dEQP-VK.api.external.memory.android_hardware_buffer.image_formats.d32_sfloat_s8_uint
+dEQP-VK.api.external.memory.android_hardware_buffer.image_formats.s8_uint
 dEQP-VK.api.external.memory.dma_buf.suballocated.device_only.import_twice
 dEQP-VK.api.external.memory.dma_buf.suballocated.device_only.import_multiple_times
 dEQP-VK.api.external.memory.dma_buf.suballocated.device_only.dup
@@ -26277,6 +52528,9 @@
 dEQP-VK.api.external.memory.dma_buf.dedicated.image.bind_export_import_bind
 dEQP-VK.api.external.memory.dma_buf.dedicated.image.export_bind_import_bind
 dEQP-VK.api.external.memory.dma_buf.dedicated.image.export_import_bind_bind
+dEQP-VK.api.tooling_info.validate_getter
+dEQP-VK.api.tooling_info.validate_tools_properties
+dEQP-VK.api.tooling_info.validate_instance_layers
 dEQP-VK.memory.pipeline_barrier.host_write_vertex_buffer.1024_vertex_buffer_stride_4
 dEQP-VK.memory.pipeline_barrier.host_write_vertex_buffer.8192_vertex_buffer_stride_4
 dEQP-VK.memory.pipeline_barrier.host_write_vertex_buffer.65536_vertex_buffer_stride_4
@@ -67501,6 +93755,3826 @@
 dEQP-VK.pipeline.blend.clamp.b8g8r8a8_snorm
 dEQP-VK.pipeline.blend.clamp.r16g16b16a16_unorm
 dEQP-VK.pipeline.blend.clamp.r16g16b16a16_snorm
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4_unorm_pack8.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r4g4b4a4_unorm_pack16.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g6b5_unorm_pack16.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r5g5b5a1_unorm_pack16.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.a1r5g5b5_unorm_pack16.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_unorm.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_snorm.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r8_srgb.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_unorm.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_snorm.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8_srgb.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_unorm.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_snorm.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8_srgb.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_unorm.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_snorm.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.a2r10g10b10_unorm_pack32.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.a2b10g10r10_unorm_pack32.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_unorm.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_snorm.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r16_sfloat.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_unorm.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_snorm.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16_sfloat.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_unorm.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_snorm.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16_sfloat.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_unorm.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_snorm.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r16g16b16a16_sfloat.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r32_sfloat.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32_sfloat.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32_sfloat.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.r32g32b32a32_sfloat.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.b10g11r11_ufloat_pack32.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.e5b9g9r9_ufloat_pack32.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.b4g4r4a4_unorm_pack16.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1mcc_cc_rsub_alpha_1mdc_s1a_add-color_1msa_1msa_sub_alpha_1ms1a_ca_min-color_z_s1c_rsub_alpha_s1c_ca_sub-color_1ms1c_s1c_min_alpha_1mcc_1mdc_min
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1mca_da_min_alpha_1ms1c_1mda_sub-color_dc_s1a_add_alpha_ca_sas_min-color_da_1mca_rsub_alpha_da_ca_min-color_o_cc_rsub_alpha_1mca_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_sc_sa_min_alpha_cc_sc_rsub-color_1mcc_1ms1a_add_alpha_sa_da_rsub-color_1mda_sa_min_alpha_s1a_dc_sub-color_sa_z_min_alpha_sc_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1msc_1ms1a_sub_alpha_1mda_1mda_sub-color_1ms1a_ca_min_alpha_o_s1a_max-color_s1c_da_add_alpha_1ms1a_ca_max-color_sc_sa_add_alpha_z_o_add
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_sas_1ms1c_sub_alpha_1mda_cc_add-color_da_cc_rsub_alpha_z_1ms1a_add-color_s1c_1mcc_max_alpha_1mca_s1a_rsub-color_cc_dc_max_alpha_1mcc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_sa_cc_rsub_alpha_o_1msa_max-color_1ms1c_dc_sub_alpha_1msa_o_min-color_sc_cc_min_alpha_sc_1msc_min-color_1msc_sa_rsub_alpha_o_z_add
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_o_cc_min_alpha_sas_o_min-color_o_1msa_add_alpha_1mdc_s1a_max-color_1ms1a_1msc_add_alpha_cc_1mcc_max-color_1msa_cc_max_alpha_sas_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_s1a_1ms1a_rsub_alpha_sc_dc_rsub-color_1msa_dc_sub_alpha_sc_z_min-color_da_z_add_alpha_1mdc_ca_max-color_1mcc_s1c_rsub_alpha_1ms1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1mda_1mdc_rsub_alpha_sc_da_max-color_sa_sc_rsub_alpha_sc_1ms1a_sub-color_1ms1a_sc_add_alpha_1ms1a_o_add-color_1mca_1ms1a_max_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_s1a_da_min_alpha_1msa_1msa_min-color_da_s1a_rsub_alpha_1msc_z_add-color_ca_sc_sub_alpha_cc_s1a_max-color_1mca_1mcc_add_alpha_1msa_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_cc_1msc_rsub_alpha_sc_1mdc_sub-color_1ms1c_sas_sub_alpha_s1c_sas_max-color_dc_sa_sub_alpha_sa_1msa_add-color_s1c_sc_add_alpha_z_o_min
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_z_sa_rsub_alpha_o_1ms1a_sub-color_1ms1c_1ms1c_min_alpha_sa_s1a_max-color_sa_cc_sub_alpha_sc_1mdc_min-color_o_1mca_add_alpha_da_ca_sub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_o_cc_min_alpha_da_sc_max-color_1mda_s1a_add_alpha_da_1mda_rsub-color_dc_s1a_rsub_alpha_da_1mcc_rsub-color_cc_dc_min_alpha_1msa_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1mda_sa_sub_alpha_1ms1c_1mdc_sub-color_o_1mca_add_alpha_cc_cc_add-color_s1a_cc_sub_alpha_ca_cc_min-color_cc_sas_min_alpha_sa_z_max
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1mda_1msa_max_alpha_1mca_z_sub-color_da_1msc_rsub_alpha_1mda_1ms1c_add-color_1msa_1mdc_max_alpha_da_sas_min-color_cc_dc_sub_alpha_1mda_sas_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1msa_1mca_add_alpha_da_dc_min-color_1msa_cc_rsub_alpha_1msa_1mcc_max-color_dc_dc_add_alpha_dc_dc_min-color_1mda_1ms1a_add_alpha_sc_sa_sub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_o_1mdc_rsub_alpha_1mca_1mcc_rsub-color_1mcc_1ms1a_add_alpha_1msa_1ms1c_rsub-color_1msa_1mda_max_alpha_1msc_sa_min-color_1ms1a_sc_max_alpha_1mca_cc_sub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1mda_1mdc_sub_alpha_s1a_1ms1c_rsub-color_1mca_o_rsub_alpha_1mca_ca_min-color_ca_s1c_add_alpha_dc_1ms1c_sub-color_ca_1ms1a_min_alpha_sc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_cc_1mcc_sub_alpha_z_1mca_sub-color_sa_da_min_alpha_s1c_ca_add-color_1ms1a_sa_max_alpha_1ms1a_cc_sub-color_dc_ca_add_alpha_cc_1ms1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1mda_sc_rsub_alpha_s1c_o_max-color_da_ca_add_alpha_z_1msc_add-color_1mca_1ms1a_add_alpha_o_1mda_max-color_1ms1a_1msc_rsub_alpha_dc_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_cc_1mdc_add_alpha_sc_1mda_add-color_sc_1mca_rsub_alpha_z_1mdc_max-color_sa_1mca_sub_alpha_sc_s1c_max-color_sas_s1a_min_alpha_da_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_z_s1c_min_alpha_1mcc_s1c_rsub-color_ca_1mca_add_alpha_cc_1ms1a_min-color_ca_1ms1c_rsub_alpha_sa_sas_min-color_1ms1c_s1a_add_alpha_1mda_1ms1a_min
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_o_sa_max_alpha_da_ca_add-color_z_1ms1c_add_alpha_sc_sas_rsub-color_1mdc_cc_min_alpha_dc_ca_min-color_1ms1a_1msc_max_alpha_1msa_ca_min
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_dc_ca_rsub_alpha_dc_s1a_rsub-color_cc_da_min_alpha_ca_1ms1a_max-color_1msc_1mdc_max_alpha_cc_sa_rsub-color_da_o_sub_alpha_z_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_ca_1ms1a_max_alpha_da_1mda_sub-color_dc_ca_max_alpha_1msc_1msa_add-color_1mdc_1ms1a_min_alpha_1mda_1mda_min-color_1ms1c_1msc_max_alpha_1mca_1msc_sub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_cc_1msc_sub_alpha_z_1mcc_min-color_1msc_1ms1c_add_alpha_1mda_1mdc_sub-color_ca_sas_rsub_alpha_cc_1ms1c_max-color_1ms1c_1ms1c_rsub_alpha_da_s1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1mca_1msc_sub_alpha_s1c_s1a_sub-color_cc_cc_max_alpha_sc_1msc_add-color_z_sas_sub_alpha_cc_sc_sub-color_z_1msa_min_alpha_z_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_s1c_1msa_rsub_alpha_ca_z_rsub-color_1ms1c_s1a_max_alpha_z_1msc_add-color_1mda_1mcc_add_alpha_1msc_1mda_max-color_1ms1c_o_max_alpha_s1a_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1mca_1mcc_max_alpha_1mca_ca_min-color_1mca_sa_rsub_alpha_s1a_dc_add-color_1mca_1mcc_min_alpha_1msa_1ms1a_add-color_s1c_da_max_alpha_dc_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_sa_cc_add_alpha_sc_sc_add-color_dc_da_max_alpha_dc_s1a_max-color_sa_1mca_sub_alpha_1mca_1ms1c_add-color_1msa_1msa_rsub_alpha_1mda_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1msa_1mdc_max_alpha_s1a_ca_max-color_1mda_cc_min_alpha_sas_dc_sub-color_1ms1a_sc_sub_alpha_z_dc_max-color_sc_dc_sub_alpha_s1c_o_min
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_sas_z_max_alpha_1mcc_1msc_min-color_1msa_1msc_min_alpha_ca_s1a_add-color_1mda_1msc_max_alpha_dc_s1a_rsub-color_s1c_s1c_add_alpha_s1c_z_max
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1msc_sas_sub_alpha_s1a_1mda_add-color_sa_1mcc_min_alpha_cc_1mcc_sub-color_dc_1ms1a_sub_alpha_1mca_z_max-color_1msc_1msa_max_alpha_sc_s1c_min
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_ca_ca_rsub_alpha_1msa_s1c_rsub-color_dc_1ms1a_min_alpha_1ms1a_cc_rsub-color_ca_ca_add_alpha_s1c_sc_add-color_o_1ms1c_sub_alpha_z_1mda_sub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1ms1a_ca_add_alpha_1msa_cc_max-color_s1c_z_sub_alpha_sa_sc_add-color_da_da_max_alpha_s1c_cc_rsub-color_da_s1a_max_alpha_da_o_max
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1msc_1ms1a_add_alpha_1mdc_1msa_sub-color_dc_1ms1c_rsub_alpha_z_1mdc_sub-color_ca_1ms1c_min_alpha_sas_ca_rsub-color_1ms1c_s1c_add_alpha_z_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_dc_1mca_min_alpha_1msa_1msc_sub-color_s1a_1msc_rsub_alpha_dc_dc_max-color_sa_1mda_sub_alpha_z_da_max-color_dc_sc_max_alpha_dc_1ms1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1ms1c_1mda_add_alpha_cc_1mca_min-color_da_o_sub_alpha_da_1mda_max-color_z_1mcc_sub_alpha_sc_cc_sub-color_1mca_1ms1a_max_alpha_cc_dc_max
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_z_1mcc_sub_alpha_1mdc_sa_sub-color_s1a_s1a_rsub_alpha_cc_z_add-color_s1c_s1a_rsub_alpha_dc_1mca_add-color_1mdc_1ms1c_max_alpha_s1a_dc_sub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_s1c_1mda_add_alpha_s1c_ca_add-color_1mca_z_max_alpha_dc_1mcc_max-color_sa_dc_max_alpha_1ms1c_o_sub-color_1mcc_1msc_rsub_alpha_da_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1mca_1mdc_rsub_alpha_da_1ms1c_add-color_cc_ca_add_alpha_da_sas_max-color_z_1mcc_min_alpha_o_z_min-color_ca_s1c_add_alpha_1msc_s1a_sub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1mda_da_sub_alpha_sc_ca_add-color_1msa_z_min_alpha_1mca_1mcc_min-color_o_sa_add_alpha_1mda_dc_rsub-color_sc_1mcc_min_alpha_s1a_z_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1ms1c_sa_rsub_alpha_1mda_s1c_sub-color_o_ca_min_alpha_sa_da_add-color_sa_da_min_alpha_s1c_s1c_max-color_z_s1a_max_alpha_1msa_cc_max
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_ca_1msa_add_alpha_dc_1ms1a_add-color_da_cc_rsub_alpha_1ms1a_s1a_max-color_sas_z_min_alpha_1mca_da_add-color_1msc_ca_min_alpha_1mdc_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_da_ca_max_alpha_da_1mdc_rsub-color_sa_1msc_sub_alpha_sc_1mca_sub-color_1ms1c_s1c_add_alpha_s1c_dc_rsub-color_da_1mda_add_alpha_s1c_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_da_z_rsub_alpha_s1a_s1a_rsub-color_s1c_1msa_rsub_alpha_1mda_sc_add-color_cc_1mcc_min_alpha_sas_da_add-color_1mcc_1msc_sub_alpha_da_z_max
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1mda_s1a_min_alpha_1msa_sc_sub-color_1msa_o_rsub_alpha_da_z_add-color_1msc_s1c_rsub_alpha_1mda_s1a_max-color_s1c_cc_add_alpha_sas_ca_add
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_s1a_1mda_max_alpha_s1c_1msa_rsub-color_ca_1ms1a_add_alpha_1mda_1msc_min-color_z_s1a_add_alpha_1mdc_1mcc_add-color_s1c_1mda_add_alpha_1ms1a_o_sub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1mda_z_add_alpha_sas_1mca_min-color_cc_s1c_add_alpha_sc_o_sub-color_z_1mda_min_alpha_1mda_s1a_sub-color_s1c_sc_min_alpha_o_o_add
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1msc_1ms1c_sub_alpha_da_z_min-color_sa_cc_max_alpha_sc_sa_min-color_o_s1c_sub_alpha_1msa_sa_add-color_sa_1mda_rsub_alpha_cc_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1mdc_1mda_rsub_alpha_1mca_1mcc_min-color_dc_o_rsub_alpha_sa_z_add-color_1msc_da_max_alpha_1mca_1mca_sub-color_sa_1ms1a_sub_alpha_1msa_sc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1mca_cc_max_alpha_sas_cc_add-color_dc_1ms1a_rsub_alpha_sa_1mca_sub-color_1msc_cc_rsub_alpha_cc_o_sub-color_s1c_1msa_rsub_alpha_1mda_ca_max
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1ms1c_1ms1c_max_alpha_1mdc_z_sub-color_sc_z_max_alpha_1ms1c_sas_sub-color_1msc_1msc_min_alpha_s1a_ca_min-color_1msc_1msc_add_alpha_ca_da_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_s1a_s1c_rsub_alpha_sa_sas_max-color_z_1msa_min_alpha_sas_s1c_rsub-color_1mdc_1msa_rsub_alpha_sc_s1a_min-color_1mdc_sa_min_alpha_1mca_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_s1a_1ms1c_add_alpha_1mcc_1mda_sub-color_ca_1ms1a_max_alpha_1ms1c_s1c_min-color_da_sc_sub_alpha_sc_1mcc_min-color_1mda_dc_max_alpha_ca_s1c_max
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_o_ca_add_alpha_z_1msa_sub-color_z_1mcc_add_alpha_1mcc_1mca_sub-color_1msa_da_rsub_alpha_cc_1ms1a_add-color_cc_1mcc_sub_alpha_1mda_1ms1c_min
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_ca_1msa_max_alpha_s1a_1mda_sub-color_s1a_sc_add_alpha_dc_1mca_max-color_sas_s1a_add_alpha_1msa_sas_min-color_1ms1c_1msc_sub_alpha_sc_sas_add
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_o_1msc_max_alpha_1ms1a_1mca_add-color_1mdc_s1c_min_alpha_ca_dc_sub-color_1mdc_s1c_sub_alpha_z_sc_min-color_ca_1mca_rsub_alpha_s1a_1ms1a_add
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_s1a_cc_rsub_alpha_1msc_1mcc_min-color_sc_1mdc_add_alpha_da_ca_min-color_1mcc_1mda_max_alpha_1ms1c_s1a_min-color_s1c_cc_sub_alpha_ca_1mda_max
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_cc_1mca_add_alpha_o_1ms1a_sub-color_1mcc_1msc_max_alpha_1mdc_sas_sub-color_ca_1mdc_min_alpha_z_1mdc_max-color_1ms1c_1mdc_min_alpha_dc_o_min
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_sc_1mca_max_alpha_1ms1c_1mdc_sub-color_ca_1mda_sub_alpha_ca_o_rsub-color_cc_dc_add_alpha_ca_1msa_min-color_1ms1c_1mcc_max_alpha_sas_1mdc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_dc_1msa_sub_alpha_1mca_da_rsub-color_z_cc_add_alpha_sa_dc_add-color_s1a_1ms1a_rsub_alpha_1mca_s1c_min-color_1mdc_z_min_alpha_sc_1mcc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_da_1ms1a_rsub_alpha_da_s1a_max-color_o_sc_max_alpha_1mcc_1msc_sub-color_1msc_1mcc_max_alpha_s1c_1mca_sub-color_ca_1mcc_max_alpha_s1a_dc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1ms1a_sa_max_alpha_sas_sas_min-color_1ms1c_1msa_sub_alpha_1msc_o_add-color_sa_sa_rsub_alpha_cc_cc_add-color_da_da_add_alpha_s1c_da_add
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_s1c_sc_rsub_alpha_1msc_1ms1a_max-color_1ms1c_1mda_rsub_alpha_z_1mcc_max-color_z_sas_sub_alpha_1ms1c_s1c_sub-color_1mdc_s1c_min_alpha_sa_1mdc_sub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_sa_1mdc_add_alpha_cc_1ms1c_sub-color_1msa_z_max_alpha_da_1mda_rsub-color_1msa_1msc_rsub_alpha_1mcc_o_min-color_1ms1c_cc_add_alpha_dc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_cc_sa_sub_alpha_z_dc_rsub-color_s1a_1mdc_sub_alpha_1msc_1mdc_min-color_1mcc_ca_sub_alpha_ca_z_min-color_1mdc_s1c_min_alpha_s1c_1mdc_add
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_sas_1mdc_rsub_alpha_s1a_z_sub-color_1msc_sc_min_alpha_s1a_sc_sub-color_sas_z_max_alpha_1msc_da_min-color_s1c_dc_rsub_alpha_o_1mcc_min
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1mca_s1c_rsub_alpha_1mca_o_rsub-color_1msc_s1a_rsub_alpha_da_cc_max-color_o_1msc_sub_alpha_sas_da_max-color_z_o_min_alpha_cc_dc_add
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1mcc_da_sub_alpha_s1a_z_sub-color_sas_da_max_alpha_z_1mcc_add-color_sas_da_rsub_alpha_sc_1ms1c_min-color_da_1mdc_sub_alpha_1ms1c_1msa_max
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1ms1a_z_sub_alpha_1mdc_s1a_min-color_1mda_1mcc_max_alpha_1msc_o_max-color_1ms1a_1mcc_min_alpha_1mcc_s1c_max-color_1mcc_1ms1a_add_alpha_sa_1mca_min
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_s1c_sa_min_alpha_1msc_dc_min-color_1mdc_1mca_sub_alpha_s1a_1msc_max-color_sas_ca_max_alpha_1ms1c_sas_sub-color_1msc_sas_max_alpha_1mcc_da_add
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_z_1msa_rsub_alpha_1msc_z_add-color_s1c_1ms1c_min_alpha_s1a_dc_max-color_1ms1a_o_max_alpha_1mca_dc_rsub-color_sc_dc_min_alpha_sas_1ms1a_max
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_sas_s1a_add_alpha_sas_1ms1a_max-color_1msa_sas_rsub_alpha_s1a_1mca_sub-color_1mcc_1ms1a_add_alpha_sc_s1a_min-color_ca_1ms1c_max_alpha_1mca_1mcc_add
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1msa_1mca_add_alpha_dc_1ms1c_max-color_1msc_sc_sub_alpha_sa_s1c_rsub-color_o_1mcc_rsub_alpha_1mdc_s1c_rsub-color_ca_1mcc_sub_alpha_sas_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1ms1a_o_sub_alpha_sc_z_min-color_da_o_add_alpha_1msc_sa_min-color_1mdc_1mda_sub_alpha_sas_1mdc_max-color_1mdc_1msa_max_alpha_o_1msc_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1mda_1ms1a_add_alpha_1mcc_1mca_max-color_sc_dc_sub_alpha_1msc_1ms1a_max-color_1ms1a_sa_max_alpha_da_1ms1c_add-color_1ms1a_dc_max_alpha_1ms1c_s1c_sub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_z_sc_add_alpha_1ms1c_sa_min-color_dc_1mca_add_alpha_z_1mca_max-color_1ms1c_sa_max_alpha_1mcc_sc_sub-color_s1c_1mda_add_alpha_s1c_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_sc_sc_add_alpha_cc_cc_add-color_1ms1c_ca_sub_alpha_1msa_1mda_max-color_da_1mdc_sub_alpha_1mdc_1mda_rsub-color_1msa_1msa_min_alpha_1mca_1ms1c_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_da_o_add_alpha_1msa_1mca_sub-color_cc_1msc_min_alpha_1msa_s1a_add-color_1mca_sc_min_alpha_1msc_1ms1c_add-color_1ms1c_1mcc_add_alpha_1mdc_o_add
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1msa_1mda_max_alpha_1ms1c_o_rsub-color_1mda_s1a_rsub_alpha_1mca_sas_add-color_s1c_1mca_add_alpha_cc_ca_max-color_s1c_1mcc_max_alpha_s1a_o_min
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1ms1a_cc_max_alpha_1msa_1mca_sub-color_o_1mdc_max_alpha_1mda_1ms1c_rsub-color_sas_da_max_alpha_1msa_1msc_add-color_sc_1msc_add_alpha_sas_1ms1a_rsub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_sc_1ms1c_rsub_alpha_1msc_s1a_rsub-color_1ms1a_1msc_max_alpha_1mda_sc_sub-color_1msa_dc_min_alpha_1msa_1mca_add-color_da_1mcc_rsub_alpha_1ms1c_sa_min
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_s1a_s1a_sub_alpha_sc_1msa_rsub-color_sc_1mcc_add_alpha_s1a_1ms1c_rsub-color_1mdc_ca_rsub_alpha_1mda_1ms1c_rsub-color_1ms1a_1msc_min_alpha_o_sas_sub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_sa_1mdc_rsub_alpha_1mda_cc_sub-color_1msc_z_max_alpha_o_s1c_sub-color_1ms1a_1msc_sub_alpha_ca_sa_sub-color_ca_ca_max_alpha_cc_s1a_min
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_o_cc_add_alpha_o_s1c_add-color_1mdc_1mcc_min_alpha_1ms1a_1mcc_sub-color_sas_1msa_sub_alpha_1ms1c_1mda_add-color_1msa_o_add_alpha_dc_sc_sub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1ms1a_sa_add_alpha_o_1ms1a_max-color_sa_1ms1c_add_alpha_s1a_s1c_max-color_sc_1mdc_add_alpha_1ms1a_1mdc_sub-color_da_sa_sub_alpha_1mcc_sc_min
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1ms1c_s1c_min_alpha_1ms1c_cc_add-color_sas_sas_max_alpha_1mca_dc_min-color_1msc_1ms1c_min_alpha_dc_1mdc_add-color_1mdc_s1a_rsub_alpha_o_1mda_add
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1mca_ca_max_alpha_sa_cc_add-color_o_cc_min_alpha_1mda_1ms1c_max-color_z_1msa_max_alpha_1mda_da_rsub-color_sc_1mca_add_alpha_sc_1mca_max
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_o_sas_rsub_alpha_1msc_1mcc_rsub-color_z_s1a_sub_alpha_da_s1c_add-color_1mda_sc_add_alpha_z_z_rsub-color_1ms1a_sc_sub_alpha_sa_1msa_sub
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_sas_s1c_add_alpha_1mca_1mca_sub-color_1mdc_sc_max_alpha_1msa_s1c_rsub-color_1msa_1mdc_max_alpha_1mca_1mdc_max-color_s1c_ca_min_alpha_1ms1c_1msc_min
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_cc_1mcc_max_alpha_z_o_add-color_sa_s1a_max_alpha_1msa_dc_min-color_sc_cc_add_alpha_dc_1msa_sub-color_1ms1a_o_max_alpha_1ms1a_sc_add
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_cc_ca_sub_alpha_1ms1c_da_add-color_ca_dc_sub_alpha_s1c_sc_add-color_sc_sa_min_alpha_1ms1c_1mda_min-color_1ms1c_dc_rsub_alpha_1msc_1msc_add
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1mca_1mdc_min_alpha_ca_1ms1a_min-color_o_s1a_add_alpha_s1a_ca_add-color_sas_1mca_add_alpha_1msc_sa_sub-color_sc_1msc_max_alpha_1msc_sas_max
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1mcc_s1c_max_alpha_da_sc_add-color_dc_1mcc_sub_alpha_s1a_o_sub-color_1ms1a_da_sub_alpha_cc_da_max-color_1msa_s1a_max_alpha_ca_s1a_add
+dEQP-VK.pipeline.blend.dual_source.format.b5g5r5a1_unorm_pack16.states.color_1ms1a_o_rsub_alpha_o_sas_max-color_z_1msa_min_alpha_dc_sc_rsub-color_sc_1mda_add_alpha_1ms1c_cc_max-color_s1a_1ms1c_max_alpha_1mca_o_rsub
 dEQP-VK.pipeline.depth.format.d16_unorm.depth_test_disabled.depth_write_enabled
 dEQP-VK.pipeline.depth.format.x8_d24_unorm_pack32.depth_test_disabled.depth_write_enabled
 dEQP-VK.pipeline.depth.format.d32_sfloat.depth_test_disabled.depth_write_enabled
@@ -69307,6 +99381,134 @@
 dEQP-VK.pipeline.depth.nocolor.format.d32_sfloat_s8_uint_separate_layouts.compare_ops.not_equal_less_or_equal_not_equal_greater_depth_bounds_test
 dEQP-VK.pipeline.depth.nocolor.format.d32_sfloat_s8_uint_separate_layouts.compare_ops.never_zerodepthbounds_depthdisabled_stencilenabled
 dEQP-VK.pipeline.depth.nocolor.format.d32_sfloat_s8_uint_separate_layouts.depth_test_disabled.depth_write_enabled
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.multiset.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.graphics.arrays.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.multiset.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.uniform_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.uniform_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.uniform_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.storage_buffer.numcmdbuffers_1.sameorder.numdescriptorsetbindings_2.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.storage_buffer.numcmdbuffers_2.reverseorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_1.numnondynamicbindings_1
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_0
+dEQP-VK.pipeline.dynamic_offset.compute.arrays.storage_buffer.numcmdbuffers_2.sameorder.numdescriptorsetbindings_1.numdynamicbindings_2.numnondynamicbindings_1
 dEQP-VK.pipeline.image.suballocation.sampling_type.combined.view_type.1d.format.a2b10g10r10_unorm_pack32.count_1.size.1x1
 dEQP-VK.pipeline.image.suballocation.sampling_type.combined.view_type.1d.format.a2b10g10r10_unorm_pack32.count_1.size.2x1
 dEQP-VK.pipeline.image.suballocation.sampling_type.combined.view_type.1d.format.a2b10g10r10_unorm_pack32.count_1.size.32x1
@@ -70863,74 +101065,414 @@
 dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d32_sfloat_s8_uint.address_modes.uvw_mode_clamp_to_border_mode_clamp_to_edge_mode_clamp_to_edge
 dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d32_sfloat_s8_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_edge_mode_clamp_to_border
 dEQP-VK.pipeline.sampler.view_type.2d_unnormalized.format.d32_sfloat_s8_uint.address_modes.uvw_mode_clamp_to_edge_mode_clamp_to_border_mode_repeat
-dEQP-VK.pipeline.sampler.exact_sampling.r8_srgb.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r8_srgb.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8_uint.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8_uint.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_sint.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_sint.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r8g8_unorm.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r8g8_unorm.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_snorm.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_snorm.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_snorm.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_snorm.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r8g8_uint.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r8g8_uint.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r8_sint.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r8_sint.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_srgb.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_srgb.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_unorm.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_unorm.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_unorm.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_unorm.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_srgb.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_srgb.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r8g8_srgb.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r8g8_srgb.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r8_uint.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r8_uint.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_uint.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_uint.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r8g8_sint.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r8g8_sint.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r8_snorm.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r8_snorm.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_sint.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_sint.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r8g8_snorm.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r8g8_snorm.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_unorm.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_unorm.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r8_unorm.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r8_unorm.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r32g32_sfloat.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r32g32_sfloat.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32_uint.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32_uint.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16a16_sfloat.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16a16_sfloat.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r16g16_uint.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r16g16_uint.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32a32_sint.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32a32_sint.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sint.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sint.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r16_sfloat.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r16_sfloat.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r32_sint.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r32_sint.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r32_uint.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r32_uint.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sfloat.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sfloat.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r16g16_sint.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r16g16_sint.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r16_snorm.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r16_snorm.unnormalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r32_sfloat.normalized_coords
-dEQP-VK.pipeline.sampler.exact_sampling.r32_sfloat.unnormalized_coords
+dEQP-VK.pipeline.sampler.exact_sampling.r8_srgb.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8_srgb.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8_srgb.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8_srgb.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8_srgb.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8_srgb.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8_srgb.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8_srgb.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8_srgb.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8_srgb.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8_srgb.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8_srgb.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8_uint.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8_uint.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8_uint.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8_uint.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8_uint.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8_uint.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8_uint.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8_uint.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8_uint.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8_uint.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8_uint.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8_uint.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_sint.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_sint.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_sint.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_sint.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_sint.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_sint.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_sint.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_sint.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_sint.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_sint.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_sint.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_sint.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_unorm.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_unorm.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_unorm.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_unorm.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_unorm.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_unorm.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_unorm.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_unorm.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_unorm.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_unorm.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_unorm.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_unorm.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_snorm.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_snorm.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_snorm.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_snorm.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_snorm.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_snorm.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_snorm.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_snorm.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_snorm.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_snorm.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_snorm.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_snorm.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_snorm.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_snorm.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_snorm.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_snorm.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_snorm.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_snorm.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_snorm.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_snorm.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_snorm.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_snorm.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_snorm.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_snorm.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_uint.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_uint.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_uint.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_uint.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_uint.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_uint.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_uint.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_uint.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_uint.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_uint.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_uint.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_uint.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8_sint.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8_sint.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8_sint.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8_sint.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8_sint.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8_sint.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8_sint.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8_sint.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8_sint.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8_sint.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8_sint.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8_sint.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_srgb.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_srgb.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_srgb.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_srgb.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_srgb.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_srgb.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_srgb.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_srgb.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_srgb.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_srgb.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_srgb.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_srgb.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_unorm.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_unorm.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_unorm.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_unorm.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_unorm.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_unorm.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_unorm.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_unorm.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_unorm.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_unorm.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_unorm.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_unorm.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_unorm.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_unorm.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_unorm.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_unorm.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_unorm.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_unorm.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_unorm.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_unorm.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_unorm.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_unorm.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_unorm.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8a8_unorm.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_srgb.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_srgb.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_srgb.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_srgb.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_srgb.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_srgb.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_srgb.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_srgb.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_srgb.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_srgb.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_srgb.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_srgb.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_srgb.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_srgb.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_srgb.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_srgb.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_srgb.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_srgb.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_srgb.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_srgb.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_srgb.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_srgb.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_srgb.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_srgb.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8_uint.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8_uint.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8_uint.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8_uint.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8_uint.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8_uint.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8_uint.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8_uint.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8_uint.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8_uint.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8_uint.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8_uint.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_uint.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_uint.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_uint.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_uint.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_uint.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_uint.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_uint.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_uint.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_uint.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_uint.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_uint.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8b8a8_uint.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_sint.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_sint.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_sint.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_sint.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_sint.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_sint.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_sint.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_sint.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_sint.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_sint.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_sint.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_sint.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8_snorm.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8_snorm.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8_snorm.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8_snorm.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8_snorm.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8_snorm.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8_snorm.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8_snorm.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8_snorm.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8_snorm.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8_snorm.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8_snorm.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_sint.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_sint.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_sint.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_sint.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_sint.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_sint.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_sint.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_sint.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_sint.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_sint.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_sint.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_sint.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_snorm.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_snorm.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_snorm.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_snorm.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_snorm.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_snorm.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_snorm.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_snorm.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_snorm.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_snorm.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_snorm.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8g8_snorm.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_unorm.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_unorm.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_unorm.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_unorm.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_unorm.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_unorm.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_unorm.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_unorm.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_unorm.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_unorm.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_unorm.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.b8g8r8_unorm.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8_unorm.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8_unorm.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8_unorm.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8_unorm.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8_unorm.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8_unorm.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8_unorm.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8_unorm.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8_unorm.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r8_unorm.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r8_unorm.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r8_unorm.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32_sfloat.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32_sfloat.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32_sfloat.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32_sfloat.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32_sfloat.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32_sfloat.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32_sfloat.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32_sfloat.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32_sfloat.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32_sfloat.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32_sfloat.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32_sfloat.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32_uint.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32_uint.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32_uint.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32_uint.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32_uint.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32_uint.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32_uint.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32_uint.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32_uint.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32_uint.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32_uint.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32_uint.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16a16_sfloat.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16a16_sfloat.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16a16_sfloat.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16a16_sfloat.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16a16_sfloat.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16a16_sfloat.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16a16_sfloat.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16a16_sfloat.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16a16_sfloat.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16a16_sfloat.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16a16_sfloat.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16a16_sfloat.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16_uint.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16_uint.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16_uint.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16_uint.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16_uint.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16_uint.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16_uint.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16_uint.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16_uint.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16_uint.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16_uint.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16_uint.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32a32_sint.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32a32_sint.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32a32_sint.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32a32_sint.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32a32_sint.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32a32_sint.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32a32_sint.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32a32_sint.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32a32_sint.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32a32_sint.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32a32_sint.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r32g32b32a32_sint.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sint.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sint.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sint.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sint.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sint.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sint.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sint.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sint.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sint.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sint.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sint.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sint.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r16_sfloat.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r16_sfloat.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r16_sfloat.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r16_sfloat.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r16_sfloat.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r16_sfloat.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r16_sfloat.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r16_sfloat.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r16_sfloat.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r16_sfloat.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r16_sfloat.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r16_sfloat.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r32_sint.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r32_sint.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r32_sint.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r32_sint.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r32_sint.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r32_sint.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r32_sint.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r32_sint.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r32_sint.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r32_sint.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r32_sint.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r32_sint.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r32_uint.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r32_uint.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r32_uint.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r32_uint.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r32_uint.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r32_uint.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r32_uint.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r32_uint.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r32_uint.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r32_uint.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r32_uint.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r32_uint.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sfloat.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sfloat.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sfloat.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sfloat.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sfloat.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sfloat.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sfloat.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sfloat.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sfloat.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sfloat.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sfloat.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16b16_sfloat.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16_sint.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16_sint.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16_sint.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16_sint.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16_sint.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16_sint.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16_sint.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16_sint.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16_sint.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16_sint.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16_sint.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r16g16_sint.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r16_snorm.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r16_snorm.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r16_snorm.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r16_snorm.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r16_snorm.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r16_snorm.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r16_snorm.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r16_snorm.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r16_snorm.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r16_snorm.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r16_snorm.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r16_snorm.solid_color.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r32_sfloat.gradient.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r32_sfloat.gradient.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r32_sfloat.gradient.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r32_sfloat.gradient.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r32_sfloat.gradient.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r32_sfloat.gradient.unnormalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r32_sfloat.solid_color.normalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r32_sfloat.solid_color.normalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r32_sfloat.solid_color.normalized_coords.edge_right
+dEQP-VK.pipeline.sampler.exact_sampling.r32_sfloat.solid_color.unnormalized_coords.centered
+dEQP-VK.pipeline.sampler.exact_sampling.r32_sfloat.solid_color.unnormalized_coords.edge_left
+dEQP-VK.pipeline.sampler.exact_sampling.r32_sfloat.solid_color.unnormalized_coords.edge_right
 dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d.format.d16_unorm_s8_uint.min_filter.linear
 dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d.format.d16_unorm_s8_uint.min_filter.nearest
 dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.2d.format.d16_unorm_s8_uint.min_reduce.comp_identity_zero_zero_zero.average
@@ -71846,6 +102388,378 @@
 dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.cube_array.format.d32_sfloat_s8_uint.mipmap.linear.lod.select_bias_2_5
 dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.cube_array.format.d32_sfloat_s8_uint.mipmap.linear.lod.select_bias_3_1
 dEQP-VK.pipeline.sampler.separate_stencil_usage.view_type.cube_array.format.d32_sfloat_s8_uint.mipmap.linear.lod.select_bias_3_7
+dEQP-VK.pipeline.spec_constant.graphics.vertex.default_value.int8
+dEQP-VK.pipeline.spec_constant.graphics.vertex.default_value.uint8
+dEQP-VK.pipeline.spec_constant.graphics.vertex.default_value.int16
+dEQP-VK.pipeline.spec_constant.graphics.vertex.default_value.uint16
+dEQP-VK.pipeline.spec_constant.graphics.vertex.default_value.int64
+dEQP-VK.pipeline.spec_constant.graphics.vertex.default_value.uint64
+dEQP-VK.pipeline.spec_constant.graphics.vertex.default_value.float16
+dEQP-VK.pipeline.spec_constant.graphics.vertex.default_value.bool_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.default_value.int8_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.default_value.uint8_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.default_value.int16_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.default_value.uint16_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.default_value.int_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.default_value.uint_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.default_value.int64_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.default_value.uint64_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.default_value.float16_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.default_value.float_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.default_value.double_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.int8
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.int8_2
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.uint8
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.uint8_2
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.int16
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.int16_2
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.uint16
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.uint16_2
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.uint_2
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.int64
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.int64_2
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.uint64
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.uint64_2
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.float16
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.float16_2
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.float_2
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.double_2
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.mixed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.mixed_reversed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.bool_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.int8_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.int8_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.uint8_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.uint8_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.int16_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.int16_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.uint16_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.uint16_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.int_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.uint_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.uint_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.int64_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.int64_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.uint64_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.uint64_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.float16_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.float16_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.float_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.float_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.double_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.double_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.mixed_packed
+dEQP-VK.pipeline.spec_constant.graphics.vertex.basic.mixed_reversed_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.default_value.int8
+dEQP-VK.pipeline.spec_constant.graphics.fragment.default_value.uint8
+dEQP-VK.pipeline.spec_constant.graphics.fragment.default_value.int16
+dEQP-VK.pipeline.spec_constant.graphics.fragment.default_value.uint16
+dEQP-VK.pipeline.spec_constant.graphics.fragment.default_value.int64
+dEQP-VK.pipeline.spec_constant.graphics.fragment.default_value.uint64
+dEQP-VK.pipeline.spec_constant.graphics.fragment.default_value.float16
+dEQP-VK.pipeline.spec_constant.graphics.fragment.default_value.bool_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.default_value.int8_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.default_value.uint8_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.default_value.int16_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.default_value.uint16_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.default_value.int_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.default_value.uint_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.default_value.int64_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.default_value.uint64_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.default_value.float16_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.default_value.float_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.default_value.double_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.int8
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.int8_2
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.uint8
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.uint8_2
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.int16
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.int16_2
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.uint16
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.uint16_2
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.uint_2
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.int64
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.int64_2
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.uint64
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.uint64_2
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.float16
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.float16_2
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.float_2
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.double_2
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.mixed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.mixed_reversed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.bool_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.int8_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.int8_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.uint8_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.uint8_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.int16_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.int16_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.uint16_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.uint16_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.int_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.uint_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.uint_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.int64_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.int64_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.uint64_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.uint64_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.float16_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.float16_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.float_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.float_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.double_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.double_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.mixed_packed
+dEQP-VK.pipeline.spec_constant.graphics.fragment.basic.mixed_reversed_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.default_value.int8
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.default_value.uint8
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.default_value.int16
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.default_value.uint16
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.default_value.int64
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.default_value.uint64
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.default_value.float16
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.default_value.bool_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.default_value.int8_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.default_value.uint8_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.default_value.int16_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.default_value.uint16_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.default_value.int_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.default_value.uint_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.default_value.int64_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.default_value.uint64_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.default_value.float16_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.default_value.float_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.default_value.double_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.int8
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.int8_2
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.uint8
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.uint8_2
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.int16
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.int16_2
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.uint16
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.uint16_2
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.uint_2
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.int64
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.int64_2
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.uint64
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.uint64_2
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.float16
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.float16_2
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.float_2
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.double_2
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.mixed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.mixed_reversed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.bool_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.int8_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.int8_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.uint8_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.uint8_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.int16_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.int16_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.uint16_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.uint16_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.int_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.uint_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.uint_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.int64_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.int64_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.uint64_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.uint64_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.float16_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.float16_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.float_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.float_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.double_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.double_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.mixed_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_control.basic.mixed_reversed_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.default_value.int8
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.default_value.uint8
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.default_value.int16
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.default_value.uint16
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.default_value.int64
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.default_value.uint64
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.default_value.float16
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.default_value.bool_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.default_value.int8_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.default_value.uint8_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.default_value.int16_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.default_value.uint16_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.default_value.int_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.default_value.uint_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.default_value.int64_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.default_value.uint64_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.default_value.float16_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.default_value.float_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.default_value.double_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.int8
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.int8_2
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.uint8
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.uint8_2
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.int16
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.int16_2
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.uint16
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.uint16_2
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.uint_2
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.int64
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.int64_2
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.uint64
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.uint64_2
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.float16
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.float16_2
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.float_2
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.double_2
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.mixed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.mixed_reversed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.bool_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.int8_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.int8_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.uint8_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.uint8_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.int16_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.int16_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.uint16_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.uint16_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.int_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.uint_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.uint_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.int64_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.int64_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.uint64_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.uint64_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.float16_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.float16_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.float_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.float_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.double_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.double_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.mixed_packed
+dEQP-VK.pipeline.spec_constant.graphics.tess_eval.basic.mixed_reversed_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.default_value.int8
+dEQP-VK.pipeline.spec_constant.graphics.geometry.default_value.uint8
+dEQP-VK.pipeline.spec_constant.graphics.geometry.default_value.int16
+dEQP-VK.pipeline.spec_constant.graphics.geometry.default_value.uint16
+dEQP-VK.pipeline.spec_constant.graphics.geometry.default_value.int64
+dEQP-VK.pipeline.spec_constant.graphics.geometry.default_value.uint64
+dEQP-VK.pipeline.spec_constant.graphics.geometry.default_value.float16
+dEQP-VK.pipeline.spec_constant.graphics.geometry.default_value.bool_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.default_value.int8_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.default_value.uint8_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.default_value.int16_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.default_value.uint16_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.default_value.int_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.default_value.uint_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.default_value.int64_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.default_value.uint64_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.default_value.float16_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.default_value.float_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.default_value.double_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.int8
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.int8_2
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.uint8
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.uint8_2
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.int16
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.int16_2
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.uint16
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.uint16_2
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.uint_2
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.int64
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.int64_2
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.uint64
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.uint64_2
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.float16
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.float16_2
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.float_2
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.double_2
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.mixed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.mixed_reversed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.bool_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.int8_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.int8_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.uint8_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.uint8_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.int16_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.int16_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.uint16_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.uint16_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.int_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.uint_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.uint_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.int64_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.int64_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.uint64_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.uint64_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.float16_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.float16_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.float_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.float_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.double_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.double_2_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.mixed_packed
+dEQP-VK.pipeline.spec_constant.graphics.geometry.basic.mixed_reversed_packed
+dEQP-VK.pipeline.spec_constant.compute.default_value.int8
+dEQP-VK.pipeline.spec_constant.compute.default_value.uint8
+dEQP-VK.pipeline.spec_constant.compute.default_value.int16
+dEQP-VK.pipeline.spec_constant.compute.default_value.uint16
+dEQP-VK.pipeline.spec_constant.compute.default_value.int64
+dEQP-VK.pipeline.spec_constant.compute.default_value.uint64
+dEQP-VK.pipeline.spec_constant.compute.default_value.float16
+dEQP-VK.pipeline.spec_constant.compute.default_value.bool_packed
+dEQP-VK.pipeline.spec_constant.compute.default_value.int8_packed
+dEQP-VK.pipeline.spec_constant.compute.default_value.uint8_packed
+dEQP-VK.pipeline.spec_constant.compute.default_value.int16_packed
+dEQP-VK.pipeline.spec_constant.compute.default_value.uint16_packed
+dEQP-VK.pipeline.spec_constant.compute.default_value.int_packed
+dEQP-VK.pipeline.spec_constant.compute.default_value.uint_packed
+dEQP-VK.pipeline.spec_constant.compute.default_value.int64_packed
+dEQP-VK.pipeline.spec_constant.compute.default_value.uint64_packed
+dEQP-VK.pipeline.spec_constant.compute.default_value.float16_packed
+dEQP-VK.pipeline.spec_constant.compute.default_value.float_packed
+dEQP-VK.pipeline.spec_constant.compute.default_value.double_packed
+dEQP-VK.pipeline.spec_constant.compute.basic.int8
+dEQP-VK.pipeline.spec_constant.compute.basic.int8_2
+dEQP-VK.pipeline.spec_constant.compute.basic.uint8
+dEQP-VK.pipeline.spec_constant.compute.basic.uint8_2
+dEQP-VK.pipeline.spec_constant.compute.basic.int16
+dEQP-VK.pipeline.spec_constant.compute.basic.int16_2
+dEQP-VK.pipeline.spec_constant.compute.basic.uint16
+dEQP-VK.pipeline.spec_constant.compute.basic.uint16_2
+dEQP-VK.pipeline.spec_constant.compute.basic.uint_2
+dEQP-VK.pipeline.spec_constant.compute.basic.int64
+dEQP-VK.pipeline.spec_constant.compute.basic.int64_2
+dEQP-VK.pipeline.spec_constant.compute.basic.uint64
+dEQP-VK.pipeline.spec_constant.compute.basic.uint64_2
+dEQP-VK.pipeline.spec_constant.compute.basic.float16
+dEQP-VK.pipeline.spec_constant.compute.basic.float16_2
+dEQP-VK.pipeline.spec_constant.compute.basic.float_2
+dEQP-VK.pipeline.spec_constant.compute.basic.double_2
+dEQP-VK.pipeline.spec_constant.compute.basic.mixed
+dEQP-VK.pipeline.spec_constant.compute.basic.mixed_reversed
+dEQP-VK.pipeline.spec_constant.compute.basic.bool_packed
+dEQP-VK.pipeline.spec_constant.compute.basic.int8_packed
+dEQP-VK.pipeline.spec_constant.compute.basic.int8_2_packed
+dEQP-VK.pipeline.spec_constant.compute.basic.uint8_packed
+dEQP-VK.pipeline.spec_constant.compute.basic.uint8_2_packed
+dEQP-VK.pipeline.spec_constant.compute.basic.int16_packed
+dEQP-VK.pipeline.spec_constant.compute.basic.int16_2_packed
+dEQP-VK.pipeline.spec_constant.compute.basic.uint16_packed
+dEQP-VK.pipeline.spec_constant.compute.basic.uint16_2_packed
+dEQP-VK.pipeline.spec_constant.compute.basic.int_packed
+dEQP-VK.pipeline.spec_constant.compute.basic.uint_packed
+dEQP-VK.pipeline.spec_constant.compute.basic.uint_2_packed
+dEQP-VK.pipeline.spec_constant.compute.basic.int64_packed
+dEQP-VK.pipeline.spec_constant.compute.basic.int64_2_packed
+dEQP-VK.pipeline.spec_constant.compute.basic.uint64_packed
+dEQP-VK.pipeline.spec_constant.compute.basic.uint64_2_packed
+dEQP-VK.pipeline.spec_constant.compute.basic.float16_packed
+dEQP-VK.pipeline.spec_constant.compute.basic.float16_2_packed
+dEQP-VK.pipeline.spec_constant.compute.basic.float_packed
+dEQP-VK.pipeline.spec_constant.compute.basic.float_2_packed
+dEQP-VK.pipeline.spec_constant.compute.basic.double_packed
+dEQP-VK.pipeline.spec_constant.compute.basic.double_2_packed
+dEQP-VK.pipeline.spec_constant.compute.basic.mixed_packed
+dEQP-VK.pipeline.spec_constant.compute.basic.mixed_reversed_packed
 dEQP-VK.pipeline.multisample.min_sample_shading_enabled.min_0_0.samples_2.quad
 dEQP-VK.pipeline.multisample.min_sample_shading_enabled.min_0_0.samples_4.quad
 dEQP-VK.pipeline.multisample.min_sample_shading_enabled.min_0_0.samples_8.quad
@@ -72196,10 +103110,1209 @@
 dEQP-VK.pipeline.multisample.shader_fragment_mask.samples_16.subpass_input.r8g8b8a8_unorm
 dEQP-VK.pipeline.multisample.shader_fragment_mask.samples_16.subpass_input.r32_uint
 dEQP-VK.pipeline.multisample.shader_fragment_mask.samples_16.subpass_input.r32_sint
+dEQP-VK.pipeline.multisample.variable_rate.1_2
+dEQP-VK.pipeline.multisample.variable_rate.1_4
+dEQP-VK.pipeline.multisample.variable_rate.1_8
+dEQP-VK.pipeline.multisample.variable_rate.1_16
+dEQP-VK.pipeline.multisample.variable_rate.1_32
+dEQP-VK.pipeline.multisample.variable_rate.1_64
+dEQP-VK.pipeline.multisample.variable_rate.2_1
+dEQP-VK.pipeline.multisample.variable_rate.2_4
+dEQP-VK.pipeline.multisample.variable_rate.2_8
+dEQP-VK.pipeline.multisample.variable_rate.2_16
+dEQP-VK.pipeline.multisample.variable_rate.2_32
+dEQP-VK.pipeline.multisample.variable_rate.2_64
+dEQP-VK.pipeline.multisample.variable_rate.4_1
+dEQP-VK.pipeline.multisample.variable_rate.4_2
+dEQP-VK.pipeline.multisample.variable_rate.4_8
+dEQP-VK.pipeline.multisample.variable_rate.4_16
+dEQP-VK.pipeline.multisample.variable_rate.4_32
+dEQP-VK.pipeline.multisample.variable_rate.4_64
+dEQP-VK.pipeline.multisample.variable_rate.8_1
+dEQP-VK.pipeline.multisample.variable_rate.8_2
+dEQP-VK.pipeline.multisample.variable_rate.8_4
+dEQP-VK.pipeline.multisample.variable_rate.8_16
+dEQP-VK.pipeline.multisample.variable_rate.8_32
+dEQP-VK.pipeline.multisample.variable_rate.8_64
+dEQP-VK.pipeline.multisample.variable_rate.16_1
+dEQP-VK.pipeline.multisample.variable_rate.16_2
+dEQP-VK.pipeline.multisample.variable_rate.16_4
+dEQP-VK.pipeline.multisample.variable_rate.16_8
+dEQP-VK.pipeline.multisample.variable_rate.16_32
+dEQP-VK.pipeline.multisample.variable_rate.16_64
+dEQP-VK.pipeline.multisample.variable_rate.32_1
+dEQP-VK.pipeline.multisample.variable_rate.32_2
+dEQP-VK.pipeline.multisample.variable_rate.32_4
+dEQP-VK.pipeline.multisample.variable_rate.32_8
+dEQP-VK.pipeline.multisample.variable_rate.32_16
+dEQP-VK.pipeline.multisample.variable_rate.32_64
+dEQP-VK.pipeline.multisample.variable_rate.64_1
+dEQP-VK.pipeline.multisample.variable_rate.64_2
+dEQP-VK.pipeline.multisample.variable_rate.64_4
+dEQP-VK.pipeline.multisample.variable_rate.64_8
+dEQP-VK.pipeline.multisample.variable_rate.64_16
+dEQP-VK.pipeline.multisample.variable_rate.64_32
+dEQP-VK.pipeline.multisample.variable_rate.1_1_2
+dEQP-VK.pipeline.multisample.variable_rate.1_1_4
+dEQP-VK.pipeline.multisample.variable_rate.1_1_8
+dEQP-VK.pipeline.multisample.variable_rate.1_1_16
+dEQP-VK.pipeline.multisample.variable_rate.1_1_32
+dEQP-VK.pipeline.multisample.variable_rate.1_1_64
+dEQP-VK.pipeline.multisample.variable_rate.1_2_1
+dEQP-VK.pipeline.multisample.variable_rate.1_2_2
+dEQP-VK.pipeline.multisample.variable_rate.1_2_4
+dEQP-VK.pipeline.multisample.variable_rate.1_2_8
+dEQP-VK.pipeline.multisample.variable_rate.1_2_16
+dEQP-VK.pipeline.multisample.variable_rate.1_2_32
+dEQP-VK.pipeline.multisample.variable_rate.1_2_64
+dEQP-VK.pipeline.multisample.variable_rate.1_4_1
+dEQP-VK.pipeline.multisample.variable_rate.1_4_2
+dEQP-VK.pipeline.multisample.variable_rate.1_4_4
+dEQP-VK.pipeline.multisample.variable_rate.1_4_8
+dEQP-VK.pipeline.multisample.variable_rate.1_4_16
+dEQP-VK.pipeline.multisample.variable_rate.1_4_32
+dEQP-VK.pipeline.multisample.variable_rate.1_4_64
+dEQP-VK.pipeline.multisample.variable_rate.1_8_1
+dEQP-VK.pipeline.multisample.variable_rate.1_8_2
+dEQP-VK.pipeline.multisample.variable_rate.1_8_4
+dEQP-VK.pipeline.multisample.variable_rate.1_8_8
+dEQP-VK.pipeline.multisample.variable_rate.1_8_16
+dEQP-VK.pipeline.multisample.variable_rate.1_8_32
+dEQP-VK.pipeline.multisample.variable_rate.1_8_64
+dEQP-VK.pipeline.multisample.variable_rate.1_16_1
+dEQP-VK.pipeline.multisample.variable_rate.1_16_2
+dEQP-VK.pipeline.multisample.variable_rate.1_16_4
+dEQP-VK.pipeline.multisample.variable_rate.1_16_8
+dEQP-VK.pipeline.multisample.variable_rate.1_16_16
+dEQP-VK.pipeline.multisample.variable_rate.1_16_32
+dEQP-VK.pipeline.multisample.variable_rate.1_16_64
+dEQP-VK.pipeline.multisample.variable_rate.1_32_1
+dEQP-VK.pipeline.multisample.variable_rate.1_32_2
+dEQP-VK.pipeline.multisample.variable_rate.1_32_4
+dEQP-VK.pipeline.multisample.variable_rate.1_32_8
+dEQP-VK.pipeline.multisample.variable_rate.1_32_16
+dEQP-VK.pipeline.multisample.variable_rate.1_32_32
+dEQP-VK.pipeline.multisample.variable_rate.1_32_64
+dEQP-VK.pipeline.multisample.variable_rate.1_64_1
+dEQP-VK.pipeline.multisample.variable_rate.1_64_2
+dEQP-VK.pipeline.multisample.variable_rate.1_64_4
+dEQP-VK.pipeline.multisample.variable_rate.1_64_8
+dEQP-VK.pipeline.multisample.variable_rate.1_64_16
+dEQP-VK.pipeline.multisample.variable_rate.1_64_32
+dEQP-VK.pipeline.multisample.variable_rate.1_64_64
+dEQP-VK.pipeline.multisample.variable_rate.2_1_1
+dEQP-VK.pipeline.multisample.variable_rate.2_1_2
+dEQP-VK.pipeline.multisample.variable_rate.2_1_4
+dEQP-VK.pipeline.multisample.variable_rate.2_1_8
+dEQP-VK.pipeline.multisample.variable_rate.2_1_16
+dEQP-VK.pipeline.multisample.variable_rate.2_1_32
+dEQP-VK.pipeline.multisample.variable_rate.2_1_64
+dEQP-VK.pipeline.multisample.variable_rate.2_2_1
+dEQP-VK.pipeline.multisample.variable_rate.2_2_4
+dEQP-VK.pipeline.multisample.variable_rate.2_2_8
+dEQP-VK.pipeline.multisample.variable_rate.2_2_16
+dEQP-VK.pipeline.multisample.variable_rate.2_2_32
+dEQP-VK.pipeline.multisample.variable_rate.2_2_64
+dEQP-VK.pipeline.multisample.variable_rate.2_4_1
+dEQP-VK.pipeline.multisample.variable_rate.2_4_2
+dEQP-VK.pipeline.multisample.variable_rate.2_4_4
+dEQP-VK.pipeline.multisample.variable_rate.2_4_8
+dEQP-VK.pipeline.multisample.variable_rate.2_4_16
+dEQP-VK.pipeline.multisample.variable_rate.2_4_32
+dEQP-VK.pipeline.multisample.variable_rate.2_4_64
+dEQP-VK.pipeline.multisample.variable_rate.2_8_1
+dEQP-VK.pipeline.multisample.variable_rate.2_8_2
+dEQP-VK.pipeline.multisample.variable_rate.2_8_4
+dEQP-VK.pipeline.multisample.variable_rate.2_8_8
+dEQP-VK.pipeline.multisample.variable_rate.2_8_16
+dEQP-VK.pipeline.multisample.variable_rate.2_8_32
+dEQP-VK.pipeline.multisample.variable_rate.2_8_64
+dEQP-VK.pipeline.multisample.variable_rate.2_16_1
+dEQP-VK.pipeline.multisample.variable_rate.2_16_2
+dEQP-VK.pipeline.multisample.variable_rate.2_16_4
+dEQP-VK.pipeline.multisample.variable_rate.2_16_8
+dEQP-VK.pipeline.multisample.variable_rate.2_16_16
+dEQP-VK.pipeline.multisample.variable_rate.2_16_32
+dEQP-VK.pipeline.multisample.variable_rate.2_16_64
+dEQP-VK.pipeline.multisample.variable_rate.2_32_1
+dEQP-VK.pipeline.multisample.variable_rate.2_32_2
+dEQP-VK.pipeline.multisample.variable_rate.2_32_4
+dEQP-VK.pipeline.multisample.variable_rate.2_32_8
+dEQP-VK.pipeline.multisample.variable_rate.2_32_16
+dEQP-VK.pipeline.multisample.variable_rate.2_32_32
+dEQP-VK.pipeline.multisample.variable_rate.2_32_64
+dEQP-VK.pipeline.multisample.variable_rate.2_64_1
+dEQP-VK.pipeline.multisample.variable_rate.2_64_2
+dEQP-VK.pipeline.multisample.variable_rate.2_64_4
+dEQP-VK.pipeline.multisample.variable_rate.2_64_8
+dEQP-VK.pipeline.multisample.variable_rate.2_64_16
+dEQP-VK.pipeline.multisample.variable_rate.2_64_32
+dEQP-VK.pipeline.multisample.variable_rate.2_64_64
+dEQP-VK.pipeline.multisample.variable_rate.4_1_1
+dEQP-VK.pipeline.multisample.variable_rate.4_1_2
+dEQP-VK.pipeline.multisample.variable_rate.4_1_4
+dEQP-VK.pipeline.multisample.variable_rate.4_1_8
+dEQP-VK.pipeline.multisample.variable_rate.4_1_16
+dEQP-VK.pipeline.multisample.variable_rate.4_1_32
+dEQP-VK.pipeline.multisample.variable_rate.4_1_64
+dEQP-VK.pipeline.multisample.variable_rate.4_2_1
+dEQP-VK.pipeline.multisample.variable_rate.4_2_2
+dEQP-VK.pipeline.multisample.variable_rate.4_2_4
+dEQP-VK.pipeline.multisample.variable_rate.4_2_8
+dEQP-VK.pipeline.multisample.variable_rate.4_2_16
+dEQP-VK.pipeline.multisample.variable_rate.4_2_32
+dEQP-VK.pipeline.multisample.variable_rate.4_2_64
+dEQP-VK.pipeline.multisample.variable_rate.4_4_1
+dEQP-VK.pipeline.multisample.variable_rate.4_4_2
+dEQP-VK.pipeline.multisample.variable_rate.4_4_8
+dEQP-VK.pipeline.multisample.variable_rate.4_4_16
+dEQP-VK.pipeline.multisample.variable_rate.4_4_32
+dEQP-VK.pipeline.multisample.variable_rate.4_4_64
+dEQP-VK.pipeline.multisample.variable_rate.4_8_1
+dEQP-VK.pipeline.multisample.variable_rate.4_8_2
+dEQP-VK.pipeline.multisample.variable_rate.4_8_4
+dEQP-VK.pipeline.multisample.variable_rate.4_8_8
+dEQP-VK.pipeline.multisample.variable_rate.4_8_16
+dEQP-VK.pipeline.multisample.variable_rate.4_8_32
+dEQP-VK.pipeline.multisample.variable_rate.4_8_64
+dEQP-VK.pipeline.multisample.variable_rate.4_16_1
+dEQP-VK.pipeline.multisample.variable_rate.4_16_2
+dEQP-VK.pipeline.multisample.variable_rate.4_16_4
+dEQP-VK.pipeline.multisample.variable_rate.4_16_8
+dEQP-VK.pipeline.multisample.variable_rate.4_16_16
+dEQP-VK.pipeline.multisample.variable_rate.4_16_32
+dEQP-VK.pipeline.multisample.variable_rate.4_16_64
+dEQP-VK.pipeline.multisample.variable_rate.4_32_1
+dEQP-VK.pipeline.multisample.variable_rate.4_32_2
+dEQP-VK.pipeline.multisample.variable_rate.4_32_4
+dEQP-VK.pipeline.multisample.variable_rate.4_32_8
+dEQP-VK.pipeline.multisample.variable_rate.4_32_16
+dEQP-VK.pipeline.multisample.variable_rate.4_32_32
+dEQP-VK.pipeline.multisample.variable_rate.4_32_64
+dEQP-VK.pipeline.multisample.variable_rate.4_64_1
+dEQP-VK.pipeline.multisample.variable_rate.4_64_2
+dEQP-VK.pipeline.multisample.variable_rate.4_64_4
+dEQP-VK.pipeline.multisample.variable_rate.4_64_8
+dEQP-VK.pipeline.multisample.variable_rate.4_64_16
+dEQP-VK.pipeline.multisample.variable_rate.4_64_32
+dEQP-VK.pipeline.multisample.variable_rate.4_64_64
+dEQP-VK.pipeline.multisample.variable_rate.8_1_1
+dEQP-VK.pipeline.multisample.variable_rate.8_1_2
+dEQP-VK.pipeline.multisample.variable_rate.8_1_4
+dEQP-VK.pipeline.multisample.variable_rate.8_1_8
+dEQP-VK.pipeline.multisample.variable_rate.8_1_16
+dEQP-VK.pipeline.multisample.variable_rate.8_1_32
+dEQP-VK.pipeline.multisample.variable_rate.8_1_64
+dEQP-VK.pipeline.multisample.variable_rate.8_2_1
+dEQP-VK.pipeline.multisample.variable_rate.8_2_2
+dEQP-VK.pipeline.multisample.variable_rate.8_2_4
+dEQP-VK.pipeline.multisample.variable_rate.8_2_8
+dEQP-VK.pipeline.multisample.variable_rate.8_2_16
+dEQP-VK.pipeline.multisample.variable_rate.8_2_32
+dEQP-VK.pipeline.multisample.variable_rate.8_2_64
+dEQP-VK.pipeline.multisample.variable_rate.8_4_1
+dEQP-VK.pipeline.multisample.variable_rate.8_4_2
+dEQP-VK.pipeline.multisample.variable_rate.8_4_4
+dEQP-VK.pipeline.multisample.variable_rate.8_4_8
+dEQP-VK.pipeline.multisample.variable_rate.8_4_16
+dEQP-VK.pipeline.multisample.variable_rate.8_4_32
+dEQP-VK.pipeline.multisample.variable_rate.8_4_64
+dEQP-VK.pipeline.multisample.variable_rate.8_8_1
+dEQP-VK.pipeline.multisample.variable_rate.8_8_2
+dEQP-VK.pipeline.multisample.variable_rate.8_8_4
+dEQP-VK.pipeline.multisample.variable_rate.8_8_16
+dEQP-VK.pipeline.multisample.variable_rate.8_8_32
+dEQP-VK.pipeline.multisample.variable_rate.8_8_64
+dEQP-VK.pipeline.multisample.variable_rate.8_16_1
+dEQP-VK.pipeline.multisample.variable_rate.8_16_2
+dEQP-VK.pipeline.multisample.variable_rate.8_16_4
+dEQP-VK.pipeline.multisample.variable_rate.8_16_8
+dEQP-VK.pipeline.multisample.variable_rate.8_16_16
+dEQP-VK.pipeline.multisample.variable_rate.8_16_32
+dEQP-VK.pipeline.multisample.variable_rate.8_16_64
+dEQP-VK.pipeline.multisample.variable_rate.8_32_1
+dEQP-VK.pipeline.multisample.variable_rate.8_32_2
+dEQP-VK.pipeline.multisample.variable_rate.8_32_4
+dEQP-VK.pipeline.multisample.variable_rate.8_32_8
+dEQP-VK.pipeline.multisample.variable_rate.8_32_16
+dEQP-VK.pipeline.multisample.variable_rate.8_32_32
+dEQP-VK.pipeline.multisample.variable_rate.8_32_64
+dEQP-VK.pipeline.multisample.variable_rate.8_64_1
+dEQP-VK.pipeline.multisample.variable_rate.8_64_2
+dEQP-VK.pipeline.multisample.variable_rate.8_64_4
+dEQP-VK.pipeline.multisample.variable_rate.8_64_8
+dEQP-VK.pipeline.multisample.variable_rate.8_64_16
+dEQP-VK.pipeline.multisample.variable_rate.8_64_32
+dEQP-VK.pipeline.multisample.variable_rate.8_64_64
+dEQP-VK.pipeline.multisample.variable_rate.16_1_1
+dEQP-VK.pipeline.multisample.variable_rate.16_1_2
+dEQP-VK.pipeline.multisample.variable_rate.16_1_4
+dEQP-VK.pipeline.multisample.variable_rate.16_1_8
+dEQP-VK.pipeline.multisample.variable_rate.16_1_16
+dEQP-VK.pipeline.multisample.variable_rate.16_1_32
+dEQP-VK.pipeline.multisample.variable_rate.16_1_64
+dEQP-VK.pipeline.multisample.variable_rate.16_2_1
+dEQP-VK.pipeline.multisample.variable_rate.16_2_2
+dEQP-VK.pipeline.multisample.variable_rate.16_2_4
+dEQP-VK.pipeline.multisample.variable_rate.16_2_8
+dEQP-VK.pipeline.multisample.variable_rate.16_2_16
+dEQP-VK.pipeline.multisample.variable_rate.16_2_32
+dEQP-VK.pipeline.multisample.variable_rate.16_2_64
+dEQP-VK.pipeline.multisample.variable_rate.16_4_1
+dEQP-VK.pipeline.multisample.variable_rate.16_4_2
+dEQP-VK.pipeline.multisample.variable_rate.16_4_4
+dEQP-VK.pipeline.multisample.variable_rate.16_4_8
+dEQP-VK.pipeline.multisample.variable_rate.16_4_16
+dEQP-VK.pipeline.multisample.variable_rate.16_4_32
+dEQP-VK.pipeline.multisample.variable_rate.16_4_64
+dEQP-VK.pipeline.multisample.variable_rate.16_8_1
+dEQP-VK.pipeline.multisample.variable_rate.16_8_2
+dEQP-VK.pipeline.multisample.variable_rate.16_8_4
+dEQP-VK.pipeline.multisample.variable_rate.16_8_8
+dEQP-VK.pipeline.multisample.variable_rate.16_8_16
+dEQP-VK.pipeline.multisample.variable_rate.16_8_32
+dEQP-VK.pipeline.multisample.variable_rate.16_8_64
+dEQP-VK.pipeline.multisample.variable_rate.16_16_1
+dEQP-VK.pipeline.multisample.variable_rate.16_16_2
+dEQP-VK.pipeline.multisample.variable_rate.16_16_4
+dEQP-VK.pipeline.multisample.variable_rate.16_16_8
+dEQP-VK.pipeline.multisample.variable_rate.16_16_32
+dEQP-VK.pipeline.multisample.variable_rate.16_16_64
+dEQP-VK.pipeline.multisample.variable_rate.16_32_1
+dEQP-VK.pipeline.multisample.variable_rate.16_32_2
+dEQP-VK.pipeline.multisample.variable_rate.16_32_4
+dEQP-VK.pipeline.multisample.variable_rate.16_32_8
+dEQP-VK.pipeline.multisample.variable_rate.16_32_16
+dEQP-VK.pipeline.multisample.variable_rate.16_32_32
+dEQP-VK.pipeline.multisample.variable_rate.16_32_64
+dEQP-VK.pipeline.multisample.variable_rate.16_64_1
+dEQP-VK.pipeline.multisample.variable_rate.16_64_2
+dEQP-VK.pipeline.multisample.variable_rate.16_64_4
+dEQP-VK.pipeline.multisample.variable_rate.16_64_8
+dEQP-VK.pipeline.multisample.variable_rate.16_64_16
+dEQP-VK.pipeline.multisample.variable_rate.16_64_32
+dEQP-VK.pipeline.multisample.variable_rate.16_64_64
+dEQP-VK.pipeline.multisample.variable_rate.32_1_1
+dEQP-VK.pipeline.multisample.variable_rate.32_1_2
+dEQP-VK.pipeline.multisample.variable_rate.32_1_4
+dEQP-VK.pipeline.multisample.variable_rate.32_1_8
+dEQP-VK.pipeline.multisample.variable_rate.32_1_16
+dEQP-VK.pipeline.multisample.variable_rate.32_1_32
+dEQP-VK.pipeline.multisample.variable_rate.32_1_64
+dEQP-VK.pipeline.multisample.variable_rate.32_2_1
+dEQP-VK.pipeline.multisample.variable_rate.32_2_2
+dEQP-VK.pipeline.multisample.variable_rate.32_2_4
+dEQP-VK.pipeline.multisample.variable_rate.32_2_8
+dEQP-VK.pipeline.multisample.variable_rate.32_2_16
+dEQP-VK.pipeline.multisample.variable_rate.32_2_32
+dEQP-VK.pipeline.multisample.variable_rate.32_2_64
+dEQP-VK.pipeline.multisample.variable_rate.32_4_1
+dEQP-VK.pipeline.multisample.variable_rate.32_4_2
+dEQP-VK.pipeline.multisample.variable_rate.32_4_4
+dEQP-VK.pipeline.multisample.variable_rate.32_4_8
+dEQP-VK.pipeline.multisample.variable_rate.32_4_16
+dEQP-VK.pipeline.multisample.variable_rate.32_4_32
+dEQP-VK.pipeline.multisample.variable_rate.32_4_64
+dEQP-VK.pipeline.multisample.variable_rate.32_8_1
+dEQP-VK.pipeline.multisample.variable_rate.32_8_2
+dEQP-VK.pipeline.multisample.variable_rate.32_8_4
+dEQP-VK.pipeline.multisample.variable_rate.32_8_8
+dEQP-VK.pipeline.multisample.variable_rate.32_8_16
+dEQP-VK.pipeline.multisample.variable_rate.32_8_32
+dEQP-VK.pipeline.multisample.variable_rate.32_8_64
+dEQP-VK.pipeline.multisample.variable_rate.32_16_1
+dEQP-VK.pipeline.multisample.variable_rate.32_16_2
+dEQP-VK.pipeline.multisample.variable_rate.32_16_4
+dEQP-VK.pipeline.multisample.variable_rate.32_16_8
+dEQP-VK.pipeline.multisample.variable_rate.32_16_16
+dEQP-VK.pipeline.multisample.variable_rate.32_16_32
+dEQP-VK.pipeline.multisample.variable_rate.32_16_64
+dEQP-VK.pipeline.multisample.variable_rate.32_32_1
+dEQP-VK.pipeline.multisample.variable_rate.32_32_2
+dEQP-VK.pipeline.multisample.variable_rate.32_32_4
+dEQP-VK.pipeline.multisample.variable_rate.32_32_8
+dEQP-VK.pipeline.multisample.variable_rate.32_32_16
+dEQP-VK.pipeline.multisample.variable_rate.32_32_64
+dEQP-VK.pipeline.multisample.variable_rate.32_64_1
+dEQP-VK.pipeline.multisample.variable_rate.32_64_2
+dEQP-VK.pipeline.multisample.variable_rate.32_64_4
+dEQP-VK.pipeline.multisample.variable_rate.32_64_8
+dEQP-VK.pipeline.multisample.variable_rate.32_64_16
+dEQP-VK.pipeline.multisample.variable_rate.32_64_32
+dEQP-VK.pipeline.multisample.variable_rate.32_64_64
+dEQP-VK.pipeline.multisample.variable_rate.64_1_1
+dEQP-VK.pipeline.multisample.variable_rate.64_1_2
+dEQP-VK.pipeline.multisample.variable_rate.64_1_4
+dEQP-VK.pipeline.multisample.variable_rate.64_1_8
+dEQP-VK.pipeline.multisample.variable_rate.64_1_16
+dEQP-VK.pipeline.multisample.variable_rate.64_1_32
+dEQP-VK.pipeline.multisample.variable_rate.64_1_64
+dEQP-VK.pipeline.multisample.variable_rate.64_2_1
+dEQP-VK.pipeline.multisample.variable_rate.64_2_2
+dEQP-VK.pipeline.multisample.variable_rate.64_2_4
+dEQP-VK.pipeline.multisample.variable_rate.64_2_8
+dEQP-VK.pipeline.multisample.variable_rate.64_2_16
+dEQP-VK.pipeline.multisample.variable_rate.64_2_32
+dEQP-VK.pipeline.multisample.variable_rate.64_2_64
+dEQP-VK.pipeline.multisample.variable_rate.64_4_1
+dEQP-VK.pipeline.multisample.variable_rate.64_4_2
+dEQP-VK.pipeline.multisample.variable_rate.64_4_4
+dEQP-VK.pipeline.multisample.variable_rate.64_4_8
+dEQP-VK.pipeline.multisample.variable_rate.64_4_16
+dEQP-VK.pipeline.multisample.variable_rate.64_4_32
+dEQP-VK.pipeline.multisample.variable_rate.64_4_64
+dEQP-VK.pipeline.multisample.variable_rate.64_8_1
+dEQP-VK.pipeline.multisample.variable_rate.64_8_2
+dEQP-VK.pipeline.multisample.variable_rate.64_8_4
+dEQP-VK.pipeline.multisample.variable_rate.64_8_8
+dEQP-VK.pipeline.multisample.variable_rate.64_8_16
+dEQP-VK.pipeline.multisample.variable_rate.64_8_32
+dEQP-VK.pipeline.multisample.variable_rate.64_8_64
+dEQP-VK.pipeline.multisample.variable_rate.64_16_1
+dEQP-VK.pipeline.multisample.variable_rate.64_16_2
+dEQP-VK.pipeline.multisample.variable_rate.64_16_4
+dEQP-VK.pipeline.multisample.variable_rate.64_16_8
+dEQP-VK.pipeline.multisample.variable_rate.64_16_16
+dEQP-VK.pipeline.multisample.variable_rate.64_16_32
+dEQP-VK.pipeline.multisample.variable_rate.64_16_64
+dEQP-VK.pipeline.multisample.variable_rate.64_32_1
+dEQP-VK.pipeline.multisample.variable_rate.64_32_2
+dEQP-VK.pipeline.multisample.variable_rate.64_32_4
+dEQP-VK.pipeline.multisample.variable_rate.64_32_8
+dEQP-VK.pipeline.multisample.variable_rate.64_32_16
+dEQP-VK.pipeline.multisample.variable_rate.64_32_32
+dEQP-VK.pipeline.multisample.variable_rate.64_32_64
+dEQP-VK.pipeline.multisample.variable_rate.64_64_1
+dEQP-VK.pipeline.multisample.variable_rate.64_64_2
+dEQP-VK.pipeline.multisample.variable_rate.64_64_4
+dEQP-VK.pipeline.multisample.variable_rate.64_64_8
+dEQP-VK.pipeline.multisample.variable_rate.64_64_16
+dEQP-VK.pipeline.multisample.variable_rate.64_64_32
+dEQP-VK.pipeline.multisample.variable_rate.1_2_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.1_2_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_2_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.1_2_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_2_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.1_2_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_2_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.1_2_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_2_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.1_2_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_2_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.1_2_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_2_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.1_2_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_4_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.1_4_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_4_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.1_4_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_4_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.1_4_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_4_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.1_4_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_4_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.1_4_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_4_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.1_4_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_4_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.1_4_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_8_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.1_8_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_8_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.1_8_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_8_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.1_8_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_8_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.1_8_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_8_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.1_8_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_8_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.1_8_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_8_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.1_8_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_16_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.1_16_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_16_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.1_16_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_16_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.1_16_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_16_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.1_16_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_16_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.1_16_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_16_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.1_16_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_16_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.1_16_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_32_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.1_32_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_32_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.1_32_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_32_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.1_32_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_32_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.1_32_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_32_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.1_32_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_32_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.1_32_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_32_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.1_32_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_64_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.1_64_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_64_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.1_64_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_64_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.1_64_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_64_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.1_64_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_64_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.1_64_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_64_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.1_64_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.1_64_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.1_64_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_1_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.2_1_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_1_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.2_1_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_1_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.2_1_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_1_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.2_1_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_1_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.2_1_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_1_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.2_1_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_1_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.2_1_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_4_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.2_4_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_4_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.2_4_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_4_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.2_4_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_4_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.2_4_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_4_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.2_4_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_4_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.2_4_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_4_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.2_4_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_8_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.2_8_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_8_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.2_8_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_8_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.2_8_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_8_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.2_8_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_8_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.2_8_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_8_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.2_8_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_8_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.2_8_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_16_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.2_16_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_16_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.2_16_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_16_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.2_16_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_16_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.2_16_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_16_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.2_16_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_16_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.2_16_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_16_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.2_16_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_32_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.2_32_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_32_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.2_32_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_32_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.2_32_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_32_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.2_32_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_32_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.2_32_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_32_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.2_32_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_32_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.2_32_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_64_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.2_64_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_64_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.2_64_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_64_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.2_64_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_64_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.2_64_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_64_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.2_64_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_64_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.2_64_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.2_64_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.2_64_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_1_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.4_1_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_1_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.4_1_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_1_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.4_1_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_1_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.4_1_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_1_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.4_1_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_1_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.4_1_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_1_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.4_1_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_2_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.4_2_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_2_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.4_2_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_2_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.4_2_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_2_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.4_2_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_2_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.4_2_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_2_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.4_2_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_2_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.4_2_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_8_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.4_8_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_8_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.4_8_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_8_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.4_8_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_8_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.4_8_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_8_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.4_8_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_8_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.4_8_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_8_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.4_8_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_16_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.4_16_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_16_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.4_16_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_16_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.4_16_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_16_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.4_16_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_16_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.4_16_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_16_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.4_16_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_16_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.4_16_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_32_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.4_32_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_32_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.4_32_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_32_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.4_32_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_32_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.4_32_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_32_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.4_32_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_32_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.4_32_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_32_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.4_32_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_64_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.4_64_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_64_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.4_64_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_64_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.4_64_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_64_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.4_64_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_64_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.4_64_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_64_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.4_64_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.4_64_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.4_64_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_1_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.8_1_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_1_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.8_1_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_1_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.8_1_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_1_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.8_1_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_1_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.8_1_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_1_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.8_1_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_1_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.8_1_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_2_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.8_2_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_2_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.8_2_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_2_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.8_2_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_2_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.8_2_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_2_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.8_2_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_2_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.8_2_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_2_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.8_2_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_4_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.8_4_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_4_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.8_4_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_4_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.8_4_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_4_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.8_4_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_4_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.8_4_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_4_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.8_4_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_4_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.8_4_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_16_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.8_16_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_16_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.8_16_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_16_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.8_16_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_16_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.8_16_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_16_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.8_16_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_16_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.8_16_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_16_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.8_16_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_32_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.8_32_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_32_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.8_32_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_32_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.8_32_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_32_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.8_32_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_32_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.8_32_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_32_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.8_32_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_32_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.8_32_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_64_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.8_64_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_64_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.8_64_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_64_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.8_64_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_64_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.8_64_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_64_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.8_64_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_64_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.8_64_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.8_64_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.8_64_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_1_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.16_1_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_1_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.16_1_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_1_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.16_1_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_1_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.16_1_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_1_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.16_1_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_1_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.16_1_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_1_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.16_1_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_2_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.16_2_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_2_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.16_2_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_2_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.16_2_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_2_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.16_2_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_2_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.16_2_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_2_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.16_2_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_2_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.16_2_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_4_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.16_4_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_4_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.16_4_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_4_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.16_4_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_4_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.16_4_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_4_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.16_4_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_4_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.16_4_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_4_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.16_4_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_8_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.16_8_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_8_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.16_8_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_8_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.16_8_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_8_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.16_8_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_8_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.16_8_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_8_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.16_8_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_8_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.16_8_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_32_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.16_32_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_32_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.16_32_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_32_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.16_32_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_32_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.16_32_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_32_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.16_32_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_32_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.16_32_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_32_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.16_32_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_64_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.16_64_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_64_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.16_64_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_64_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.16_64_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_64_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.16_64_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_64_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.16_64_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_64_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.16_64_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.16_64_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.16_64_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_1_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.32_1_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_1_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.32_1_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_1_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.32_1_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_1_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.32_1_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_1_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.32_1_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_1_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.32_1_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_1_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.32_1_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_2_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.32_2_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_2_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.32_2_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_2_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.32_2_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_2_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.32_2_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_2_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.32_2_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_2_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.32_2_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_2_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.32_2_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_4_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.32_4_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_4_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.32_4_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_4_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.32_4_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_4_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.32_4_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_4_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.32_4_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_4_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.32_4_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_4_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.32_4_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_8_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.32_8_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_8_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.32_8_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_8_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.32_8_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_8_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.32_8_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_8_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.32_8_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_8_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.32_8_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_8_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.32_8_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_16_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.32_16_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_16_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.32_16_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_16_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.32_16_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_16_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.32_16_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_16_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.32_16_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_16_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.32_16_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_16_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.32_16_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_64_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.32_64_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_64_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.32_64_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_64_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.32_64_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_64_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.32_64_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_64_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.32_64_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_64_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.32_64_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.32_64_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.32_64_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_1_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.64_1_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_1_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.64_1_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_1_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.64_1_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_1_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.64_1_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_1_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.64_1_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_1_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.64_1_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_1_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.64_1_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_2_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.64_2_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_2_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.64_2_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_2_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.64_2_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_2_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.64_2_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_2_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.64_2_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_2_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.64_2_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_2_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.64_2_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_4_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.64_4_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_4_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.64_4_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_4_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.64_4_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_4_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.64_4_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_4_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.64_4_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_4_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.64_4_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_4_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.64_4_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_8_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.64_8_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_8_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.64_8_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_8_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.64_8_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_8_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.64_8_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_8_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.64_8_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_8_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.64_8_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_8_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.64_8_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_16_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.64_16_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_16_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.64_16_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_16_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.64_16_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_16_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.64_16_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_16_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.64_16_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_16_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.64_16_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_16_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.64_16_fb_64_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_32_fb_1
+dEQP-VK.pipeline.multisample.variable_rate.64_32_fb_1_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_32_fb_2
+dEQP-VK.pipeline.multisample.variable_rate.64_32_fb_2_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_32_fb_4
+dEQP-VK.pipeline.multisample.variable_rate.64_32_fb_4_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_32_fb_8
+dEQP-VK.pipeline.multisample.variable_rate.64_32_fb_8_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_32_fb_16
+dEQP-VK.pipeline.multisample.variable_rate.64_32_fb_16_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_32_fb_32
+dEQP-VK.pipeline.multisample.variable_rate.64_32_fb_32_unused
+dEQP-VK.pipeline.multisample.variable_rate.64_32_fb_64
+dEQP-VK.pipeline.multisample.variable_rate.64_32_fb_64_unused
+dEQP-VK.pipeline.multisample.mixed_count.1_2
+dEQP-VK.pipeline.multisample.mixed_count.1_2_unused
+dEQP-VK.pipeline.multisample.mixed_count.1_4
+dEQP-VK.pipeline.multisample.mixed_count.1_4_unused
+dEQP-VK.pipeline.multisample.mixed_count.1_8
+dEQP-VK.pipeline.multisample.mixed_count.1_8_unused
+dEQP-VK.pipeline.multisample.mixed_count.1_16
+dEQP-VK.pipeline.multisample.mixed_count.1_16_unused
+dEQP-VK.pipeline.multisample.mixed_count.1_32
+dEQP-VK.pipeline.multisample.mixed_count.1_32_unused
+dEQP-VK.pipeline.multisample.mixed_count.1_64
+dEQP-VK.pipeline.multisample.mixed_count.1_64_unused
+dEQP-VK.pipeline.multisample.mixed_count.2_1
+dEQP-VK.pipeline.multisample.mixed_count.2_1_unused
+dEQP-VK.pipeline.multisample.mixed_count.2_4
+dEQP-VK.pipeline.multisample.mixed_count.2_4_unused
+dEQP-VK.pipeline.multisample.mixed_count.2_8
+dEQP-VK.pipeline.multisample.mixed_count.2_8_unused
+dEQP-VK.pipeline.multisample.mixed_count.2_16
+dEQP-VK.pipeline.multisample.mixed_count.2_16_unused
+dEQP-VK.pipeline.multisample.mixed_count.2_32
+dEQP-VK.pipeline.multisample.mixed_count.2_32_unused
+dEQP-VK.pipeline.multisample.mixed_count.2_64
+dEQP-VK.pipeline.multisample.mixed_count.2_64_unused
+dEQP-VK.pipeline.multisample.mixed_count.4_1
+dEQP-VK.pipeline.multisample.mixed_count.4_1_unused
+dEQP-VK.pipeline.multisample.mixed_count.4_2
+dEQP-VK.pipeline.multisample.mixed_count.4_2_unused
+dEQP-VK.pipeline.multisample.mixed_count.4_8
+dEQP-VK.pipeline.multisample.mixed_count.4_8_unused
+dEQP-VK.pipeline.multisample.mixed_count.4_16
+dEQP-VK.pipeline.multisample.mixed_count.4_16_unused
+dEQP-VK.pipeline.multisample.mixed_count.4_32
+dEQP-VK.pipeline.multisample.mixed_count.4_32_unused
+dEQP-VK.pipeline.multisample.mixed_count.4_64
+dEQP-VK.pipeline.multisample.mixed_count.4_64_unused
+dEQP-VK.pipeline.multisample.mixed_count.8_1
+dEQP-VK.pipeline.multisample.mixed_count.8_1_unused
+dEQP-VK.pipeline.multisample.mixed_count.8_2
+dEQP-VK.pipeline.multisample.mixed_count.8_2_unused
+dEQP-VK.pipeline.multisample.mixed_count.8_4
+dEQP-VK.pipeline.multisample.mixed_count.8_4_unused
+dEQP-VK.pipeline.multisample.mixed_count.8_16
+dEQP-VK.pipeline.multisample.mixed_count.8_16_unused
+dEQP-VK.pipeline.multisample.mixed_count.8_32
+dEQP-VK.pipeline.multisample.mixed_count.8_32_unused
+dEQP-VK.pipeline.multisample.mixed_count.8_64
+dEQP-VK.pipeline.multisample.mixed_count.8_64_unused
+dEQP-VK.pipeline.multisample.mixed_count.16_1
+dEQP-VK.pipeline.multisample.mixed_count.16_1_unused
+dEQP-VK.pipeline.multisample.mixed_count.16_2
+dEQP-VK.pipeline.multisample.mixed_count.16_2_unused
+dEQP-VK.pipeline.multisample.mixed_count.16_4
+dEQP-VK.pipeline.multisample.mixed_count.16_4_unused
+dEQP-VK.pipeline.multisample.mixed_count.16_8
+dEQP-VK.pipeline.multisample.mixed_count.16_8_unused
+dEQP-VK.pipeline.multisample.mixed_count.16_32
+dEQP-VK.pipeline.multisample.mixed_count.16_32_unused
+dEQP-VK.pipeline.multisample.mixed_count.16_64
+dEQP-VK.pipeline.multisample.mixed_count.16_64_unused
+dEQP-VK.pipeline.multisample.mixed_count.32_1
+dEQP-VK.pipeline.multisample.mixed_count.32_1_unused
+dEQP-VK.pipeline.multisample.mixed_count.32_2
+dEQP-VK.pipeline.multisample.mixed_count.32_2_unused
+dEQP-VK.pipeline.multisample.mixed_count.32_4
+dEQP-VK.pipeline.multisample.mixed_count.32_4_unused
+dEQP-VK.pipeline.multisample.mixed_count.32_8
+dEQP-VK.pipeline.multisample.mixed_count.32_8_unused
+dEQP-VK.pipeline.multisample.mixed_count.32_16
+dEQP-VK.pipeline.multisample.mixed_count.32_16_unused
+dEQP-VK.pipeline.multisample.mixed_count.32_64
+dEQP-VK.pipeline.multisample.mixed_count.32_64_unused
+dEQP-VK.pipeline.multisample.mixed_count.64_1
+dEQP-VK.pipeline.multisample.mixed_count.64_1_unused
+dEQP-VK.pipeline.multisample.mixed_count.64_2
+dEQP-VK.pipeline.multisample.mixed_count.64_2_unused
+dEQP-VK.pipeline.multisample.mixed_count.64_4
+dEQP-VK.pipeline.multisample.mixed_count.64_4_unused
+dEQP-VK.pipeline.multisample.mixed_count.64_8
+dEQP-VK.pipeline.multisample.mixed_count.64_8_unused
+dEQP-VK.pipeline.multisample.mixed_count.64_16
+dEQP-VK.pipeline.multisample.mixed_count.64_16_unused
+dEQP-VK.pipeline.multisample.mixed_count.64_32
+dEQP-VK.pipeline.multisample.mixed_count.64_32_unused
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.component_0.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.component_0.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.component_0.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.component_0.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.component_0.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.component_0.128_128_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.component_0.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.component_0.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.component_0.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.component_0.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.component_0.137_191_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.component_0.137_191_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.component_1.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.component_1.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.component_1.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.component_1.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.component_1.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.component_1.128_128_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.component_1.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.component_1.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.component_1.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.component_1.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.component_1.137_191_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.component_1.137_191_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.pushc_component_0.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.pushc_component_0.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.pushc_component_0.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.pushc_component_0.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.pushc_component_0.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.pushc_component_0.128_128_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.pushc_component_0.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.pushc_component_0.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.pushc_component_0.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.pushc_component_0.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.pushc_component_0.137_191_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.pushc_component_0.137_191_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.pushc_component_1.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.pushc_component_1.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.pushc_component_1.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.pushc_component_1.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.pushc_component_1.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.pushc_component_1.128_128_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.pushc_component_1.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.pushc_component_1.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.pushc_component_1.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.pushc_component_1.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.pushc_component_1.137_191_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.sample_interpolation_consistency.pushc_component_1.137_191_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.component_0.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.component_0.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.component_0.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.component_0.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.component_0.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.component_0.128_128_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.component_0.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.component_0.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.component_0.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.component_0.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.component_0.137_191_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.component_0.137_191_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.component_1.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.component_1.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.component_1.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.component_1.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.component_1.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.component_1.128_128_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.component_1.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.component_1.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.component_1.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.component_1.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.component_1.137_191_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.component_1.137_191_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.pushc_component_0.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.pushc_component_0.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.pushc_component_0.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.pushc_component_0.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.pushc_component_0.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.pushc_component_0.128_128_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.pushc_component_0.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.pushc_component_0.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.pushc_component_0.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.pushc_component_0.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.pushc_component_0.137_191_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.pushc_component_0.137_191_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.pushc_component_1.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.pushc_component_1.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.pushc_component_1.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.pushc_component_1.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.pushc_component_1.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.pushc_component_1.128_128_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.pushc_component_1.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.pushc_component_1.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.pushc_component_1.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.pushc_component_1.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.pushc_component_1.137_191_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.centroid_interpolation_consistency.pushc_component_1.137_191_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.component_0.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.component_0.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.component_0.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.component_0.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.component_0.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.component_0.128_128_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.component_0.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.component_0.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.component_0.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.component_0.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.component_0.137_191_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.component_0.137_191_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.component_1.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.component_1.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.component_1.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.component_1.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.component_1.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.component_1.128_128_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.component_1.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.component_1.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.component_1.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.component_1.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.component_1.137_191_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.component_1.137_191_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.pushc_component_0.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.pushc_component_0.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.pushc_component_0.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.pushc_component_0.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.pushc_component_0.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.pushc_component_0.128_128_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.pushc_component_0.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.pushc_component_0.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.pushc_component_0.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.pushc_component_0.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.pushc_component_0.137_191_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.pushc_component_0.137_191_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.pushc_component_1.128_128_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.pushc_component_1.128_128_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.pushc_component_1.128_128_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.pushc_component_1.128_128_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.pushc_component_1.128_128_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.pushc_component_1.128_128_1.samples_64
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.pushc_component_1.137_191_1.samples_2
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.pushc_component_1.137_191_1.samples_4
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.pushc_component_1.137_191_1.samples_8
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.pushc_component_1.137_191_1.samples_16
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.pushc_component_1.137_191_1.samples_32
+dEQP-VK.pipeline.multisample_interpolation.offset_interpolation_at_sample_position.pushc_component_1.137_191_1.samples_64
 dEQP-VK.pipeline.multisample_shader_builtin.image_write_sample.2_samples
 dEQP-VK.pipeline.multisample_shader_builtin.image_write_sample.4_samples
 dEQP-VK.pipeline.multisample_shader_builtin.image_write_sample.8_samples
 dEQP-VK.pipeline.multisample_shader_builtin.image_write_sample.16_samples
+dEQP-VK.pipeline.multisample_shader_builtin.write_sample_mask.1_samples
+dEQP-VK.pipeline.multisample_shader_builtin.write_sample_mask.2_samples
+dEQP-VK.pipeline.multisample_shader_builtin.write_sample_mask.4_samples
+dEQP-VK.pipeline.multisample_shader_builtin.write_sample_mask.8_samples
+dEQP-VK.pipeline.multisample_shader_builtin.write_sample_mask.16_samples
 dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.point_list
 dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.line_list
 dEQP-VK.pipeline.input_assembly.primitive_topology.index_type_uint16.line_strip
@@ -73600,6 +105713,8 @@
 dEQP-VK.pipeline.render_to_image.dedicated_allocation.cube_array.mipmap.r5g6b5_unorm_pack16_d32_sfloat_s8_uint
 dEQP-VK.pipeline.render_to_image.dedicated_allocation.cube_array.mipmap.a2b10g10r10_uint_pack32_d32_sfloat_s8_uint
 dEQP-VK.pipeline.render_to_image.dedicated_allocation.cube_array.mipmap.a2b10g10r10_unorm_pack32_d32_sfloat_s8_uint
+dEQP-VK.pipeline.shader_stencil_export.d24_unorm_s8_uint.op_replace
+dEQP-VK.pipeline.shader_stencil_export.d32_sfloat_s8_uint.op_replace
 dEQP-VK.pipeline.creation_feedback.graphics_tests.vertex_stage_fragment_stage
 dEQP-VK.pipeline.creation_feedback.graphics_tests.vertex_stage_geometry_stage_fragment_stage
 dEQP-VK.pipeline.creation_feedback.graphics_tests.vertex_stage_tessellation_control_stage_tessellation_evaluation_stage_fragment_stage
@@ -77989,6 +110104,5490 @@
 dEQP-VK.pipeline.blend_operation_advanced.independent.color_attachments_16_blend_overlap_uncorrelated_ext_3
 dEQP-VK.pipeline.blend_operation_advanced.coherent.barrier_color_attachments_1_blend_overlap_uncorrelated_ext_0
 dEQP-VK.pipeline.blend_operation_advanced.coherent.color_attachments_1_blend_overlap_uncorrelated_ext_1
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.cull_none
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.cull_back
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.cull_front
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.cull_front_and_back
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.front_face_cw
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.front_face_ccw
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.front_face_cw_reversed
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.front_face_ccw_reversed
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.topology_triangle
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.topology_line
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.topology_triangle_geom
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.topology_line_geom
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.2_viewports
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.1_full_viewport
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.2_viewports_switch
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.2_viewports_switch_clean
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.2_scissors
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.1_full_scissor
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.2_scissors_switch
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.2_scissors_switch_clean
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stride
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.depth_test_enable
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.depth_test_disable
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.depth_write_enable
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.depth_write_disable
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.depth_compare_never
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.depth_compare_less
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.depth_compare_greater
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.depth_compare_equal
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.depth_compare_less_equal_less
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.depth_compare_less_equal_equal
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.depth_compare_less_equal_less_then_equal
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.depth_compare_greater_equal_greater
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.depth_compare_greater_equal_equal
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.depth_compare_greater_equal_greater_then_equal
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.depth_compare_not_equal
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.depth_compare_always_equal
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.depth_compare_always_less
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.depth_compare_always_greater
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.depth_bounds_test_enable
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.depth_bounds_test_disable
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_test_enable
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_test_disable
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xf_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_lt_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_eq_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_le_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_gt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_ge_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_front_xt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xf_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_lt_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_eq_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_le_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_gt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_ge_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_back_xt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xf_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_lt_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_eq_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_le_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_gt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_ge_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_single_xt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xf_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_lt_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_eq_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_le_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_gt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_ge_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.cmd_buffer_start.stencil_state_face_both_dual_xt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.cull_none
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.cull_back
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.cull_front
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.cull_front_and_back
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.front_face_cw
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.front_face_ccw
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.front_face_cw_reversed
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.front_face_ccw_reversed
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.topology_triangle
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.topology_line
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.topology_triangle_geom
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.topology_line_geom
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.2_viewports
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.1_full_viewport
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.2_viewports_switch
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.2_viewports_switch_clean
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.2_scissors
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.1_full_scissor
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.2_scissors_switch
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.2_scissors_switch_clean
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stride
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.depth_test_enable
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.depth_test_disable
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.depth_write_enable
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.depth_write_disable
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.depth_compare_never
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.depth_compare_less
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.depth_compare_greater
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.depth_compare_equal
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.depth_compare_less_equal_less
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.depth_compare_less_equal_equal
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.depth_compare_less_equal_less_then_equal
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.depth_compare_greater_equal_greater
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.depth_compare_greater_equal_equal
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.depth_compare_greater_equal_greater_then_equal
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.depth_compare_not_equal
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.depth_compare_always_equal
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.depth_compare_always_less
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.depth_compare_always_greater
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.depth_bounds_test_enable
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.depth_bounds_test_disable
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_test_enable
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_test_disable
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xf_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_lt_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_eq_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_le_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_gt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_ge_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_front_xt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xf_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_lt_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_eq_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_le_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_gt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_ge_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_back_xt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xf_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_lt_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_eq_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_le_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_gt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_ge_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_single_xt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xf_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_lt_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_eq_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_le_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_gt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_ge_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.before_draw.stencil_state_face_both_dual_xt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.cull_none
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.cull_back
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.cull_front
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.cull_front_and_back
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.front_face_cw
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.front_face_ccw
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.front_face_cw_reversed
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.front_face_ccw_reversed
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.topology_triangle
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.topology_line
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.topology_triangle_geom
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.topology_line_geom
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.2_viewports
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.1_full_viewport
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.2_viewports_switch
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.2_viewports_switch_clean
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.2_scissors
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.1_full_scissor
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.2_scissors_switch
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.2_scissors_switch_clean
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stride
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.depth_test_enable
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.depth_test_disable
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.depth_write_enable
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.depth_write_disable
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.depth_compare_never
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.depth_compare_less
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.depth_compare_greater
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.depth_compare_equal
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.depth_compare_less_equal_less
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.depth_compare_less_equal_equal
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.depth_compare_less_equal_less_then_equal
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.depth_compare_greater_equal_greater
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.depth_compare_greater_equal_equal
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.depth_compare_greater_equal_greater_then_equal
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.depth_compare_not_equal
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.depth_compare_always_equal
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.depth_compare_always_less
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.depth_compare_always_greater
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.depth_bounds_test_enable
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.depth_bounds_test_disable
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_test_enable
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_test_disable
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xf_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_lt_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_eq_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_le_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_gt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_ge_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_front_xt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xf_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_lt_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_eq_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_le_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_gt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_ge_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_back_xt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xf_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_lt_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_eq_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_le_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_gt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_ge_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_single_xt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xf_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_lt_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_eq_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_le_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_gt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_ge_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.between_pipelines.stencil_state_face_both_dual_xt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.cull_none
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.cull_back
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.cull_front
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.cull_front_and_back
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.front_face_cw
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.front_face_ccw
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.front_face_cw_reversed
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.front_face_ccw_reversed
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.topology_triangle
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.topology_line
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.topology_triangle_geom
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.topology_line_geom
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.2_viewports
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.1_full_viewport
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.2_viewports_switch
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.2_viewports_switch_clean
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.2_scissors
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.1_full_scissor
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.2_scissors_switch
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.2_scissors_switch_clean
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stride
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_test_enable
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_test_disable
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_write_enable
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_write_disable
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_compare_never
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_compare_less
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_compare_greater
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_compare_equal
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_compare_less_equal_less
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_compare_less_equal_equal
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_compare_less_equal_less_then_equal
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_compare_greater_equal_greater
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_compare_greater_equal_equal
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_compare_greater_equal_greater_then_equal
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_compare_not_equal
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_compare_always_equal
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_compare_always_less
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_compare_always_greater
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_bounds_test_enable
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.depth_bounds_test_disable
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_test_enable
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_test_disable
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xf_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_lt_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_eq_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_le_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_gt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_ge_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_front_xt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xf_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_lt_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_eq_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_le_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_gt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_ge_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_back_xt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xf_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_lt_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_eq_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_le_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_gt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_ge_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_single_xt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xf_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_lt_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_eq_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_keep_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_zero_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_replace_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_inc_clamp_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_dec_clamp_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_dec_clamp_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_invert_clear_102_ref_103_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_inc_wrap_clear_254_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_dec_wrap_clear_1_ref_2_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_le_dec_wrap_clear_0_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_keep_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_zero_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_replace_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_inc_clamp_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_inc_clamp_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_dec_clamp_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_dec_clamp_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_invert_clear_102_ref_102_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_inc_wrap_clear_254_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_inc_wrap_clear_255_ref_255_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_dec_wrap_clear_1_ref_1_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_dec_wrap_clear_0_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_gt_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_keep_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_zero_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_replace_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_inc_clamp_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_inc_clamp_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_dec_clamp_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_invert_clear_102_ref_101_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_inc_wrap_clear_254_ref_253_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_inc_wrap_clear_255_ref_254_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_dec_wrap_clear_1_ref_0_fail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_ge_dec_wrap_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_keep_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_keep_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_keep_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_keep_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_keep_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_keep_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_zero_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_zero_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_zero_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_zero_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_zero_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_zero_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_replace_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_replace_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_replace_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_replace_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_replace_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_replace_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_inc_clamp_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_inc_clamp_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_inc_clamp_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_inc_clamp_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_inc_clamp_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_inc_clamp_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_inc_clamp_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_inc_clamp_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_inc_clamp_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_inc_clamp_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_dec_clamp_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_dec_clamp_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_dec_clamp_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_dec_clamp_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_dec_clamp_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_dec_clamp_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_dec_clamp_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_dec_clamp_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_dec_clamp_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_dec_clamp_clear_0_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_invert_clear_102_ref_101_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_invert_clear_102_ref_101_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_invert_clear_102_ref_102_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_invert_clear_102_ref_102_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_invert_clear_102_ref_103_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_invert_clear_102_ref_103_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_inc_wrap_clear_254_ref_253_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_inc_wrap_clear_254_ref_253_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_inc_wrap_clear_254_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_inc_wrap_clear_254_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_inc_wrap_clear_254_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_inc_wrap_clear_254_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_inc_wrap_clear_255_ref_254_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_inc_wrap_clear_255_ref_254_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_inc_wrap_clear_255_ref_255_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_inc_wrap_clear_255_ref_255_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_dec_wrap_clear_1_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_dec_wrap_clear_1_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_dec_wrap_clear_1_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_dec_wrap_clear_1_ref_1_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_dec_wrap_clear_1_ref_2_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_dec_wrap_clear_1_ref_2_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_dec_wrap_clear_0_ref_0_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_dec_wrap_clear_0_ref_0_depthfail
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_dec_wrap_clear_0_ref_1_pass
+dEQP-VK.pipeline.extended_dynamic_state.after_pipelines.stencil_state_face_both_dual_xt_dec_wrap_clear_0_ref_1_depthfail
 dEQP-VK.binding_model.descriptor_update.samplerless.sampled_img_sampler_zero
 dEQP-VK.binding_model.descriptor_update.samplerless.sampled_img_sampler_one
 dEQP-VK.binding_model.descriptor_update.samplerless.sampled_img_sampler_destroyed
@@ -86445,6 +124044,8 @@
 dEQP-VK.spirv_assembly.instruction.compute.uconvert.int64_to_uint16
 dEQP-VK.spirv_assembly.instruction.compute.fconvert.float32_to_float16_no_storage
 dEQP-VK.spirv_assembly.instruction.compute.fconvert.float16_to_float32_no_storage
+dEQP-VK.spirv_assembly.instruction.compute.fconvert.float16_to_float64_no_storage
+dEQP-VK.spirv_assembly.instruction.compute.fconvert.float64_to_float16_no_storage
 dEQP-VK.spirv_assembly.instruction.compute.float_controls_extensionless.spirv1p4.fp16_denorm_preserve
 dEQP-VK.spirv_assembly.instruction.compute.float_controls_extensionless.spirv1p4.fp16_denorm_flush_to_zero
 dEQP-VK.spirv_assembly.instruction.compute.float_controls_extensionless.spirv1p4.fp16_signed_zero_inf_nan_preserve
@@ -86475,6 +124076,638 @@
 dEQP-VK.spirv_assembly.instruction.compute.float_controls_extensionless.vulkan1_2.fp64_signed_zero_inf_nan_preserve
 dEQP-VK.spirv_assembly.instruction.compute.float_controls_extensionless.vulkan1_2.fp64_rounding_mode_rte
 dEQP-VK.spirv_assembly.instruction.compute.float_controls_extensionless.vulkan1_2.fp64_rounding_mode_rtz
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_add_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_add_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_add_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_sub_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_sub_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_sub_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mul_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mul_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_div_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_div_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_rem_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mod_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_vmuls_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_vmuls_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_vmulm_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_vmulm_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mmuls_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mmuls_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mmulv_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mmulv_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mmulm_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mmulm_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_out_prod_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_out_prod_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_dot_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_dot_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_atan2_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_atan2_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_pow_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_pow_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mix_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mix_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mix_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_min_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_min_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_min_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_max_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_max_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_max_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_clamp_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_clamp_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_clamp_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_step_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_step_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_step_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_sstep_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_sstep_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_sstep_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_fma_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_fma_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_face_fwd_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_face_fwd_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_face_fwd_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_face_fwd_nan_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_nmin_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_nmin_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_nmin_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_nmin_nan_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_nmax_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_nmax_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_nmax_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_nmax_nan_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_nclamp_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_nclamp_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_nclamp_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_nclamp_nan_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_distance_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_distance_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_distance_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_cross_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_cross_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.negate_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.round_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.round_ev_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.trunc_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.abs_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.floor_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.ceil_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.fract_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.radians_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.degrees_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.sin_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.cos_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.tan_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.asin_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.acos_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.atan_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.sinh_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.cosh_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.tanh_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.asinh_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.atanh_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.exp_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.log_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.exp2_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.log2_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.sqrt_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.inv_sqrt_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.mat_det_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.mat_inv_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.modf_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.modf_st_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.normalize_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.reflect_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.refract_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.length_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_phi_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_phi_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_phi_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_phi_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_select_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_select_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_select_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_select_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_add_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_add_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_add_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_add_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_sub_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_sub_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_sub_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_sub_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mul_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mul_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mul_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mul_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_vmuls_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_vmuls_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_vmuls_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_vmuls_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_vmulm_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_vmulm_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_vmulm_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_vmulm_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mmuls_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mmuls_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mmuls_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mmuls_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mmulv_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mmulv_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mmulv_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mmulv_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mmulm_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mmulm_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mmulm_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mmulm_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_out_prod_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_out_prod_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_out_prod_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_out_prod_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_dot_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_dot_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_dot_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_dot_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mix_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mix_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mix_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_mix_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_fma_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_fma_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_fma_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_fma_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_min_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_min_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_min_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_max_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_max_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_max_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_clamp_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_clamp_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_clamp_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_nmin_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_nmin_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_nmin_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_nmin_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_nmax_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_nmax_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_nmax_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_nmax_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_nclamp_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_nclamp_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_nclamp_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_nclamp_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.ret_val_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.extract_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.insert_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.shuffle_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.composite_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.comp_ins_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.copy_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.transpose_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.negate_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.abs_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.sign_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.radians_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.degrees_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.zero_phi_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.signed_zero_phi_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.inf_phi_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.signed_inf_phi_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.nan_phi_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.zero_select_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.signed_zero_select_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.inf_select_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.signed_inf_select_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.nan_select_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.zero_add_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.signed_zero_add_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.inf_add_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.signed_inf_add_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.nan_add_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.zero_sub_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.signed_zero_sub_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.inf_sub_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.signed_inf_sub_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.nan_sub_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.zero_mul_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.signed_zero_mul_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.inf_mul_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.signed_inf_mul_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.nan_mul_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.ret_val_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.ret_val_signed_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.ret_val_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.ret_val_signed_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.ret_val_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.extract_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.extract_signed_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.extract_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.extract_signed_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.extract_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.insert_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.insert_signed_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.insert_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.insert_signed_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.insert_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.shuffle_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.shuffle_signed_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.shuffle_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.shuffle_signed_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.shuffle_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.composite_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.composite_signed_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.composite_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.composite_signed_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.composite_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.comp_ins_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.comp_ins_signed_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.comp_ins_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.comp_ins_signed_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.comp_ins_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.copy_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.copy_signed_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.copy_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.copy_signed_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.copy_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.transpose_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.transpose_signed_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.transpose_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.transpose_signed_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.transpose_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.negate_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.negate_signed_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.negate_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.negate_signed_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.negate_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_ord_eq_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_uord_eq_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_ord_neq_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_uord_neq_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_ord_ls_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_uord_ls_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_ord_gt_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_uord_gt_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_ord_le_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_uord_le_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_ord_ge_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.denorm_uord_ge_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.rounding_rte_add_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.rounding_rtz_add_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.rounding_rte_sub_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.rounding_rtz_sub_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.rounding_rte_mul_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.rounding_rtz_mul_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.rounding_rte_dot_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.rounding_rtz_dot_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.rounding_rte_vmuls_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.rounding_rtz_vmuls_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.rounding_rte_mmuls_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.rounding_rtz_mmuls_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.rounding_rte_out_prod_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.rounding_rtz_out_prod_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.rounding_rte_vmulm_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.rounding_rtz_vmulm_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.rounding_rte_mmulv_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.rounding_rtz_mmulv_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.rounding_rte_mmulm_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.rounding_rtz_mmulm_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.rounding_rte_conv_from_fp32_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.rounding_rtz_conv_from_fp32_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.rounding_rte_conv_from_fp64_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.rounding_rtz_conv_from_fp64_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.rounding_rte_sconst_conv_from_fp32_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.rounding_rtz_sconst_conv_from_fp32_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.rounding_rte_sconst_conv_from_fp64_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.rounding_rtz_sconst_conv_from_fp64_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.conv_from_fp32_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.conv_from_fp32_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.conv_from_fp32_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.conv_from_fp32_signed_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.conv_from_fp32_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.conv_from_fp32_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.conv_from_fp64_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.conv_from_fp64_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.conv_from_fp64_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.conv_from_fp64_signed_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.conv_from_fp64_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.input_args.conv_from_fp64_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_add_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_add_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_add_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_sub_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_sub_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_sub_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mul_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mul_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_div_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_div_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_rem_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mod_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_vmuls_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_vmuls_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_vmulm_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_vmulm_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mmuls_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mmuls_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mmulv_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mmulv_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mmulm_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mmulm_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_out_prod_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_out_prod_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_dot_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_dot_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_atan2_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_atan2_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_pow_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_pow_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mix_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mix_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mix_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_min_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_min_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_min_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_max_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_max_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_max_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_clamp_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_clamp_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_clamp_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_step_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_step_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_step_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_sstep_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_sstep_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_sstep_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_fma_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_fma_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_face_fwd_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_face_fwd_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_face_fwd_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_face_fwd_nan_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_nmin_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_nmin_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_nmin_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_nmin_nan_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_nmax_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_nmax_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_nmax_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_nmax_nan_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_nclamp_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_nclamp_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_nclamp_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_nclamp_nan_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_distance_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_distance_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_distance_inf_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_cross_var_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_cross_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.negate_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.round_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.round_ev_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.trunc_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.abs_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.floor_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.ceil_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.fract_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.radians_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.degrees_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.sin_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.cos_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.tan_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.asin_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.acos_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.atan_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.sinh_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.cosh_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.tanh_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.asinh_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.atanh_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.exp_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.log_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.exp2_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.log2_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.sqrt_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.inv_sqrt_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.mat_det_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.mat_inv_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.modf_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.modf_st_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.normalize_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.reflect_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.refract_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.length_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_phi_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_phi_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_phi_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_phi_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_select_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_select_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_select_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_select_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_add_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_add_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_add_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_add_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_sub_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_sub_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_sub_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_sub_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mul_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mul_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mul_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mul_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_vmuls_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_vmuls_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_vmuls_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_vmuls_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_vmulm_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_vmulm_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_vmulm_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_vmulm_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mmuls_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mmuls_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mmuls_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mmuls_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mmulv_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mmulv_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mmulv_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mmulv_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mmulm_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mmulm_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mmulm_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mmulm_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_out_prod_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_out_prod_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_out_prod_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_out_prod_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_dot_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_dot_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_dot_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_dot_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mix_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mix_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mix_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_mix_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_fma_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_fma_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_fma_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_fma_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_min_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_min_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_min_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_max_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_max_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_max_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_clamp_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_clamp_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_clamp_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_nmin_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_nmin_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_nmin_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_nmin_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_nmax_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_nmax_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_nmax_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_nmax_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_nclamp_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_nclamp_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_nclamp_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_nclamp_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.ret_val_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.extract_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.insert_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.shuffle_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.composite_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.comp_ins_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.copy_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.transpose_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.negate_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.abs_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.sign_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.radians_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.degrees_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.zero_phi_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.signed_zero_phi_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.inf_phi_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.signed_inf_phi_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.nan_phi_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.zero_select_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.signed_zero_select_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.inf_select_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.signed_inf_select_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.nan_select_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.zero_add_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.signed_zero_add_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.inf_add_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.signed_inf_add_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.nan_add_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.zero_sub_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.signed_zero_sub_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.inf_sub_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.signed_inf_sub_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.nan_sub_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.zero_mul_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.signed_zero_mul_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.inf_mul_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.signed_inf_mul_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.nan_mul_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.ret_val_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.ret_val_signed_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.ret_val_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.ret_val_signed_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.ret_val_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.extract_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.extract_signed_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.extract_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.extract_signed_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.extract_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.insert_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.insert_signed_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.insert_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.insert_signed_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.insert_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.shuffle_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.shuffle_signed_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.shuffle_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.shuffle_signed_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.shuffle_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.composite_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.composite_signed_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.composite_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.composite_signed_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.composite_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.comp_ins_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.comp_ins_signed_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.comp_ins_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.comp_ins_signed_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.comp_ins_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.copy_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.copy_signed_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.copy_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.copy_signed_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.copy_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.transpose_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.transpose_signed_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.transpose_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.transpose_signed_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.transpose_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.negate_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.negate_signed_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.negate_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.negate_signed_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.negate_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_ord_eq_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_uord_eq_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_ord_neq_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_uord_neq_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_ord_ls_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_uord_ls_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_ord_gt_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_uord_gt_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_ord_le_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_uord_le_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_ord_ge_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.denorm_uord_ge_var_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.conv_from_fp32_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.conv_from_fp32_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.conv_from_fp32_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.conv_from_fp32_signed_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.conv_from_fp32_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.conv_from_fp32_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.conv_from_fp64_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.conv_from_fp64_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.conv_from_fp64_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.conv_from_fp64_signed_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.conv_from_fp64_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp16.generated_args.conv_from_fp64_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp32.input_args.conv_from_fp16_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp32.input_args.conv_from_fp16_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp32.input_args.conv_from_fp16_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp32.input_args.conv_from_fp16_signed_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp32.input_args.conv_from_fp16_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp32.input_args.conv_from_fp16_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp32.generated_args.conv_from_fp16_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp32.generated_args.conv_from_fp16_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp32.generated_args.conv_from_fp16_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp32.generated_args.conv_from_fp16_signed_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp32.generated_args.conv_from_fp16_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp32.generated_args.conv_from_fp16_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp64.input_args.conv_from_fp16_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp64.input_args.conv_from_fp16_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp64.input_args.conv_from_fp16_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp64.input_args.conv_from_fp16_signed_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp64.input_args.conv_from_fp16_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp64.input_args.conv_from_fp16_nan_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp64.generated_args.conv_from_fp16_denorm_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp64.generated_args.conv_from_fp16_denorm_flush_to_zero_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp64.generated_args.conv_from_fp16_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp64.generated_args.conv_from_fp16_signed_zero_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp64.generated_args.conv_from_fp16_inf_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.fp64.generated_args.conv_from_fp16_nan_preserve_nostorage
 dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.rounding_ind_all_fp16_rte_fp32_rtz
 dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.rounding_ind_all_fp16_rtz_fp32_rte
 dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.rounding_ind_32_fp16_rte_fp32_rtz
@@ -86511,7 +124744,48 @@
 dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.denorm_ind_all_fp16_preserve_fp32_flush_fp64_flush
 dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.denorm_ind_all_fp16_flush_fp32_flush_fp64_preserve
 dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.denorm_ind_all_fp16_flush_fp32_preserve_fp64_preserve
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.rounding_ind_all_fp16_rte_fp32_rtz_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.rounding_ind_all_fp16_rtz_fp32_rte_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.rounding_ind_32_fp16_rte_fp32_rtz_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.rounding_ind_32_fp16_rtz_fp32_rte_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.rounding_ind_all_fp16_rte_fp64_rtz_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.rounding_ind_all_fp16_rtz_fp64_rte_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.rounding_ind_all_fp16_rtz_fp32_rte_fp64_rtz_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.rounding_ind_32_fp16_rtz_fp32_rte_fp64_rtz_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.rounding_ind_all_fp16_rte_fp32_rtz_fp64_rte_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.rounding_ind_32_fp16_rte_fp32_rtz_fp64_rte_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.rounding_ind_all_fp16_rtz_fp32_rtz_fp64_rte_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.rounding_ind_all_fp16_rtz_fp32_rte_fp64_rte_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.rounding_ind_all_fp16_rte_fp32_rte_fp64_rtz_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.rounding_ind_all_fp16_rte_fp32_rtz_fp64_rtz_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.denorm_ind_all_fp16_flush_fp32_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.denorm_ind_all_fp16_preserve_fp32_flush_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.denorm_ind_32_fp16_flush_fp32_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.denorm_ind_32_fp16_preserve_fp32_flush_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.denorm_ind_all_fp16_flush_fp64_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.denorm_ind_all_fp16_preserve_fp64_flush_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.denorm_ind_all_fp16_preserve_fp32_flush_fp64_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.denorm_ind_32_fp16_preserve_fp32_flush_fp64_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.denorm_ind_all_fp16_flush_fp32_preserve_fp64_flush_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.denorm_ind_32_fp16_flush_fp32_preserve_fp64_flush_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.denorm_ind_all_fp16_preserve_fp32_preserve_fp64_flush_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.denorm_ind_all_fp16_preserve_fp32_flush_fp64_flush_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.denorm_ind_all_fp16_flush_fp32_flush_fp64_preserve_nostorage
+dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.denorm_ind_all_fp16_flush_fp32_preserve_fp64_preserve_nostorage
 dEQP-VK.spirv_assembly.instruction.compute.float_controls.independence_settings.independence_settings
+dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_vec2
+dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_vec3
+dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_vec4
+dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat2x2
+dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat3x2
+dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat4x2
+dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat2x3
+dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat3x3
+dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat4x3
+dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat2x4
+dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat3x4
+dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_mat4x4
+dEQP-VK.spirv_assembly.instruction.compute.composite_insert.undef_nested_struct
 dEQP-VK.spirv_assembly.instruction.compute.variable_init.private.float_from_workgroup
 dEQP-VK.spirv_assembly.instruction.compute.variable_init.private.vec4_from_workgroup
 dEQP-VK.spirv_assembly.instruction.compute.variable_init.private.matrix_from_workgroup
@@ -86765,6 +125039,7 @@
 dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.uint64.comp_opulessthanequal_vector
 dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.uint64.comp_opugreaterthan_vector
 dEQP-VK.spirv_assembly.instruction.compute.64bit_compare.uint64.comp_opugreaterthanequal_vector
+dEQP-VK.spirv_assembly.instruction.compute.oparraylength.array-stride-larger-than-element-size
 dEQP-VK.spirv_assembly.instruction.graphics.spirv_version.1_4_vertex
 dEQP-VK.spirv_assembly.instruction.graphics.spirv_version.1_4_tesselation_evaluation
 dEQP-VK.spirv_assembly.instruction.graphics.spirv_version.1_4_tesselation_control
@@ -86885,6 +125160,1335 @@
 dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_s_i8_tesse
 dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_s_i8_geom
 dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.shiftleftlogical_s_i8_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_add_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_add_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_add_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_sub_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_sub_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_sub_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mul_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mul_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_div_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_div_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_rem_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mod_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_vmuls_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_vmuls_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_vmulm_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_vmulm_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmuls_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmuls_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmulv_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmulv_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmulm_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmulm_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_out_prod_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_out_prod_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_dot_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_dot_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_atan2_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_atan2_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_pow_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_pow_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mix_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mix_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mix_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_min_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_min_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_min_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_max_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_max_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_max_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_clamp_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_clamp_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_clamp_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_step_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_step_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_step_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_sstep_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_sstep_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_sstep_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_fma_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_fma_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_face_fwd_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_face_fwd_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_face_fwd_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_face_fwd_nan_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmin_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmin_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmin_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmin_nan_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmax_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmax_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmax_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmax_nan_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nclamp_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nclamp_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nclamp_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nclamp_nan_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_distance_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_distance_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_distance_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_cross_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_cross_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.negate_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.round_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.round_ev_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.trunc_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.abs_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.floor_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.ceil_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.fract_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.radians_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.degrees_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.sin_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.cos_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.tan_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.asin_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.acos_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.atan_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.sinh_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.cosh_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.tanh_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.asinh_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.atanh_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.exp_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.log_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.exp2_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.log2_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.sqrt_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.inv_sqrt_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.mat_det_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.mat_inv_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.modf_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.modf_st_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.normalize_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.reflect_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.refract_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.length_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_phi_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_phi_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_phi_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_phi_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_select_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_select_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_select_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_select_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_add_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_add_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_add_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_add_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_sub_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_sub_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_sub_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_sub_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mul_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mul_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mul_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mul_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_vmuls_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_vmuls_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_vmuls_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_vmuls_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_vmulm_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_vmulm_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_vmulm_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_vmulm_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmuls_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmuls_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmuls_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmuls_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmulv_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmulv_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmulv_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmulv_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmulm_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmulm_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmulm_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmulm_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_out_prod_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_out_prod_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_out_prod_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_out_prod_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_dot_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_dot_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_dot_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_dot_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mix_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mix_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mix_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mix_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_fma_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_fma_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_fma_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_fma_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_min_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_min_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_min_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_max_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_max_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_max_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_clamp_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_clamp_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_clamp_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmin_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmin_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmin_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmin_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmax_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmax_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmax_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmax_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nclamp_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nclamp_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nclamp_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nclamp_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.ret_val_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.extract_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.insert_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.shuffle_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.composite_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.comp_ins_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.copy_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.transpose_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.negate_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.abs_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.sign_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.radians_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.degrees_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.zero_phi_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.signed_zero_phi_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.inf_phi_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.signed_inf_phi_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.nan_phi_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.zero_select_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.signed_zero_select_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.inf_select_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.signed_inf_select_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.nan_select_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.zero_add_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.signed_zero_add_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.inf_add_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.signed_inf_add_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.nan_add_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.zero_sub_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.signed_zero_sub_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.inf_sub_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.signed_inf_sub_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.nan_sub_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.zero_mul_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.signed_zero_mul_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.inf_mul_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.signed_inf_mul_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.nan_mul_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.ret_val_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.ret_val_signed_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.ret_val_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.ret_val_signed_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.ret_val_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.extract_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.extract_signed_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.extract_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.extract_signed_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.extract_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.insert_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.insert_signed_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.insert_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.insert_signed_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.insert_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.shuffle_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.shuffle_signed_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.shuffle_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.shuffle_signed_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.shuffle_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.composite_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.composite_signed_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.composite_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.composite_signed_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.composite_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.comp_ins_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.comp_ins_signed_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.comp_ins_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.comp_ins_signed_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.comp_ins_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.copy_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.copy_signed_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.copy_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.copy_signed_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.copy_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.transpose_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.transpose_signed_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.transpose_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.transpose_signed_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.transpose_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.negate_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.negate_signed_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.negate_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.negate_signed_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.negate_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_ord_eq_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_uord_eq_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_ord_neq_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_uord_neq_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_ord_ls_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_uord_ls_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_ord_gt_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_uord_gt_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_ord_le_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_uord_le_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_ord_ge_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_uord_ge_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rte_add_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rtz_add_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rte_sub_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rtz_sub_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rte_mul_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rtz_mul_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rte_dot_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rtz_dot_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rte_vmuls_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rtz_vmuls_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rte_mmuls_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rtz_mmuls_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rte_out_prod_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rtz_out_prod_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rte_vmulm_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rtz_vmulm_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rte_mmulv_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rtz_mmulv_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rte_mmulm_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rtz_mmulm_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rte_conv_from_fp32_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rtz_conv_from_fp32_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rte_conv_from_fp64_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rtz_conv_from_fp64_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rte_sconst_conv_from_fp32_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rtz_sconst_conv_from_fp32_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rte_sconst_conv_from_fp64_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rtz_sconst_conv_from_fp64_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.conv_from_fp32_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.conv_from_fp32_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.conv_from_fp32_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.conv_from_fp32_signed_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.conv_from_fp32_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.conv_from_fp32_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.conv_from_fp64_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.conv_from_fp64_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.conv_from_fp64_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.conv_from_fp64_signed_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.conv_from_fp64_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.conv_from_fp64_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_add_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_add_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_add_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_sub_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_sub_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_sub_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mul_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mul_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_div_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_div_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_rem_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mod_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_vmuls_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_vmuls_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_vmulm_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_vmulm_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmuls_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmuls_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmulv_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmulv_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmulm_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmulm_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_out_prod_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_out_prod_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_dot_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_dot_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_atan2_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_atan2_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_pow_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_pow_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mix_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mix_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mix_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_min_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_min_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_min_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_max_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_max_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_max_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_clamp_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_clamp_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_clamp_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_step_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_step_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_step_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_sstep_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_sstep_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_sstep_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_fma_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_fma_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_face_fwd_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_face_fwd_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_face_fwd_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_face_fwd_nan_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmin_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmin_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmin_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmin_nan_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmax_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmax_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmax_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmax_nan_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nclamp_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nclamp_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nclamp_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nclamp_nan_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_distance_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_distance_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_distance_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_cross_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_cross_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.negate_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.round_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.round_ev_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.trunc_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.abs_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.floor_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.ceil_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.fract_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.radians_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.degrees_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.sin_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.cos_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.tan_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.asin_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.acos_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.atan_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.sinh_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.cosh_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.tanh_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.asinh_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.atanh_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.exp_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.log_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.exp2_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.log2_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.sqrt_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.inv_sqrt_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.mat_det_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.mat_inv_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.modf_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.modf_st_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.normalize_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.reflect_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.refract_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.length_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_phi_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_phi_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_phi_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_phi_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_select_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_select_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_select_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_select_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_add_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_add_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_add_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_add_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_sub_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_sub_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_sub_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_sub_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mul_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mul_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mul_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mul_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_vmuls_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_vmuls_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_vmuls_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_vmuls_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_vmulm_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_vmulm_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_vmulm_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_vmulm_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmuls_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmuls_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmuls_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmuls_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmulv_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmulv_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmulv_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmulv_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmulm_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmulm_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmulm_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mmulm_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_out_prod_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_out_prod_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_out_prod_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_out_prod_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_dot_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_dot_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_dot_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_dot_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mix_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mix_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mix_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_mix_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_fma_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_fma_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_fma_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_fma_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_min_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_min_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_min_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_max_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_max_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_max_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_clamp_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_clamp_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_clamp_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmin_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmin_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmin_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmin_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmax_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmax_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmax_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nmax_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nclamp_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nclamp_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nclamp_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_nclamp_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.ret_val_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.extract_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.insert_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.shuffle_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.composite_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.comp_ins_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.copy_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.transpose_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.negate_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.abs_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.sign_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.radians_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.degrees_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.zero_phi_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.signed_zero_phi_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.inf_phi_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.signed_inf_phi_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.nan_phi_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.zero_select_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.signed_zero_select_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.inf_select_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.signed_inf_select_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.nan_select_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.zero_add_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.signed_zero_add_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.inf_add_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.signed_inf_add_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.nan_add_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.zero_sub_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.signed_zero_sub_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.inf_sub_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.signed_inf_sub_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.nan_sub_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.zero_mul_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.signed_zero_mul_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.inf_mul_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.signed_inf_mul_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.nan_mul_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.ret_val_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.ret_val_signed_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.ret_val_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.ret_val_signed_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.ret_val_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.extract_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.extract_signed_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.extract_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.extract_signed_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.extract_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.insert_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.insert_signed_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.insert_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.insert_signed_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.insert_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.shuffle_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.shuffle_signed_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.shuffle_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.shuffle_signed_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.shuffle_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.composite_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.composite_signed_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.composite_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.composite_signed_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.composite_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.comp_ins_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.comp_ins_signed_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.comp_ins_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.comp_ins_signed_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.comp_ins_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.copy_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.copy_signed_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.copy_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.copy_signed_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.copy_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.transpose_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.transpose_signed_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.transpose_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.transpose_signed_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.transpose_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.negate_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.negate_signed_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.negate_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.negate_signed_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.negate_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_ord_eq_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_uord_eq_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_ord_neq_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_uord_neq_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_ord_ls_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_uord_ls_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_ord_gt_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_uord_gt_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_ord_le_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_uord_le_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_ord_ge_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.denorm_uord_ge_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rte_add_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rtz_add_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rte_sub_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rtz_sub_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rte_mul_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rtz_mul_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rte_dot_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rtz_dot_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rte_vmuls_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rtz_vmuls_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rte_mmuls_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rtz_mmuls_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rte_out_prod_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rtz_out_prod_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rte_vmulm_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rtz_vmulm_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rte_mmulv_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rtz_mmulv_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rte_mmulm_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rtz_mmulm_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rte_conv_from_fp32_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rtz_conv_from_fp32_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rte_conv_from_fp64_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rtz_conv_from_fp64_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rte_sconst_conv_from_fp32_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rtz_sconst_conv_from_fp32_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rte_sconst_conv_from_fp64_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.rounding_rtz_sconst_conv_from_fp64_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.conv_from_fp32_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.conv_from_fp32_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.conv_from_fp32_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.conv_from_fp32_signed_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.conv_from_fp32_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.conv_from_fp32_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.conv_from_fp64_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.conv_from_fp64_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.conv_from_fp64_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.conv_from_fp64_signed_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.conv_from_fp64_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.input_args.conv_from_fp64_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_add_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_add_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_add_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_sub_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_sub_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_sub_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mul_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mul_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_div_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_div_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_rem_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mod_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_vmuls_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_vmuls_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_vmulm_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_vmulm_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmuls_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmuls_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmulv_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmulv_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmulm_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmulm_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_out_prod_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_out_prod_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_dot_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_dot_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_atan2_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_atan2_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_pow_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_pow_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mix_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mix_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mix_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_min_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_min_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_min_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_max_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_max_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_max_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_clamp_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_clamp_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_clamp_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_step_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_step_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_step_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_sstep_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_sstep_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_sstep_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_fma_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_fma_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_face_fwd_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_face_fwd_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_face_fwd_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_face_fwd_nan_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmin_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmin_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmin_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmin_nan_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmax_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmax_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmax_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmax_nan_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nclamp_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nclamp_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nclamp_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nclamp_nan_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_distance_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_distance_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_distance_inf_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_cross_var_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_cross_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.negate_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.round_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.round_ev_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.trunc_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.abs_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.floor_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.ceil_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.fract_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.radians_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.degrees_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.sin_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.cos_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.tan_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.asin_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.acos_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.atan_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.sinh_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.cosh_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.tanh_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.asinh_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.atanh_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.exp_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.log_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.exp2_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.log2_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.sqrt_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.inv_sqrt_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.mat_det_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.mat_inv_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.modf_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.modf_st_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.normalize_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.reflect_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.refract_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.length_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_phi_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_phi_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_phi_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_phi_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_select_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_select_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_select_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_select_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_add_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_add_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_add_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_add_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_sub_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_sub_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_sub_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_sub_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mul_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mul_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mul_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mul_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_vmuls_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_vmuls_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_vmuls_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_vmuls_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_vmulm_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_vmulm_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_vmulm_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_vmulm_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmuls_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmuls_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmuls_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmuls_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmulv_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmulv_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmulv_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmulv_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmulm_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmulm_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmulm_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmulm_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_out_prod_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_out_prod_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_out_prod_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_out_prod_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_dot_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_dot_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_dot_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_dot_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mix_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mix_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mix_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mix_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_fma_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_fma_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_fma_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_fma_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_min_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_min_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_min_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_max_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_max_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_max_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_clamp_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_clamp_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_clamp_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmin_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmin_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmin_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmin_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmax_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmax_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmax_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmax_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nclamp_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nclamp_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nclamp_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nclamp_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.ret_val_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.extract_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.insert_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.shuffle_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.composite_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.comp_ins_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.copy_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.transpose_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.negate_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.abs_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.sign_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.radians_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.degrees_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.zero_phi_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.signed_zero_phi_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.inf_phi_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.signed_inf_phi_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.nan_phi_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.zero_select_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.signed_zero_select_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.inf_select_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.signed_inf_select_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.nan_select_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.zero_add_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.signed_zero_add_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.inf_add_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.signed_inf_add_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.nan_add_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.zero_sub_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.signed_zero_sub_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.inf_sub_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.signed_inf_sub_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.nan_sub_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.zero_mul_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.signed_zero_mul_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.inf_mul_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.signed_inf_mul_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.nan_mul_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.ret_val_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.ret_val_signed_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.ret_val_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.ret_val_signed_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.ret_val_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.extract_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.extract_signed_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.extract_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.extract_signed_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.extract_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.insert_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.insert_signed_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.insert_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.insert_signed_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.insert_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.shuffle_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.shuffle_signed_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.shuffle_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.shuffle_signed_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.shuffle_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.composite_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.composite_signed_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.composite_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.composite_signed_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.composite_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.comp_ins_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.comp_ins_signed_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.comp_ins_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.comp_ins_signed_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.comp_ins_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.copy_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.copy_signed_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.copy_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.copy_signed_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.copy_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.transpose_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.transpose_signed_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.transpose_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.transpose_signed_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.transpose_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.negate_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.negate_signed_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.negate_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.negate_signed_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.negate_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_ord_eq_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_uord_eq_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_ord_neq_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_uord_neq_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_ord_ls_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_uord_ls_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_ord_gt_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_uord_gt_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_ord_le_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_uord_le_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_ord_ge_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_uord_ge_var_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.conv_from_fp32_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.conv_from_fp32_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.conv_from_fp32_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.conv_from_fp32_signed_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.conv_from_fp32_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.conv_from_fp32_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.conv_from_fp64_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.conv_from_fp64_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.conv_from_fp64_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.conv_from_fp64_signed_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.conv_from_fp64_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.conv_from_fp64_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_add_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_add_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_add_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_sub_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_sub_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_sub_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mul_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mul_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_div_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_div_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_rem_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mod_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_vmuls_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_vmuls_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_vmulm_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_vmulm_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmuls_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmuls_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmulv_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmulv_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmulm_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmulm_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_out_prod_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_out_prod_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_dot_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_dot_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_atan2_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_atan2_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_pow_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_pow_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mix_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mix_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mix_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_min_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_min_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_min_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_max_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_max_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_max_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_clamp_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_clamp_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_clamp_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_step_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_step_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_step_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_sstep_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_sstep_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_sstep_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_fma_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_fma_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_face_fwd_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_face_fwd_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_face_fwd_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_face_fwd_nan_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmin_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmin_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmin_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmin_nan_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmax_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmax_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmax_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmax_nan_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nclamp_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nclamp_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nclamp_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nclamp_nan_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_distance_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_distance_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_distance_inf_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_cross_var_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_cross_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.negate_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.round_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.round_ev_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.trunc_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.abs_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.floor_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.ceil_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.fract_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.radians_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.degrees_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.sin_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.cos_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.tan_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.asin_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.acos_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.atan_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.sinh_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.cosh_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.tanh_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.asinh_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.atanh_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.exp_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.log_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.exp2_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.log2_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.sqrt_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.inv_sqrt_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.mat_det_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.mat_inv_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.modf_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.modf_st_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.normalize_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.reflect_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.refract_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.length_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_phi_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_phi_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_phi_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_phi_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_select_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_select_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_select_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_select_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_add_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_add_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_add_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_add_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_sub_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_sub_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_sub_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_sub_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mul_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mul_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mul_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mul_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_vmuls_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_vmuls_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_vmuls_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_vmuls_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_vmulm_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_vmulm_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_vmulm_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_vmulm_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmuls_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmuls_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmuls_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmuls_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmulv_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmulv_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmulv_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmulv_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmulm_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmulm_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmulm_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mmulm_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_out_prod_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_out_prod_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_out_prod_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_out_prod_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_dot_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_dot_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_dot_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_dot_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mix_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mix_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mix_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_mix_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_fma_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_fma_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_fma_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_fma_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_min_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_min_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_min_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_max_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_max_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_max_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_clamp_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_clamp_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_clamp_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmin_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmin_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmin_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmin_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmax_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmax_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmax_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nmax_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nclamp_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nclamp_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nclamp_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_nclamp_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.ret_val_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.extract_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.insert_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.shuffle_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.composite_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.comp_ins_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.copy_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.transpose_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.negate_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.abs_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.sign_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.radians_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.degrees_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.zero_phi_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.signed_zero_phi_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.inf_phi_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.signed_inf_phi_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.nan_phi_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.zero_select_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.signed_zero_select_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.inf_select_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.signed_inf_select_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.nan_select_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.zero_add_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.signed_zero_add_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.inf_add_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.signed_inf_add_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.nan_add_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.zero_sub_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.signed_zero_sub_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.inf_sub_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.signed_inf_sub_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.nan_sub_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.zero_mul_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.signed_zero_mul_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.inf_mul_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.signed_inf_mul_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.nan_mul_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.ret_val_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.ret_val_signed_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.ret_val_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.ret_val_signed_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.ret_val_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.extract_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.extract_signed_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.extract_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.extract_signed_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.extract_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.insert_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.insert_signed_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.insert_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.insert_signed_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.insert_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.shuffle_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.shuffle_signed_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.shuffle_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.shuffle_signed_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.shuffle_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.composite_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.composite_signed_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.composite_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.composite_signed_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.composite_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.comp_ins_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.comp_ins_signed_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.comp_ins_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.comp_ins_signed_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.comp_ins_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.copy_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.copy_signed_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.copy_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.copy_signed_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.copy_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.transpose_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.transpose_signed_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.transpose_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.transpose_signed_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.transpose_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.negate_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.negate_signed_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.negate_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.negate_signed_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.negate_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_ord_eq_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_uord_eq_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_ord_neq_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_uord_neq_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_ord_ls_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_uord_ls_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_ord_gt_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_uord_gt_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_ord_le_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_uord_le_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_ord_ge_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.denorm_uord_ge_var_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.conv_from_fp32_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.conv_from_fp32_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.conv_from_fp32_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.conv_from_fp32_signed_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.conv_from_fp32_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.conv_from_fp32_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.conv_from_fp64_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.conv_from_fp64_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.conv_from_fp64_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.conv_from_fp64_signed_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.conv_from_fp64_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp16.generated_args.conv_from_fp64_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp32.input_args.conv_from_fp16_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp32.input_args.conv_from_fp16_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp32.input_args.conv_from_fp16_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp32.input_args.conv_from_fp16_signed_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp32.input_args.conv_from_fp16_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp32.input_args.conv_from_fp16_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp32.input_args.conv_from_fp16_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp32.input_args.conv_from_fp16_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp32.input_args.conv_from_fp16_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp32.input_args.conv_from_fp16_signed_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp32.input_args.conv_from_fp16_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp32.input_args.conv_from_fp16_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp32.generated_args.conv_from_fp16_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp32.generated_args.conv_from_fp16_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp32.generated_args.conv_from_fp16_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp32.generated_args.conv_from_fp16_signed_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp32.generated_args.conv_from_fp16_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp32.generated_args.conv_from_fp16_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp32.generated_args.conv_from_fp16_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp32.generated_args.conv_from_fp16_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp32.generated_args.conv_from_fp16_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp32.generated_args.conv_from_fp16_signed_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp32.generated_args.conv_from_fp16_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp32.generated_args.conv_from_fp16_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp64.input_args.conv_from_fp16_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp64.input_args.conv_from_fp16_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp64.input_args.conv_from_fp16_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp64.input_args.conv_from_fp16_signed_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp64.input_args.conv_from_fp16_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp64.input_args.conv_from_fp16_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp64.input_args.conv_from_fp16_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp64.input_args.conv_from_fp16_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp64.input_args.conv_from_fp16_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp64.input_args.conv_from_fp16_signed_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp64.input_args.conv_from_fp16_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp64.input_args.conv_from_fp16_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp64.generated_args.conv_from_fp16_denorm_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp64.generated_args.conv_from_fp16_denorm_flush_to_zero_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp64.generated_args.conv_from_fp16_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp64.generated_args.conv_from_fp16_signed_zero_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp64.generated_args.conv_from_fp16_inf_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp64.generated_args.conv_from_fp16_nan_preserve_nostorage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp64.generated_args.conv_from_fp16_denorm_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp64.generated_args.conv_from_fp16_denorm_flush_to_zero_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp64.generated_args.conv_from_fp16_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp64.generated_args.conv_from_fp16_signed_zero_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp64.generated_args.conv_from_fp16_inf_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.float_controls.fp64.generated_args.conv_from_fp16_nan_preserve_nostorage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec2_vert
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec2_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec2_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec2_geom
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec2_frag
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec3_vert
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec3_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec3_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec3_geom
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec3_frag
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec4_vert
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec4_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec4_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec4_geom
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_vec4_frag
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x2_vert
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x2_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x2_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x2_geom
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x2_frag
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x2_vert
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x2_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x2_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x2_geom
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x2_frag
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x2_vert
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x2_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x2_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x2_geom
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x2_frag
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x3_vert
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x3_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x3_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x3_geom
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x3_frag
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x3_vert
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x3_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x3_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x3_geom
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x3_frag
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x3_vert
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x3_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x3_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x3_geom
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x3_frag
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x4_vert
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x4_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x4_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x4_geom
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat2x4_frag
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x4_vert
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x4_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x4_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x4_geom
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat3x4_frag
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x4_vert
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x4_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x4_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x4_geom
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_mat4x4_frag
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_nested_struct_vert
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_nested_struct_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_nested_struct_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_nested_struct_geom
+dEQP-VK.spirv_assembly.instruction.graphics.composite_insert.undef_nested_struct_frag
 dEQP-VK.spirv_assembly.instruction.graphics.indexing.input.struct.opaccesschain_u32_vert
 dEQP-VK.spirv_assembly.instruction.graphics.indexing.input.struct.opaccesschain_u32_tessc
 dEQP-VK.spirv_assembly.instruction.graphics.indexing.input.struct.opaccesschain_u32_tesse
@@ -86985,6 +126589,16 @@
 dEQP-VK.spirv_assembly.instruction.graphics.fconvert.float16_to_float32_no_storage_tesse
 dEQP-VK.spirv_assembly.instruction.graphics.fconvert.float16_to_float32_no_storage_geom
 dEQP-VK.spirv_assembly.instruction.graphics.fconvert.float16_to_float32_no_storage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.fconvert.float16_to_float64_no_storage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.fconvert.float16_to_float64_no_storage_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.fconvert.float16_to_float64_no_storage_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.fconvert.float16_to_float64_no_storage_geom
+dEQP-VK.spirv_assembly.instruction.graphics.fconvert.float16_to_float64_no_storage_frag
+dEQP-VK.spirv_assembly.instruction.graphics.fconvert.float64_to_float16_no_storage_vert
+dEQP-VK.spirv_assembly.instruction.graphics.fconvert.float64_to_float16_no_storage_tessc
+dEQP-VK.spirv_assembly.instruction.graphics.fconvert.float64_to_float16_no_storage_tesse
+dEQP-VK.spirv_assembly.instruction.graphics.fconvert.float64_to_float16_no_storage_geom
+dEQP-VK.spirv_assembly.instruction.graphics.fconvert.float64_to_float16_no_storage_frag
 dEQP-VK.spirv_assembly.instruction.graphics.spirv_ids_abuse.sparse_ids_vert
 dEQP-VK.spirv_assembly.instruction.graphics.spirv_ids_abuse.sparse_ids_tessc
 dEQP-VK.spirv_assembly.instruction.graphics.spirv_ids_abuse.sparse_ids_tesse
@@ -87240,6 +126854,138 @@
 dEQP-VK.spirv_assembly.instruction.spirv1p4.wrap.no_signed_wrap
 dEQP-VK.spirv_assembly.instruction.spirv1p4.wrap.no_unsigned_wrap
 dEQP-VK.spirv_assembly.instruction.function_params.sampler_param
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.i8.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.i8.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.i8.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.i8.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.i16.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.i16.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.i16.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.i16.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.i32.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.i32.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.i32.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.i32.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.i64.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.i64.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.i64.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.i64.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.u8.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.u8.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.u8.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.u8.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.u16.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.u16.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.u16.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.u16.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.u32.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.u32.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.u32.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.u32.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.u64.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.u64.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.u64.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.u64.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.f16.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.f16.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.f16.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.f16.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.f32.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.f32.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.f32.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.f32.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.f64.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.f64.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.f64.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.min3.f64.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.i8.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.i8.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.i8.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.i8.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.i16.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.i16.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.i16.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.i16.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.i32.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.i32.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.i32.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.i32.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.i64.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.i64.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.i64.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.i64.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.u8.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.u8.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.u8.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.u8.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.u16.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.u16.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.u16.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.u16.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.u32.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.u32.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.u32.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.u32.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.u64.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.u64.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.u64.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.u64.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.f16.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.f16.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.f16.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.f16.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.f32.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.f32.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.f32.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.f32.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.f64.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.f64.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.f64.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.max3.f64.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.i8.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.i8.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.i8.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.i8.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.i16.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.i16.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.i16.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.i16.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.i32.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.i32.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.i32.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.i32.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.i64.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.i64.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.i64.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.i64.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.u8.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.u8.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.u8.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.u8.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.u16.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.u16.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.u16.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.u16.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.u32.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.u32.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.u32.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.u32.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.u64.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.u64.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.u64.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.u64.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.f16.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.f16.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.f16.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.f16.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.f32.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.f32.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.f32.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.f32.vec4
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.f64.scalar
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.f64.vec2
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.f64.vec3
+dEQP-VK.spirv_assembly.instruction.amd_trinary_minmax.mid3.f64.vec4
 dEQP-VK.spirv_assembly.type.scalar.i8.negate_comp
 dEQP-VK.spirv_assembly.type.scalar.i8.add_comp
 dEQP-VK.spirv_assembly.type.scalar.i8.sub_comp
@@ -89726,6 +129472,8 @@
 dEQP-VK.glsl.shader_clock.compute.clock2x32ARB
 dEQP-VK.glsl.shader_clock.compute.clockRealtimeEXT
 dEQP-VK.glsl.shader_clock.compute.clockRealtime2x32EXT
+dEQP-VK.glsl.combined_operations.notxor
+dEQP-VK.glsl.combined_operations.negintdivand
 dEQP-VK.renderpass.suballocation.multisample.separate_stencil_usage.d16_unorm_s8_uint.samples_2.test_depth
 dEQP-VK.renderpass.suballocation.multisample.separate_stencil_usage.d16_unorm_s8_uint.samples_2.test_stencil
 dEQP-VK.renderpass.suballocation.multisample.separate_stencil_usage.d16_unorm_s8_uint.samples_4.test_depth
@@ -102767,390 +142515,876 @@
 dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_64.d32_sfloat_s8_uint_separate_layouts.stencil_max
 dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_64.d32_sfloat_s8_uint_separate_layouts.depth_max_unused_resolve
 dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_16_64_6.samples_64.d32_sfloat_s8_uint_separate_layouts.stencil_max_unused_resolve
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.single_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
-dEQP-VK.renderpass2.fragment_density_map.multi_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.1_view.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.1_sample.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.2_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.4_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.deferred_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.static_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.deferred_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.2_views.render_copy.non_divisible_density_size.8_samples.dynamic_nonsubsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.4_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.1_sample.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.2_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.4_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_1_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_1
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.static_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.deferred_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.6_views.render_copy.non_divisible_density_size.8_samples.dynamic_subsampled_2_2
+dEQP-VK.renderpass2.fragment_density_map.properties.2_subsampled_samplers
+dEQP-VK.renderpass2.fragment_density_map.properties.4_subsampled_samplers
+dEQP-VK.renderpass2.fragment_density_map.properties.6_subsampled_samplers
+dEQP-VK.renderpass2.fragment_density_map.properties.8_subsampled_samplers
+dEQP-VK.renderpass2.fragment_density_map.properties.subsampled_loads
+dEQP-VK.renderpass2.fragment_density_map.properties.subsampled_coarse_reconstruction
 dEQP-VK.ubo.random.descriptor_indexing.0
 dEQP-VK.ubo.random.descriptor_indexing.1
 dEQP-VK.ubo.random.descriptor_indexing.2
@@ -103301,6 +143535,1160 @@
 dEQP-VK.ubo.random.8bit.descriptor_indexing.47
 dEQP-VK.ubo.random.8bit.descriptor_indexing.48
 dEQP-VK.ubo.random.8bit.descriptor_indexing.49
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_lowp_mat2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_lowp_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_mediump_mat2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_mediump_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_highp_mat2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_highp_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_lowp_mat2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_lowp_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_mediump_mat2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_mediump_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_highp_mat2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_highp_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_lowp_mat3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_lowp_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_mediump_mat3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_mediump_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_highp_mat3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_highp_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_lowp_mat3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_lowp_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_mediump_mat3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_mediump_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_highp_mat3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_highp_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_lowp_mat4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_lowp_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_mediump_mat4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_mediump_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_highp_mat4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_highp_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_lowp_mat4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_lowp_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_mediump_mat4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_mediump_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_highp_mat4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_highp_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_lowp_mat2x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_lowp_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_mediump_mat2x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_mediump_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_highp_mat2x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_highp_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_lowp_mat2x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_lowp_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_mediump_mat2x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_mediump_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_highp_mat2x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_highp_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_lowp_mat2x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_lowp_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_mediump_mat2x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_mediump_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_highp_mat2x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_highp_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_lowp_mat2x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_lowp_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_mediump_mat2x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_mediump_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_highp_mat2x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_highp_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_lowp_mat3x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_lowp_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_mediump_mat3x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_mediump_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_highp_mat3x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_highp_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_lowp_mat3x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_lowp_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_mediump_mat3x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_mediump_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_highp_mat3x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_highp_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_lowp_mat3x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_lowp_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_mediump_mat3x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_mediump_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_highp_mat3x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_highp_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_lowp_mat3x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_lowp_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_mediump_mat3x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_mediump_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_highp_mat3x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_highp_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_lowp_mat4x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_lowp_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_mediump_mat4x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_mediump_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_highp_mat4x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_highp_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_lowp_mat4x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_lowp_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_mediump_mat4x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_mediump_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_highp_mat4x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_highp_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_lowp_mat4x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_lowp_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_mediump_mat4x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_mediump_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_highp_mat4x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.row_major_highp_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_lowp_mat4x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_lowp_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_mediump_mat4x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_mediump_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_highp_mat4x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std140.column_major_highp_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_lowp_mat2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_lowp_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_mediump_mat2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_mediump_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_highp_mat2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_highp_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_lowp_mat2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_lowp_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_mediump_mat2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_mediump_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_highp_mat2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_highp_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_lowp_mat3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_lowp_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_mediump_mat3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_mediump_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_highp_mat3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_highp_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_lowp_mat3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_lowp_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_mediump_mat3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_mediump_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_highp_mat3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_highp_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_lowp_mat4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_lowp_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_mediump_mat4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_mediump_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_highp_mat4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_highp_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_lowp_mat4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_lowp_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_mediump_mat4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_mediump_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_highp_mat4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_highp_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_lowp_mat2x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_lowp_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_mediump_mat2x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_mediump_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_highp_mat2x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_highp_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_lowp_mat2x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_lowp_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_mediump_mat2x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_mediump_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_highp_mat2x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_highp_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_lowp_mat2x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_lowp_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_mediump_mat2x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_mediump_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_highp_mat2x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_highp_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_lowp_mat2x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_lowp_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_mediump_mat2x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_mediump_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_highp_mat2x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_highp_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_lowp_mat3x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_lowp_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_mediump_mat3x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_mediump_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_highp_mat3x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_highp_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_lowp_mat3x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_lowp_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_mediump_mat3x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_mediump_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_highp_mat3x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_highp_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_lowp_mat3x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_lowp_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_mediump_mat3x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_mediump_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_highp_mat3x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_highp_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_lowp_mat3x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_lowp_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_mediump_mat3x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_mediump_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_highp_mat3x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_highp_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_lowp_mat4x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_lowp_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_mediump_mat4x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_mediump_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_highp_mat4x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_highp_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_lowp_mat4x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_lowp_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_mediump_mat4x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_mediump_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_highp_mat4x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_highp_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_lowp_mat4x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_lowp_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_mediump_mat4x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_mediump_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_highp_mat4x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.row_major_highp_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_lowp_mat4x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_lowp_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_mediump_mat4x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_mediump_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_highp_mat4x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.std430.column_major_highp_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_lowp_mat2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_lowp_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_mediump_mat2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_mediump_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_highp_mat2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_highp_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_lowp_mat2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_lowp_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_mediump_mat2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_mediump_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_highp_mat2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_highp_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_lowp_mat3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_lowp_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_mediump_mat3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_mediump_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_highp_mat3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_highp_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_lowp_mat3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_lowp_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_mediump_mat3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_mediump_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_highp_mat3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_highp_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_lowp_mat4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_lowp_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_mediump_mat4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_mediump_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_highp_mat4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_highp_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_lowp_mat4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_lowp_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_mediump_mat4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_mediump_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_highp_mat4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_highp_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_lowp_mat2x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_lowp_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_mediump_mat2x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_mediump_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_highp_mat2x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_highp_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_lowp_mat2x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_lowp_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_mediump_mat2x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_mediump_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_highp_mat2x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_highp_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_lowp_mat2x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_lowp_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_mediump_mat2x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_mediump_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_highp_mat2x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_highp_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_lowp_mat2x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_lowp_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_mediump_mat2x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_mediump_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_highp_mat2x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_highp_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_lowp_mat3x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_lowp_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_mediump_mat3x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_mediump_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_highp_mat3x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_highp_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_lowp_mat3x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_lowp_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_mediump_mat3x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_mediump_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_highp_mat3x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_highp_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_lowp_mat3x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_lowp_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_mediump_mat3x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_mediump_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_highp_mat3x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_highp_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_lowp_mat3x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_lowp_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_mediump_mat3x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_mediump_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_highp_mat3x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_highp_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_lowp_mat4x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_lowp_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_mediump_mat4x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_mediump_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_highp_mat4x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_highp_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_lowp_mat4x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_lowp_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_mediump_mat4x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_mediump_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_highp_mat4x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_highp_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_lowp_mat4x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_lowp_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_mediump_mat4x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_mediump_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_highp_mat4x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.row_major_highp_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_lowp_mat4x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_lowp_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_mediump_mat4x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_mediump_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_highp_mat4x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_type.scalar.column_major_highp_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.row_major_mat2_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.row_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.column_major_mat2_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.column_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.row_major_mat3_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.row_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.column_major_mat3_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.column_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.row_major_mat4_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.row_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.column_major_mat4_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.column_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.row_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.row_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.column_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.column_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.row_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.row_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.column_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.column_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.row_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.row_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.column_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.column_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.row_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.row_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.column_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.column_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.row_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.row_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.column_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.column_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.row_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.row_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.column_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std140.column_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.row_major_mat2_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.row_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.column_major_mat2_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.column_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.row_major_mat3_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.row_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.column_major_mat3_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.column_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.row_major_mat4_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.row_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.column_major_mat4_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.column_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.row_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.row_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.column_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.column_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.row_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.row_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.column_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.column_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.row_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.row_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.column_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.column_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.row_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.row_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.column_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.column_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.row_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.row_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.column_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.column_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.row_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.row_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.column_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.std430.column_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.row_major_mat2_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.row_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.column_major_mat2_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.column_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.row_major_mat3_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.row_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.column_major_mat3_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.column_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.row_major_mat4_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.row_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.column_major_mat4_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.column_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.row_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.row_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.column_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.column_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.row_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.row_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.column_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.column_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.row_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.row_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.column_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.column_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.row_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.row_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.column_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.column_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.row_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.row_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.column_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.column_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.row_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.row_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.column_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.single_basic_array.scalar.column_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.row_major_mat2_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.row_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.column_major_mat2_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.column_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.row_major_mat3_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.row_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.column_major_mat3_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.column_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.row_major_mat4_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.row_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.column_major_mat4_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.column_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.row_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.row_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.column_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.column_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.row_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.row_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.column_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.column_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.row_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.row_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.column_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.column_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.row_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.row_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.column_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.column_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.row_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.row_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.column_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.column_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.row_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.row_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.column_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std140.column_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.row_major_mat2_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.row_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.column_major_mat2_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.column_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.row_major_mat3_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.row_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.column_major_mat3_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.column_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.row_major_mat4_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.row_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.column_major_mat4_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.column_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.row_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.row_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.column_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.column_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.row_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.row_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.column_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.column_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.row_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.row_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.column_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.column_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.row_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.row_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.column_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.column_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.row_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.row_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.column_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.column_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.row_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.row_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.column_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.std430.column_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.row_major_mat2_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.row_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.column_major_mat2_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.column_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.row_major_mat3_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.row_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.column_major_mat3_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.column_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.row_major_mat4_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.row_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.column_major_mat4_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.column_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.row_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.row_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.column_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.column_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.row_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.row_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.column_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.column_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.row_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.row_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.column_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.column_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.row_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.row_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.column_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.column_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.row_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.row_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.column_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.column_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.row_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.row_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.column_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.basic_unsized_array.scalar.column_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.row_major_mat2_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.row_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.column_major_mat2_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.column_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.row_major_mat3_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.row_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.column_major_mat3_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.column_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.row_major_mat4_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.row_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.column_major_mat4_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.column_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.row_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.row_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.column_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.column_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.row_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.row_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.column_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.column_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.row_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.row_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.column_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.column_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.row_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.row_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.column_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.column_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.row_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.row_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.column_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.column_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.row_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.row_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.column_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std140.column_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.row_major_mat2_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.row_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.column_major_mat2_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.column_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.row_major_mat3_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.row_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.column_major_mat3_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.column_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.row_major_mat4_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.row_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.column_major_mat4_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.column_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.row_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.row_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.column_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.column_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.row_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.row_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.column_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.column_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.row_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.row_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.column_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.column_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.row_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.row_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.column_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.column_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.row_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.row_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.column_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.column_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.row_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.row_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.column_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.2_level_array.std430.column_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.row_major_mat2_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.row_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.column_major_mat2_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.column_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.row_major_mat3_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.row_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.column_major_mat3_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.column_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.row_major_mat4_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.row_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.column_major_mat4_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.column_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.row_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.row_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.column_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.column_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.row_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.row_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.column_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.column_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.row_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.row_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.column_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.column_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.row_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.row_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.column_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.column_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.row_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.row_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.column_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.column_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.row_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.row_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.column_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.2_level_array.scalar.column_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.row_major_mat2_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.row_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.column_major_mat2_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.column_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.row_major_mat3_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.row_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.column_major_mat3_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.column_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.row_major_mat4_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.row_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.column_major_mat4_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.column_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.row_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.row_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.column_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.column_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.row_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.row_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.column_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.column_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.row_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.row_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.column_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.column_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.row_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.row_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.column_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.column_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.row_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.row_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.column_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.column_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.row_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.row_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.column_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std140.column_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.row_major_mat2_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.row_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.column_major_mat2_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.column_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.row_major_mat3_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.row_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.column_major_mat3_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.column_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.row_major_mat4_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.row_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.column_major_mat4_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.column_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.row_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.row_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.column_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.column_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.row_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.row_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.column_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.column_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.row_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.row_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.column_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.column_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.row_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.row_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.column_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.column_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.row_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.row_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.column_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.column_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.row_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.row_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.column_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.3_level_array.std430.column_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.row_major_mat2_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.row_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.column_major_mat2_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.column_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.row_major_mat3_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.row_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.column_major_mat3_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.column_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.row_major_mat4_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.row_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.column_major_mat4_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.column_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.row_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.row_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.column_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.column_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.row_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.row_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.column_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.column_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.row_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.row_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.column_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.column_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.row_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.row_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.column_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.column_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.row_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.row_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.column_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.column_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.row_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.row_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.column_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.3_level_array.scalar.column_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.row_major_mat2_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.row_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.column_major_mat2_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.column_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.row_major_mat3_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.row_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.column_major_mat3_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.column_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.row_major_mat4_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.row_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.column_major_mat4_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.column_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.row_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.row_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.column_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.column_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.row_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.row_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.column_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.column_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.row_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.row_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.column_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.column_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.row_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.row_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.column_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.column_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.row_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.row_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.column_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.column_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.row_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.row_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.column_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std140.column_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.row_major_mat2_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.row_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.column_major_mat2_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.column_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.row_major_mat3_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.row_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.column_major_mat3_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.column_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.row_major_mat4_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.row_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.column_major_mat4_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.column_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.row_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.row_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.column_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.column_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.row_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.row_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.column_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.column_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.row_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.row_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.column_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.column_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.row_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.row_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.column_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.column_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.row_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.row_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.column_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.column_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.row_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.row_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.column_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.std430.column_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.row_major_mat2_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.row_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.column_major_mat2_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.column_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.row_major_mat3_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.row_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.column_major_mat3_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.column_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.row_major_mat4_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.row_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.column_major_mat4_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.column_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.row_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.row_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.column_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.column_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.row_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.row_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.column_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.column_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.row_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.row_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.column_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.column_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.row_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.row_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.column_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.column_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.row_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.row_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.column_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.column_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.row_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.row_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.column_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.3_level_unsized_array.scalar.column_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_struct.per_block_buffer.std140_store_cols
+dEQP-VK.ssbo.layout.single_struct.per_block_buffer.std140_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_struct.per_block_buffer.std140_instance_array_store_cols
+dEQP-VK.ssbo.layout.single_struct.per_block_buffer.std140_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_struct.per_block_buffer.std430_store_cols
+dEQP-VK.ssbo.layout.single_struct.per_block_buffer.std430_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_struct.per_block_buffer.std430_instance_array_store_cols
+dEQP-VK.ssbo.layout.single_struct.per_block_buffer.std430_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_struct.per_block_buffer.scalar_store_cols
+dEQP-VK.ssbo.layout.single_struct.per_block_buffer.scalar_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_struct.per_block_buffer.scalar_instance_array_store_cols
+dEQP-VK.ssbo.layout.single_struct.per_block_buffer.scalar_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_struct.single_buffer.std140_instance_array_store_cols
+dEQP-VK.ssbo.layout.single_struct.single_buffer.std140_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_struct.single_buffer.std430_instance_array_store_cols
+dEQP-VK.ssbo.layout.single_struct.single_buffer.std430_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_struct.single_buffer.scalar_instance_array_store_cols
+dEQP-VK.ssbo.layout.single_struct.single_buffer.scalar_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_struct_array.per_block_buffer.std140_store_cols
+dEQP-VK.ssbo.layout.single_struct_array.per_block_buffer.std140_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_struct_array.per_block_buffer.std140_instance_array_store_cols
+dEQP-VK.ssbo.layout.single_struct_array.per_block_buffer.std140_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_struct_array.per_block_buffer.std430_store_cols
+dEQP-VK.ssbo.layout.single_struct_array.per_block_buffer.std430_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_struct_array.per_block_buffer.std430_instance_array_store_cols
+dEQP-VK.ssbo.layout.single_struct_array.per_block_buffer.std430_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_struct_array.per_block_buffer.scalar_store_cols
+dEQP-VK.ssbo.layout.single_struct_array.per_block_buffer.scalar_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_struct_array.per_block_buffer.scalar_instance_array_store_cols
+dEQP-VK.ssbo.layout.single_struct_array.per_block_buffer.scalar_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_struct_array.single_buffer.std140_instance_array_store_cols
+dEQP-VK.ssbo.layout.single_struct_array.single_buffer.std140_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_struct_array.single_buffer.std430_instance_array_store_cols
+dEQP-VK.ssbo.layout.single_struct_array.single_buffer.std430_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_struct_array.single_buffer.scalar_instance_array_store_cols
+dEQP-VK.ssbo.layout.single_struct_array.single_buffer.scalar_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct.per_block_buffer.std140_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct.per_block_buffer.std140_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct.per_block_buffer.std140_instance_array_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct.per_block_buffer.std140_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct.per_block_buffer.std430_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct.per_block_buffer.std430_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct.per_block_buffer.std430_instance_array_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct.per_block_buffer.std430_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct.per_block_buffer.scalar_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct.per_block_buffer.scalar_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct.per_block_buffer.scalar_instance_array_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct.per_block_buffer.scalar_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct.single_buffer.std140_instance_array_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct.single_buffer.std140_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct.single_buffer.std430_instance_array_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct.single_buffer.std430_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct.single_buffer.scalar_instance_array_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct.single_buffer.scalar_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct_array.per_block_buffer.std140_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct_array.per_block_buffer.std140_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct_array.per_block_buffer.std140_instance_array_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct_array.per_block_buffer.std140_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct_array.per_block_buffer.std430_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct_array.per_block_buffer.std430_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct_array.per_block_buffer.std430_instance_array_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct_array.per_block_buffer.std430_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct_array.per_block_buffer.scalar_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct_array.per_block_buffer.scalar_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct_array.per_block_buffer.scalar_instance_array_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct_array.per_block_buffer.scalar_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct_array.single_buffer.std140_instance_array_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct_array.single_buffer.std140_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct_array.single_buffer.std430_instance_array_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct_array.single_buffer.std430_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct_array.single_buffer.scalar_instance_array_store_cols
+dEQP-VK.ssbo.layout.single_nested_struct_array.single_buffer.scalar_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.unsized_struct_array.per_block_buffer.std140_store_cols
+dEQP-VK.ssbo.layout.unsized_struct_array.per_block_buffer.std140_comp_access_store_cols
+dEQP-VK.ssbo.layout.unsized_struct_array.per_block_buffer.std140_instance_array_store_cols
+dEQP-VK.ssbo.layout.unsized_struct_array.per_block_buffer.std140_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.unsized_struct_array.per_block_buffer.std430_store_cols
+dEQP-VK.ssbo.layout.unsized_struct_array.per_block_buffer.std430_comp_access_store_cols
+dEQP-VK.ssbo.layout.unsized_struct_array.per_block_buffer.std430_instance_array_store_cols
+dEQP-VK.ssbo.layout.unsized_struct_array.per_block_buffer.std430_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.unsized_struct_array.per_block_buffer.scalar_store_cols
+dEQP-VK.ssbo.layout.unsized_struct_array.per_block_buffer.scalar_comp_access_store_cols
+dEQP-VK.ssbo.layout.unsized_struct_array.per_block_buffer.scalar_instance_array_store_cols
+dEQP-VK.ssbo.layout.unsized_struct_array.per_block_buffer.scalar_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.unsized_struct_array.single_buffer.std140_instance_array_store_cols
+dEQP-VK.ssbo.layout.unsized_struct_array.single_buffer.std140_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.unsized_struct_array.single_buffer.std430_instance_array_store_cols
+dEQP-VK.ssbo.layout.unsized_struct_array.single_buffer.std430_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.unsized_struct_array.single_buffer.scalar_instance_array_store_cols
+dEQP-VK.ssbo.layout.unsized_struct_array.single_buffer.scalar_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_unsized_struct_array.per_block_buffer.std140_store_cols
+dEQP-VK.ssbo.layout.2_level_unsized_struct_array.per_block_buffer.std140_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_unsized_struct_array.per_block_buffer.std140_instance_array_store_cols
+dEQP-VK.ssbo.layout.2_level_unsized_struct_array.per_block_buffer.std140_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_unsized_struct_array.per_block_buffer.std430_store_cols
+dEQP-VK.ssbo.layout.2_level_unsized_struct_array.per_block_buffer.std430_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_unsized_struct_array.per_block_buffer.std430_instance_array_store_cols
+dEQP-VK.ssbo.layout.2_level_unsized_struct_array.per_block_buffer.std430_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_unsized_struct_array.per_block_buffer.scalar_store_cols
+dEQP-VK.ssbo.layout.2_level_unsized_struct_array.per_block_buffer.scalar_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_unsized_struct_array.per_block_buffer.scalar_instance_array_store_cols
+dEQP-VK.ssbo.layout.2_level_unsized_struct_array.per_block_buffer.scalar_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_unsized_struct_array.single_buffer.std140_instance_array_store_cols
+dEQP-VK.ssbo.layout.2_level_unsized_struct_array.single_buffer.std140_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_unsized_struct_array.single_buffer.std430_instance_array_store_cols
+dEQP-VK.ssbo.layout.2_level_unsized_struct_array.single_buffer.std430_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.2_level_unsized_struct_array.single_buffer.scalar_instance_array_store_cols
+dEQP-VK.ssbo.layout.2_level_unsized_struct_array.single_buffer.scalar_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.unsized_nested_struct_array.per_block_buffer.std140_store_cols
+dEQP-VK.ssbo.layout.unsized_nested_struct_array.per_block_buffer.std140_comp_access_store_cols
+dEQP-VK.ssbo.layout.unsized_nested_struct_array.per_block_buffer.std140_instance_array_store_cols
+dEQP-VK.ssbo.layout.unsized_nested_struct_array.per_block_buffer.std140_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.unsized_nested_struct_array.per_block_buffer.std430_store_cols
+dEQP-VK.ssbo.layout.unsized_nested_struct_array.per_block_buffer.std430_comp_access_store_cols
+dEQP-VK.ssbo.layout.unsized_nested_struct_array.per_block_buffer.std430_instance_array_store_cols
+dEQP-VK.ssbo.layout.unsized_nested_struct_array.per_block_buffer.std430_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.unsized_nested_struct_array.per_block_buffer.scalar_store_cols
+dEQP-VK.ssbo.layout.unsized_nested_struct_array.per_block_buffer.scalar_comp_access_store_cols
+dEQP-VK.ssbo.layout.unsized_nested_struct_array.per_block_buffer.scalar_instance_array_store_cols
+dEQP-VK.ssbo.layout.unsized_nested_struct_array.per_block_buffer.scalar_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.unsized_nested_struct_array.single_buffer.std140_instance_array_store_cols
+dEQP-VK.ssbo.layout.unsized_nested_struct_array.single_buffer.std140_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.unsized_nested_struct_array.single_buffer.std430_instance_array_store_cols
+dEQP-VK.ssbo.layout.unsized_nested_struct_array.single_buffer.std430_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.unsized_nested_struct_array.single_buffer.scalar_instance_array_store_cols
+dEQP-VK.ssbo.layout.unsized_nested_struct_array.single_buffer.scalar_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.row_major_mat2_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.row_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.column_major_mat2_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.column_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.row_major_mat3_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.row_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.column_major_mat3_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.column_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.row_major_mat4_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.row_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.column_major_mat4_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.column_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.row_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.row_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.column_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.column_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.row_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.row_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.column_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.column_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.row_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.row_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.column_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.column_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.row_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.row_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.column_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.column_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.row_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.row_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.column_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.column_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.row_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.row_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.column_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std140.column_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.row_major_mat2_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.row_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.column_major_mat2_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.column_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.row_major_mat3_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.row_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.column_major_mat3_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.column_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.row_major_mat4_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.row_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.column_major_mat4_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.column_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.row_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.row_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.column_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.column_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.row_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.row_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.column_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.column_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.row_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.row_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.column_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.column_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.row_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.row_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.column_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.column_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.row_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.row_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.column_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.column_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.row_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.row_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.column_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.std430.column_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.row_major_mat2_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.row_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.column_major_mat2_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.column_major_mat2_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.row_major_mat3_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.row_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.column_major_mat3_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.column_major_mat3_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.row_major_mat4_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.row_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.column_major_mat4_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.column_major_mat4_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.row_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.row_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.column_major_mat2x3_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.column_major_mat2x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.row_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.row_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.column_major_mat2x4_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.column_major_mat2x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.row_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.row_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.column_major_mat3x2_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.column_major_mat3x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.row_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.row_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.column_major_mat3x4_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.column_major_mat3x4_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.row_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.row_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.column_major_mat4x2_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.column_major_mat4x2_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.row_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.row_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.column_major_mat4x3_store_cols
+dEQP-VK.ssbo.layout.instance_array_basic_type.scalar.column_major_mat4x3_comp_access_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.per_block_buffer.std140_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.per_block_buffer.std140_comp_access_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.per_block_buffer.std140_instance_array_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.per_block_buffer.std140_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.per_block_buffer.std430_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.per_block_buffer.std430_comp_access_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.per_block_buffer.std430_instance_array_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.per_block_buffer.std430_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.per_block_buffer.scalar_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.per_block_buffer.scalar_comp_access_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.per_block_buffer.scalar_instance_array_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.per_block_buffer.scalar_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.per_block_buffer.relaxed_block_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.per_block_buffer.relaxed_block_comp_access_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.per_block_buffer.relaxed_block_instance_array_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.per_block_buffer.relaxed_block_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.single_buffer.std140_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.single_buffer.std140_comp_access_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.single_buffer.std140_instance_array_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.single_buffer.std140_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.single_buffer.std430_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.single_buffer.std430_comp_access_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.single_buffer.std430_instance_array_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.single_buffer.std430_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.single_buffer.scalar_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.single_buffer.scalar_comp_access_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.single_buffer.scalar_instance_array_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.single_buffer.scalar_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.single_buffer.relaxed_block_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.single_buffer.relaxed_block_comp_access_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.single_buffer.relaxed_block_instance_array_store_cols
+dEQP-VK.ssbo.layout.multi_basic_types.single_buffer.relaxed_block_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.multi_nested_struct.per_block_buffer.std140_store_cols
+dEQP-VK.ssbo.layout.multi_nested_struct.per_block_buffer.std140_comp_access_store_cols
+dEQP-VK.ssbo.layout.multi_nested_struct.per_block_buffer.std140_instance_array_store_cols
+dEQP-VK.ssbo.layout.multi_nested_struct.per_block_buffer.std140_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.multi_nested_struct.per_block_buffer.std430_store_cols
+dEQP-VK.ssbo.layout.multi_nested_struct.per_block_buffer.std430_comp_access_store_cols
+dEQP-VK.ssbo.layout.multi_nested_struct.per_block_buffer.std430_instance_array_store_cols
+dEQP-VK.ssbo.layout.multi_nested_struct.per_block_buffer.std430_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.multi_nested_struct.per_block_buffer.scalar_store_cols
+dEQP-VK.ssbo.layout.multi_nested_struct.per_block_buffer.scalar_comp_access_store_cols
+dEQP-VK.ssbo.layout.multi_nested_struct.per_block_buffer.scalar_instance_array_store_cols
+dEQP-VK.ssbo.layout.multi_nested_struct.per_block_buffer.scalar_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.multi_nested_struct.single_buffer.std140_store_cols
+dEQP-VK.ssbo.layout.multi_nested_struct.single_buffer.std140_comp_access_store_cols
+dEQP-VK.ssbo.layout.multi_nested_struct.single_buffer.std140_instance_array_store_cols
+dEQP-VK.ssbo.layout.multi_nested_struct.single_buffer.std140_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.multi_nested_struct.single_buffer.std430_store_cols
+dEQP-VK.ssbo.layout.multi_nested_struct.single_buffer.std430_comp_access_store_cols
+dEQP-VK.ssbo.layout.multi_nested_struct.single_buffer.std430_instance_array_store_cols
+dEQP-VK.ssbo.layout.multi_nested_struct.single_buffer.std430_instance_array_comp_access_store_cols
+dEQP-VK.ssbo.layout.multi_nested_struct.single_buffer.scalar_store_cols
+dEQP-VK.ssbo.layout.multi_nested_struct.single_buffer.scalar_comp_access_store_cols
+dEQP-VK.ssbo.layout.multi_nested_struct.single_buffer.scalar_instance_array_store_cols
+dEQP-VK.ssbo.layout.multi_nested_struct.single_buffer.scalar_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.layout.random.descriptor_indexing.0
 dEQP-VK.ssbo.layout.random.descriptor_indexing.1
 dEQP-VK.ssbo.layout.random.descriptor_indexing.2
@@ -103495,137 +144883,245 @@
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.mediump_mat2
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.highp_mat2
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.lowp_mat3
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.mediump_mat3
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.highp_mat3
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.lowp_mat4
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.mediump_mat4
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.highp_mat4
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.lowp_mat2x3
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.mediump_mat2x3
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.highp_mat2x3
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat2x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat2x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat2x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat2x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat2x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat2x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.lowp_mat2x4
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.mediump_mat2x4
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.highp_mat2x4
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat2x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat2x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat2x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat2x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat2x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat2x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.lowp_mat3x2
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.mediump_mat3x2
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.highp_mat3x2
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat3x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat3x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat3x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat3x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat3x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat3x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.lowp_mat3x4
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.mediump_mat3x4
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.highp_mat3x4
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat3x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat3x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat3x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat3x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat3x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat3x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.lowp_mat4x2
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.mediump_mat4x2
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.highp_mat4x2
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat4x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat4x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat4x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat4x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat4x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat4x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.lowp_mat4x3
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.mediump_mat4x3
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.highp_mat4x3
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat4x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_lowp_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat4x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_mediump_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat4x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.row_major_highp_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat4x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_lowp_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat4x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_mediump_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat4x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std140.column_major_highp_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.uint8_t
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.u8vec2
 dEQP-VK.ssbo.phys.layout.single_basic_type.std140.u8vec3
@@ -103690,137 +145186,245 @@
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.mediump_mat2
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.highp_mat2
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.lowp_mat3
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.mediump_mat3
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.highp_mat3
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.lowp_mat4
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.mediump_mat4
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.highp_mat4
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.lowp_mat2x3
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.mediump_mat2x3
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.highp_mat2x3
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat2x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat2x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat2x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat2x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat2x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat2x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.lowp_mat2x4
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.mediump_mat2x4
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.highp_mat2x4
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat2x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat2x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat2x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat2x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat2x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat2x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.lowp_mat3x2
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.mediump_mat3x2
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.highp_mat3x2
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat3x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat3x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat3x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat3x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat3x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat3x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.lowp_mat3x4
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.mediump_mat3x4
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.highp_mat3x4
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat3x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat3x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat3x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat3x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat3x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat3x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.lowp_mat4x2
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.mediump_mat4x2
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.highp_mat4x2
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat4x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat4x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat4x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat4x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat4x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat4x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.lowp_mat4x3
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.mediump_mat4x3
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.highp_mat4x3
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat4x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_lowp_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat4x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_mediump_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat4x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.row_major_highp_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat4x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_lowp_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat4x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_mediump_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat4x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.std430.column_major_highp_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.uint8_t
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.u8vec2
 dEQP-VK.ssbo.phys.layout.single_basic_type.std430.u8vec3
@@ -103885,137 +145489,245 @@
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.mediump_mat2
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.highp_mat2
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat2
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat2
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat2
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat2
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat2
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat2
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.lowp_mat3
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.mediump_mat3
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.highp_mat3
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat3
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat3
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat3
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat3
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat3
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat3
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.lowp_mat4
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.mediump_mat4
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.highp_mat4
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat4
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat4
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat4
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat4
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat4
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat4
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.lowp_mat2x3
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.mediump_mat2x3
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.highp_mat2x3
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat2x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat2x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat2x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat2x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat2x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat2x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.lowp_mat2x4
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.mediump_mat2x4
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.highp_mat2x4
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat2x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat2x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat2x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat2x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat2x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat2x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.lowp_mat3x2
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.mediump_mat3x2
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.highp_mat3x2
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat3x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat3x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat3x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat3x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat3x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat3x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.lowp_mat3x4
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.mediump_mat3x4
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.highp_mat3x4
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat3x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat3x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat3x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat3x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat3x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat3x4
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.lowp_mat4x2
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.mediump_mat4x2
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.highp_mat4x2
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat4x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat4x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat4x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat4x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat4x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat4x2
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.lowp_mat4x3
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.mediump_mat4x3
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.highp_mat4x3
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat4x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_lowp_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat4x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_mediump_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat4x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.row_major_highp_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat4x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_lowp_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat4x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_mediump_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat4x3
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.column_major_highp_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.uint8_t
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.u8vec2
 dEQP-VK.ssbo.phys.layout.single_basic_type.scalar.u8vec3
@@ -104054,49 +145766,85 @@
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.bvec4
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.mat2
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat2
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat2
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.mat3
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat3
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat3
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.mat4
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat4
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat4
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.mat2x3
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat2x3
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat2x3
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.mat2x4
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat2x4
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat2x4
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.mat3x2
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat3x2
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat3x2
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.mat3x4
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat3x4
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat3x4
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.mat4x2
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat4x2
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat4x2
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.mat4x3
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat4x3
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.row_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat4x3
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std140.column_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.uint8_t
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.u8vec2
 dEQP-VK.ssbo.phys.layout.single_basic_array.std140.u8vec3
@@ -104135,49 +145883,85 @@
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.bvec4
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.mat2
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat2
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat2
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.mat3
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat3
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat3
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.mat4
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat4
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat4
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.mat2x3
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat2x3
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat2x3
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.mat2x4
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat2x4
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat2x4
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.mat3x2
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat3x2
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat3x2
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.mat3x4
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat3x4
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat3x4
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.mat4x2
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat4x2
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat4x2
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.mat4x3
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat4x3
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.row_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat4x3
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.std430.column_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.uint8_t
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.u8vec2
 dEQP-VK.ssbo.phys.layout.single_basic_array.std430.u8vec3
@@ -104216,49 +146000,85 @@
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.bvec4
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.mat2
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat2
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat2
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.mat3
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat3
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat3
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.mat4
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat4
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat4
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.mat2x3
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat2x3
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat2x3
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.mat2x4
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat2x4
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat2x4
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.mat3x2
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat3x2
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat3x2
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.mat3x4
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat3x4
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat3x4
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.mat4x2
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat4x2
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat4x2
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.mat4x3
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat4x3
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.row_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat4x3
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.column_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.uint8_t
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.u8vec2
 dEQP-VK.ssbo.phys.layout.single_basic_array.scalar.u8vec3
@@ -104297,49 +146117,85 @@
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.bvec4
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.mat2
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat2
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat2
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.mat3
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat3
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat3
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.mat4
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat4
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat4
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.mat2x3
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat2x3
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat2x3
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.mat2x4
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat2x4
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat2x4
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.mat3x2
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat3x2
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat3x2
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.mat3x4
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat3x4
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat3x4
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.mat4x2
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat4x2
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat4x2
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.mat4x3
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat4x3
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.row_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat4x3
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.column_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.uint8_t
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.u8vec2
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std140.u8vec3
@@ -104378,49 +146234,85 @@
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.bvec4
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.mat2
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat2
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat2
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.mat3
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat3
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat3
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.mat4
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat4
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat4
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.mat2x3
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat2x3
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat2x3
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.mat2x4
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat2x4
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat2x4
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.mat3x2
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat3x2
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat3x2
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.mat3x4
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat3x4
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat3x4
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.mat4x2
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat4x2
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat4x2
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.mat4x3
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat4x3
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.row_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat4x3
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.column_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.uint8_t
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.u8vec2
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.std430.u8vec3
@@ -104459,49 +146351,85 @@
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.bvec4
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.mat2
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat2
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat2
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.mat3
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat3
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat3
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.mat4
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat4
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat4
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.mat2x3
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat2x3
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat2x3
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.mat2x4
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat2x4
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat2x4
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.mat3x2
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat3x2
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat3x2
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.mat3x4
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat3x4
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat3x4
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.mat4x2
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat4x2
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat4x2
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.mat4x3
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat4x3
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.row_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat4x3
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.column_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.uint8_t
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.u8vec2
 dEQP-VK.ssbo.phys.layout.basic_unsized_array.scalar.u8vec3
@@ -104540,49 +146468,85 @@
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.bvec4
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.mat2
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat2
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat2
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.mat3
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat3
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat3
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.mat4
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat4
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat4
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.mat2x3
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat2x3
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat2x3
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.mat2x4
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat2x4
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat2x4
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.mat3x2
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat3x2
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat3x2
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.mat3x4
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat3x4
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat3x4
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.mat4x2
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat4x2
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat4x2
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.mat4x3
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat4x3
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.row_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat4x3
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std140.column_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.uint8_t
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.u8vec2
 dEQP-VK.ssbo.phys.layout.2_level_array.std140.u8vec3
@@ -104621,49 +146585,85 @@
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.bvec4
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.mat2
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat2
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat2
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.mat3
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat3
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat3
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.mat4
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat4
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat4
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.mat2x3
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat2x3
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat2x3
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.mat2x4
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat2x4
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat2x4
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.mat3x2
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat3x2
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat3x2
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.mat3x4
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat3x4
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat3x4
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.mat4x2
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat4x2
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat4x2
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.mat4x3
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat4x3
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.row_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat4x3
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.std430.column_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.uint8_t
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.u8vec2
 dEQP-VK.ssbo.phys.layout.2_level_array.std430.u8vec3
@@ -104702,49 +146702,85 @@
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.bvec4
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.mat2
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat2
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat2
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.mat3
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat3
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat3
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.mat4
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat4
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat4
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.mat2x3
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat2x3
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat2x3
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.mat2x4
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat2x4
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat2x4
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.mat3x2
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat3x2
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat3x2
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.mat3x4
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat3x4
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat3x4
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.mat4x2
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat4x2
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat4x2
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.mat4x3
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat4x3
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.row_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat4x3
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_array.scalar.column_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.uint8_t
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.u8vec2
 dEQP-VK.ssbo.phys.layout.2_level_array.scalar.u8vec3
@@ -104783,49 +146819,85 @@
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.bvec4
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.mat2
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat2
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat2
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.mat3
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat3
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat3
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.mat4
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat4
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat4
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.mat2x3
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat2x3
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat2x3
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.mat2x4
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat2x4
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat2x4
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.mat3x2
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat3x2
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat3x2
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.mat3x4
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat3x4
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat3x4
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.mat4x2
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat4x2
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat4x2
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.mat4x3
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat4x3
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.row_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat4x3
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std140.column_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.uint8_t
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.u8vec2
 dEQP-VK.ssbo.phys.layout.3_level_array.std140.u8vec3
@@ -104864,49 +146936,85 @@
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.bvec4
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.mat2
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat2
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat2
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.mat3
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat3
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat3
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.mat4
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat4
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat4
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.mat2x3
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat2x3
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat2x3
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.mat2x4
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat2x4
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat2x4
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.mat3x2
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat3x2
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat3x2
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.mat3x4
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat3x4
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat3x4
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.mat4x2
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat4x2
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat4x2
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.mat4x3
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat4x3
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.row_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat4x3
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.std430.column_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.uint8_t
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.u8vec2
 dEQP-VK.ssbo.phys.layout.3_level_array.std430.u8vec3
@@ -104945,49 +147053,85 @@
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.bvec4
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.mat2
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat2
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat2
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.mat3
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat3
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat3
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.mat4
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat4
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat4
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.mat2x3
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat2x3
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat2x3
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.mat2x4
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat2x4
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat2x4
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.mat3x2
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat3x2
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat3x2
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.mat3x4
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat3x4
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat3x4
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.mat4x2
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat4x2
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat4x2
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.mat4x3
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat4x3
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.row_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat4x3
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_array.scalar.column_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.uint8_t
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.u8vec2
 dEQP-VK.ssbo.phys.layout.3_level_array.scalar.u8vec3
@@ -105026,49 +147170,85 @@
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.bvec4
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.mat2
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat2
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat2
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.mat3
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat3
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat3
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.mat4
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat4
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat4
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.mat2x3
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat2x3
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat2x3
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.mat2x4
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat2x4
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat2x4
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.mat3x2
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat3x2
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat3x2
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.mat3x4
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat3x4
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat3x4
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.mat4x2
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat4x2
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat4x2
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.mat4x3
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat4x3
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.row_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat4x3
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.column_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.uint8_t
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.u8vec2
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std140.u8vec3
@@ -105107,49 +147287,85 @@
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.bvec4
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.mat2
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat2
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat2
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.mat3
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat3
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat3
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.mat4
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat4
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat4
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.mat2x3
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat2x3
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat2x3
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.mat2x4
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat2x4
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat2x4
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.mat3x2
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat3x2
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat3x2
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.mat3x4
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat3x4
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat3x4
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.mat4x2
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat4x2
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat4x2
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.mat4x3
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat4x3
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.row_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat4x3
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.column_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.uint8_t
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.u8vec2
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.std430.u8vec3
@@ -105188,49 +147404,85 @@
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.bvec4
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.mat2
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat2
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat2
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.mat3
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat3
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat3
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.mat4
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat4
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat4
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.mat2x3
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat2x3
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat2x3
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.mat2x4
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat2x4
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat2x4
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.mat3x2
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat3x2
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat3x2
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.mat3x4
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat3x4
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat3x4
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.mat4x2
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat4x2
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat4x2
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.mat4x3
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat4x3
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.row_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat4x3
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.column_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.uint8_t
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.u8vec2
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.u8vec3
@@ -105252,131 +147504,257 @@
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.f16vec3
 dEQP-VK.ssbo.phys.layout.3_level_unsized_array.scalar.f16vec4
 dEQP-VK.ssbo.phys.layout.single_struct.per_block_buffer.std140
+dEQP-VK.ssbo.phys.layout.single_struct.per_block_buffer.std140_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct.per_block_buffer.std140_comp_access
+dEQP-VK.ssbo.phys.layout.single_struct.per_block_buffer.std140_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct.per_block_buffer.std140_instance_array
+dEQP-VK.ssbo.phys.layout.single_struct.per_block_buffer.std140_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct.per_block_buffer.std140_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.single_struct.per_block_buffer.std140_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct.per_block_buffer.std430
+dEQP-VK.ssbo.phys.layout.single_struct.per_block_buffer.std430_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct.per_block_buffer.std430_comp_access
+dEQP-VK.ssbo.phys.layout.single_struct.per_block_buffer.std430_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct.per_block_buffer.std430_instance_array
+dEQP-VK.ssbo.phys.layout.single_struct.per_block_buffer.std430_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct.per_block_buffer.std430_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.single_struct.per_block_buffer.std430_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct.per_block_buffer.scalar
+dEQP-VK.ssbo.phys.layout.single_struct.per_block_buffer.scalar_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct.per_block_buffer.scalar_comp_access
+dEQP-VK.ssbo.phys.layout.single_struct.per_block_buffer.scalar_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct.per_block_buffer.scalar_instance_array
+dEQP-VK.ssbo.phys.layout.single_struct.per_block_buffer.scalar_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct.per_block_buffer.scalar_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.single_struct.per_block_buffer.scalar_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct.single_buffer.std140_instance_array
+dEQP-VK.ssbo.phys.layout.single_struct.single_buffer.std140_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct.single_buffer.std140_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.single_struct.single_buffer.std140_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct.single_buffer.std430_instance_array
+dEQP-VK.ssbo.phys.layout.single_struct.single_buffer.std430_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct.single_buffer.std430_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.single_struct.single_buffer.std430_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct.single_buffer.scalar_instance_array
+dEQP-VK.ssbo.phys.layout.single_struct.single_buffer.scalar_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct.single_buffer.scalar_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.single_struct.single_buffer.scalar_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct_array.per_block_buffer.std140
+dEQP-VK.ssbo.phys.layout.single_struct_array.per_block_buffer.std140_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct_array.per_block_buffer.std140_comp_access
+dEQP-VK.ssbo.phys.layout.single_struct_array.per_block_buffer.std140_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct_array.per_block_buffer.std140_instance_array
+dEQP-VK.ssbo.phys.layout.single_struct_array.per_block_buffer.std140_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct_array.per_block_buffer.std140_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.single_struct_array.per_block_buffer.std140_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct_array.per_block_buffer.std430
+dEQP-VK.ssbo.phys.layout.single_struct_array.per_block_buffer.std430_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct_array.per_block_buffer.std430_comp_access
+dEQP-VK.ssbo.phys.layout.single_struct_array.per_block_buffer.std430_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct_array.per_block_buffer.std430_instance_array
+dEQP-VK.ssbo.phys.layout.single_struct_array.per_block_buffer.std430_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct_array.per_block_buffer.std430_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.single_struct_array.per_block_buffer.std430_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct_array.per_block_buffer.scalar
+dEQP-VK.ssbo.phys.layout.single_struct_array.per_block_buffer.scalar_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct_array.per_block_buffer.scalar_comp_access
+dEQP-VK.ssbo.phys.layout.single_struct_array.per_block_buffer.scalar_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct_array.per_block_buffer.scalar_instance_array
+dEQP-VK.ssbo.phys.layout.single_struct_array.per_block_buffer.scalar_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct_array.per_block_buffer.scalar_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.single_struct_array.per_block_buffer.scalar_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct_array.single_buffer.std140_instance_array
+dEQP-VK.ssbo.phys.layout.single_struct_array.single_buffer.std140_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct_array.single_buffer.std140_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.single_struct_array.single_buffer.std140_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct_array.single_buffer.std430_instance_array
+dEQP-VK.ssbo.phys.layout.single_struct_array.single_buffer.std430_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct_array.single_buffer.std430_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.single_struct_array.single_buffer.std430_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct_array.single_buffer.scalar_instance_array
+dEQP-VK.ssbo.phys.layout.single_struct_array.single_buffer.scalar_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.single_struct_array.single_buffer.scalar_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.single_struct_array.single_buffer.scalar_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct.per_block_buffer.std140
+dEQP-VK.ssbo.phys.layout.single_nested_struct.per_block_buffer.std140_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct.per_block_buffer.std140_comp_access
+dEQP-VK.ssbo.phys.layout.single_nested_struct.per_block_buffer.std140_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct.per_block_buffer.std140_instance_array
+dEQP-VK.ssbo.phys.layout.single_nested_struct.per_block_buffer.std140_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct.per_block_buffer.std140_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.single_nested_struct.per_block_buffer.std140_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct.per_block_buffer.std430
+dEQP-VK.ssbo.phys.layout.single_nested_struct.per_block_buffer.std430_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct.per_block_buffer.std430_comp_access
+dEQP-VK.ssbo.phys.layout.single_nested_struct.per_block_buffer.std430_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct.per_block_buffer.std430_instance_array
+dEQP-VK.ssbo.phys.layout.single_nested_struct.per_block_buffer.std430_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct.per_block_buffer.std430_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.single_nested_struct.per_block_buffer.std430_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct.per_block_buffer.scalar
+dEQP-VK.ssbo.phys.layout.single_nested_struct.per_block_buffer.scalar_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct.per_block_buffer.scalar_comp_access
+dEQP-VK.ssbo.phys.layout.single_nested_struct.per_block_buffer.scalar_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct.per_block_buffer.scalar_instance_array
+dEQP-VK.ssbo.phys.layout.single_nested_struct.per_block_buffer.scalar_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct.per_block_buffer.scalar_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.single_nested_struct.per_block_buffer.scalar_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct.single_buffer.std140_instance_array
+dEQP-VK.ssbo.phys.layout.single_nested_struct.single_buffer.std140_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct.single_buffer.std140_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.single_nested_struct.single_buffer.std140_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct.single_buffer.std430_instance_array
+dEQP-VK.ssbo.phys.layout.single_nested_struct.single_buffer.std430_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct.single_buffer.std430_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.single_nested_struct.single_buffer.std430_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct.single_buffer.scalar_instance_array
+dEQP-VK.ssbo.phys.layout.single_nested_struct.single_buffer.scalar_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct.single_buffer.scalar_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.single_nested_struct.single_buffer.scalar_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct_array.per_block_buffer.std140
+dEQP-VK.ssbo.phys.layout.single_nested_struct_array.per_block_buffer.std140_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct_array.per_block_buffer.std140_comp_access
+dEQP-VK.ssbo.phys.layout.single_nested_struct_array.per_block_buffer.std140_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct_array.per_block_buffer.std140_instance_array
+dEQP-VK.ssbo.phys.layout.single_nested_struct_array.per_block_buffer.std140_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct_array.per_block_buffer.std140_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.single_nested_struct_array.per_block_buffer.std140_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct_array.per_block_buffer.std430
+dEQP-VK.ssbo.phys.layout.single_nested_struct_array.per_block_buffer.std430_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct_array.per_block_buffer.std430_comp_access
+dEQP-VK.ssbo.phys.layout.single_nested_struct_array.per_block_buffer.std430_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct_array.per_block_buffer.std430_instance_array
+dEQP-VK.ssbo.phys.layout.single_nested_struct_array.per_block_buffer.std430_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct_array.per_block_buffer.std430_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.single_nested_struct_array.per_block_buffer.std430_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct_array.per_block_buffer.scalar
+dEQP-VK.ssbo.phys.layout.single_nested_struct_array.per_block_buffer.scalar_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct_array.per_block_buffer.scalar_comp_access
+dEQP-VK.ssbo.phys.layout.single_nested_struct_array.per_block_buffer.scalar_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct_array.per_block_buffer.scalar_instance_array
+dEQP-VK.ssbo.phys.layout.single_nested_struct_array.per_block_buffer.scalar_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct_array.per_block_buffer.scalar_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.single_nested_struct_array.per_block_buffer.scalar_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct_array.single_buffer.std140_instance_array
+dEQP-VK.ssbo.phys.layout.single_nested_struct_array.single_buffer.std140_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct_array.single_buffer.std140_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.single_nested_struct_array.single_buffer.std140_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct_array.single_buffer.std430_instance_array
+dEQP-VK.ssbo.phys.layout.single_nested_struct_array.single_buffer.std430_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct_array.single_buffer.std430_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.single_nested_struct_array.single_buffer.std430_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct_array.single_buffer.scalar_instance_array
+dEQP-VK.ssbo.phys.layout.single_nested_struct_array.single_buffer.scalar_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.single_nested_struct_array.single_buffer.scalar_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.single_nested_struct_array.single_buffer.scalar_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_struct_array.per_block_buffer.std140
+dEQP-VK.ssbo.phys.layout.unsized_struct_array.per_block_buffer.std140_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_struct_array.per_block_buffer.std140_comp_access
+dEQP-VK.ssbo.phys.layout.unsized_struct_array.per_block_buffer.std140_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_struct_array.per_block_buffer.std140_instance_array
+dEQP-VK.ssbo.phys.layout.unsized_struct_array.per_block_buffer.std140_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_struct_array.per_block_buffer.std140_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.unsized_struct_array.per_block_buffer.std140_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_struct_array.per_block_buffer.std430
+dEQP-VK.ssbo.phys.layout.unsized_struct_array.per_block_buffer.std430_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_struct_array.per_block_buffer.std430_comp_access
+dEQP-VK.ssbo.phys.layout.unsized_struct_array.per_block_buffer.std430_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_struct_array.per_block_buffer.std430_instance_array
+dEQP-VK.ssbo.phys.layout.unsized_struct_array.per_block_buffer.std430_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_struct_array.per_block_buffer.std430_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.unsized_struct_array.per_block_buffer.std430_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_struct_array.per_block_buffer.scalar
+dEQP-VK.ssbo.phys.layout.unsized_struct_array.per_block_buffer.scalar_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_struct_array.per_block_buffer.scalar_comp_access
+dEQP-VK.ssbo.phys.layout.unsized_struct_array.per_block_buffer.scalar_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_struct_array.per_block_buffer.scalar_instance_array
+dEQP-VK.ssbo.phys.layout.unsized_struct_array.per_block_buffer.scalar_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_struct_array.per_block_buffer.scalar_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.unsized_struct_array.per_block_buffer.scalar_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_struct_array.single_buffer.std140_instance_array
+dEQP-VK.ssbo.phys.layout.unsized_struct_array.single_buffer.std140_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_struct_array.single_buffer.std140_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.unsized_struct_array.single_buffer.std140_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_struct_array.single_buffer.std430_instance_array
+dEQP-VK.ssbo.phys.layout.unsized_struct_array.single_buffer.std430_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_struct_array.single_buffer.std430_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.unsized_struct_array.single_buffer.std430_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_struct_array.single_buffer.scalar_instance_array
+dEQP-VK.ssbo.phys.layout.unsized_struct_array.single_buffer.scalar_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_struct_array.single_buffer.scalar_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.unsized_struct_array.single_buffer.scalar_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.per_block_buffer.std140
+dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.per_block_buffer.std140_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.per_block_buffer.std140_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.per_block_buffer.std140_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.per_block_buffer.std140_instance_array
+dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.per_block_buffer.std140_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.per_block_buffer.std140_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.per_block_buffer.std140_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.per_block_buffer.std430
+dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.per_block_buffer.std430_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.per_block_buffer.std430_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.per_block_buffer.std430_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.per_block_buffer.std430_instance_array
+dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.per_block_buffer.std430_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.per_block_buffer.std430_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.per_block_buffer.std430_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.per_block_buffer.scalar
+dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.per_block_buffer.scalar_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.per_block_buffer.scalar_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.per_block_buffer.scalar_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.per_block_buffer.scalar_instance_array
+dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.per_block_buffer.scalar_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.per_block_buffer.scalar_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.per_block_buffer.scalar_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.single_buffer.std140_instance_array
+dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.single_buffer.std140_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.single_buffer.std140_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.single_buffer.std140_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.single_buffer.std430_instance_array
+dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.single_buffer.std430_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.single_buffer.std430_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.single_buffer.std430_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.single_buffer.scalar_instance_array
+dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.single_buffer.scalar_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.single_buffer.scalar_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.2_level_unsized_struct_array.single_buffer.scalar_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.per_block_buffer.std140
+dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.per_block_buffer.std140_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.per_block_buffer.std140_comp_access
+dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.per_block_buffer.std140_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.per_block_buffer.std140_instance_array
+dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.per_block_buffer.std140_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.per_block_buffer.std140_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.per_block_buffer.std140_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.per_block_buffer.std430
+dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.per_block_buffer.std430_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.per_block_buffer.std430_comp_access
+dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.per_block_buffer.std430_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.per_block_buffer.std430_instance_array
+dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.per_block_buffer.std430_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.per_block_buffer.std430_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.per_block_buffer.std430_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.per_block_buffer.scalar
+dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.per_block_buffer.scalar_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.per_block_buffer.scalar_comp_access
+dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.per_block_buffer.scalar_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.per_block_buffer.scalar_instance_array
+dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.per_block_buffer.scalar_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.per_block_buffer.scalar_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.per_block_buffer.scalar_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.single_buffer.std140_instance_array
+dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.single_buffer.std140_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.single_buffer.std140_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.single_buffer.std140_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.single_buffer.std430_instance_array
+dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.single_buffer.std430_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.single_buffer.std430_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.single_buffer.std430_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.single_buffer.scalar_instance_array
+dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.single_buffer.scalar_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.single_buffer.scalar_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.unsized_nested_struct_array.single_buffer.scalar_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.float
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.vec2
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.vec3
@@ -105395,49 +147773,85 @@
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.bvec4
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.mat2
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat2
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat2
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.mat3
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat3
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat3
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.mat4
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat4
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat4
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.mat2x3
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat2x3
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat2x3
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.mat2x4
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat2x4
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat2x4
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.mat3x2
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat3x2
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat3x2
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.mat3x4
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat3x4
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat3x4
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.mat4x2
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat4x2
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat4x2
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.mat4x3
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat4x3
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.row_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat4x3
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.column_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.uint8_t
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.u8vec2
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std140.u8vec3
@@ -105476,49 +147890,85 @@
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.bvec4
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.mat2
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat2
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat2
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.mat3
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat3
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat3
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.mat4
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat4
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat4
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.mat2x3
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat2x3
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat2x3
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.mat2x4
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat2x4
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat2x4
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.mat3x2
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat3x2
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat3x2
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.mat3x4
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat3x4
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat3x4
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.mat4x2
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat4x2
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat4x2
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.mat4x3
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat4x3
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.row_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat4x3
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.column_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.uint8_t
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.u8vec2
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.std430.u8vec3
@@ -105557,49 +148007,85 @@
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.bvec4
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.mat2
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat2
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat2
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat2_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat2_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.mat3
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat3
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat3
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat3_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat3_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.mat4
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat4
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat4
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat4_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat4_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.mat2x3
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat2x3
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat2x3
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat2x3_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat2x3_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat2x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.mat2x4
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat2x4
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat2x4
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat2x4_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat2x4_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat2x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.mat3x2
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat3x2
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat3x2
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat3x2_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat3x2_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat3x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.mat3x4
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat3x4
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat3x4
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat3x4_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat3x4_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat3x4_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.mat4x2
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat4x2
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat4x2
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat4x2_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat4x2_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat4x2_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.mat4x3
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat4x3
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.row_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat4x3
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat4x3_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat4x3_comp_access
+dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.column_major_mat4x3_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.uint8_t
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.u8vec2
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.u8vec3
@@ -105621,61 +148107,117 @@
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.f16vec3
 dEQP-VK.ssbo.phys.layout.instance_array_basic_type.scalar.f16vec4
 dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.std140
+dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.std140_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.std140_comp_access
+dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.std140_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.std140_instance_array
+dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.std140_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.std140_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.std140_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.std430
+dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.std430_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.std430_comp_access
+dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.std430_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.std430_instance_array
+dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.std430_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.std430_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.std430_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.scalar
+dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.scalar_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.scalar_comp_access
+dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.scalar_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.scalar_instance_array
+dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.scalar_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.scalar_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.scalar_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.relaxed_block
+dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.relaxed_block_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.relaxed_block_comp_access
+dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.relaxed_block_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.relaxed_block_instance_array
+dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.relaxed_block_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.relaxed_block_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.multi_basic_types.per_block_buffer.relaxed_block_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.std140
+dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.std140_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.std140_comp_access
+dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.std140_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.std140_instance_array
+dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.std140_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.std140_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.std140_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.std430
+dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.std430_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.std430_comp_access
+dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.std430_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.std430_instance_array
+dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.std430_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.std430_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.std430_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.scalar
+dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.scalar_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.scalar_comp_access
+dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.scalar_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.scalar_instance_array
+dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.scalar_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.scalar_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.scalar_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.relaxed_block
+dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.relaxed_block_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.relaxed_block_comp_access
+dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.relaxed_block_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.relaxed_block_instance_array
+dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.relaxed_block_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.relaxed_block_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.multi_basic_types.single_buffer.relaxed_block_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.multi_nested_struct.per_block_buffer.std140
+dEQP-VK.ssbo.phys.layout.multi_nested_struct.per_block_buffer.std140_store_cols
 dEQP-VK.ssbo.phys.layout.multi_nested_struct.per_block_buffer.std140_comp_access
+dEQP-VK.ssbo.phys.layout.multi_nested_struct.per_block_buffer.std140_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.multi_nested_struct.per_block_buffer.std140_instance_array
+dEQP-VK.ssbo.phys.layout.multi_nested_struct.per_block_buffer.std140_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.multi_nested_struct.per_block_buffer.std140_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.multi_nested_struct.per_block_buffer.std140_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.multi_nested_struct.per_block_buffer.std430
+dEQP-VK.ssbo.phys.layout.multi_nested_struct.per_block_buffer.std430_store_cols
 dEQP-VK.ssbo.phys.layout.multi_nested_struct.per_block_buffer.std430_comp_access
+dEQP-VK.ssbo.phys.layout.multi_nested_struct.per_block_buffer.std430_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.multi_nested_struct.per_block_buffer.std430_instance_array
+dEQP-VK.ssbo.phys.layout.multi_nested_struct.per_block_buffer.std430_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.multi_nested_struct.per_block_buffer.std430_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.multi_nested_struct.per_block_buffer.std430_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.multi_nested_struct.per_block_buffer.scalar
+dEQP-VK.ssbo.phys.layout.multi_nested_struct.per_block_buffer.scalar_store_cols
 dEQP-VK.ssbo.phys.layout.multi_nested_struct.per_block_buffer.scalar_comp_access
+dEQP-VK.ssbo.phys.layout.multi_nested_struct.per_block_buffer.scalar_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.multi_nested_struct.per_block_buffer.scalar_instance_array
+dEQP-VK.ssbo.phys.layout.multi_nested_struct.per_block_buffer.scalar_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.multi_nested_struct.per_block_buffer.scalar_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.multi_nested_struct.per_block_buffer.scalar_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.multi_nested_struct.single_buffer.std140
+dEQP-VK.ssbo.phys.layout.multi_nested_struct.single_buffer.std140_store_cols
 dEQP-VK.ssbo.phys.layout.multi_nested_struct.single_buffer.std140_comp_access
+dEQP-VK.ssbo.phys.layout.multi_nested_struct.single_buffer.std140_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.multi_nested_struct.single_buffer.std140_instance_array
+dEQP-VK.ssbo.phys.layout.multi_nested_struct.single_buffer.std140_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.multi_nested_struct.single_buffer.std140_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.multi_nested_struct.single_buffer.std140_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.multi_nested_struct.single_buffer.std430
+dEQP-VK.ssbo.phys.layout.multi_nested_struct.single_buffer.std430_store_cols
 dEQP-VK.ssbo.phys.layout.multi_nested_struct.single_buffer.std430_comp_access
+dEQP-VK.ssbo.phys.layout.multi_nested_struct.single_buffer.std430_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.multi_nested_struct.single_buffer.std430_instance_array
+dEQP-VK.ssbo.phys.layout.multi_nested_struct.single_buffer.std430_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.multi_nested_struct.single_buffer.std430_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.multi_nested_struct.single_buffer.std430_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.multi_nested_struct.single_buffer.scalar
+dEQP-VK.ssbo.phys.layout.multi_nested_struct.single_buffer.scalar_store_cols
 dEQP-VK.ssbo.phys.layout.multi_nested_struct.single_buffer.scalar_comp_access
+dEQP-VK.ssbo.phys.layout.multi_nested_struct.single_buffer.scalar_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.multi_nested_struct.single_buffer.scalar_instance_array
+dEQP-VK.ssbo.phys.layout.multi_nested_struct.single_buffer.scalar_instance_array_store_cols
 dEQP-VK.ssbo.phys.layout.multi_nested_struct.single_buffer.scalar_instance_array_comp_access
+dEQP-VK.ssbo.phys.layout.multi_nested_struct.single_buffer.scalar_instance_array_comp_access_store_cols
 dEQP-VK.ssbo.phys.layout.random.scalar_types.0
 dEQP-VK.ssbo.phys.layout.random.scalar_types.1
 dEQP-VK.ssbo.phys.layout.random.scalar_types.2
@@ -108882,6 +151424,22 @@
 dEQP-VK.query_pool.concurrent_queries.primary_command_buffer
 dEQP-VK.query_pool.concurrent_queries.secondary_command_buffer
 dEQP-VK.draw.concurrent.compute_and_triangle_list
+dEQP-VK.draw.indirect_draw.sequential.indirect_draw_param_count.triangle_list
+dEQP-VK.draw.indirect_draw.sequential.indirect_draw_param_count.triangle_strip
+dEQP-VK.draw.indirect_draw.sequential.indirect_draw_param_count_first_instance.triangle_list
+dEQP-VK.draw.indirect_draw.sequential.indirect_draw_param_count_first_instance.triangle_strip
+dEQP-VK.draw.indirect_draw.sequential.indirect_draw_param_count_instanced.no_first_instance.triangle_list
+dEQP-VK.draw.indirect_draw.sequential.indirect_draw_param_count_instanced.no_first_instance.triangle_strip
+dEQP-VK.draw.indirect_draw.sequential.indirect_draw_param_count_instanced.first_instance.triangle_list
+dEQP-VK.draw.indirect_draw.sequential.indirect_draw_param_count_instanced.first_instance.triangle_strip
+dEQP-VK.draw.indirect_draw.indexed.indirect_draw_param_count.triangle_list
+dEQP-VK.draw.indirect_draw.indexed.indirect_draw_param_count.triangle_strip
+dEQP-VK.draw.indirect_draw.indexed.indirect_draw_param_count_first_instance.triangle_list
+dEQP-VK.draw.indirect_draw.indexed.indirect_draw_param_count_first_instance.triangle_strip
+dEQP-VK.draw.indirect_draw.indexed.indirect_draw_param_count_instanced.no_first_instance.triangle_list
+dEQP-VK.draw.indirect_draw.indexed.indirect_draw_param_count_instanced.no_first_instance.triangle_strip
+dEQP-VK.draw.indirect_draw.indexed.indirect_draw_param_count_instanced.first_instance.triangle_list
+dEQP-VK.draw.indirect_draw.indexed.indirect_draw_param_count_instanced.first_instance.triangle_strip
 dEQP-VK.draw.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_0_multiview
 dEQP-VK.draw.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_1_multiview
 dEQP-VK.draw.instanced.draw_vk_primitive_topology_point_list_attrib_divisor_2_multiview
@@ -109002,6 +151560,23 @@
 dEQP-VK.draw.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_2_multiview
 dEQP-VK.draw.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_4_multiview
 dEQP-VK.draw.instanced.draw_indexed_indirect_vk_primitive_topology_triangle_fan_attrib_divisor_20_multiview
+dEQP-VK.draw.shader_viewport_index.fragment_shader_implicit
+dEQP-VK.draw.shader_viewport_index.fragment_shader_1
+dEQP-VK.draw.shader_viewport_index.fragment_shader_2
+dEQP-VK.draw.shader_viewport_index.fragment_shader_3
+dEQP-VK.draw.shader_viewport_index.fragment_shader_4
+dEQP-VK.draw.shader_viewport_index.fragment_shader_5
+dEQP-VK.draw.shader_viewport_index.fragment_shader_6
+dEQP-VK.draw.shader_viewport_index.fragment_shader_7
+dEQP-VK.draw.shader_viewport_index.fragment_shader_8
+dEQP-VK.draw.shader_viewport_index.fragment_shader_9
+dEQP-VK.draw.shader_viewport_index.fragment_shader_10
+dEQP-VK.draw.shader_viewport_index.fragment_shader_11
+dEQP-VK.draw.shader_viewport_index.fragment_shader_12
+dEQP-VK.draw.shader_viewport_index.fragment_shader_13
+dEQP-VK.draw.shader_viewport_index.fragment_shader_14
+dEQP-VK.draw.shader_viewport_index.fragment_shader_15
+dEQP-VK.draw.shader_viewport_index.fragment_shader_16
 dEQP-VK.draw.scissor.static_scissor_two_quads
 dEQP-VK.draw.scissor.static_scissor_two_clears
 dEQP-VK.draw.scissor.two_static_scissors_one_quad
@@ -109022,6 +151597,12 @@
 dEQP-VK.draw.scissor.16_dynamic_scissors
 dEQP-VK.draw.scissor.dynamic_scissor_two_clears
 dEQP-VK.draw.scissor.dynamic_scissor_mix
+dEQP-VK.draw.scissor.static_scissor_framebuffer_border_in
+dEQP-VK.draw.scissor.dynamic_scissor_framebuffer_border_in
+dEQP-VK.draw.scissor.static_scissor_framebuffer_border_out
+dEQP-VK.draw.scissor.dynamic_scissor_framebuffer_border_out
+dEQP-VK.draw.scissor.static_scissor_oversized
+dEQP-VK.draw.scissor.dynamic_scissor_oversized
 dEQP-VK.draw.multiple_interpolation.separate.1_sample
 dEQP-VK.draw.multiple_interpolation.separate.2_samples
 dEQP-VK.draw.multiple_interpolation.separate.4_samples
@@ -109108,6 +151689,88 @@
 dEQP-VK.draw.discard_rectangles.dynamic_discard_dynamic_scissor_exclusive_rect_4
 dEQP-VK.draw.discard_rectangles.dynamic_discard_dynamic_scissor_exclusive_rect_8
 dEQP-VK.draw.discard_rectangles.dynamic_discard_dynamic_scissor_exclusive_rect_16
+dEQP-VK.draw.explicit_vertex_parameter.smooth_samples_1
+dEQP-VK.draw.explicit_vertex_parameter.noperspective_samples_1
+dEQP-VK.draw.explicit_vertex_parameter.smooth_samples_2
+dEQP-VK.draw.explicit_vertex_parameter.noperspective_samples_2
+dEQP-VK.draw.explicit_vertex_parameter.smooth_sample_samples_2
+dEQP-VK.draw.explicit_vertex_parameter.noperspective_sample_samples_2
+dEQP-VK.draw.explicit_vertex_parameter.smooth_centroid_samples_2
+dEQP-VK.draw.explicit_vertex_parameter.noperspective_centroid_samples_2
+dEQP-VK.draw.explicit_vertex_parameter.smooth_samples_4
+dEQP-VK.draw.explicit_vertex_parameter.noperspective_samples_4
+dEQP-VK.draw.explicit_vertex_parameter.smooth_sample_samples_4
+dEQP-VK.draw.explicit_vertex_parameter.noperspective_sample_samples_4
+dEQP-VK.draw.explicit_vertex_parameter.smooth_centroid_samples_4
+dEQP-VK.draw.explicit_vertex_parameter.noperspective_centroid_samples_4
+dEQP-VK.draw.explicit_vertex_parameter.smooth_samples_8
+dEQP-VK.draw.explicit_vertex_parameter.noperspective_samples_8
+dEQP-VK.draw.explicit_vertex_parameter.smooth_sample_samples_8
+dEQP-VK.draw.explicit_vertex_parameter.noperspective_sample_samples_8
+dEQP-VK.draw.explicit_vertex_parameter.smooth_centroid_samples_8
+dEQP-VK.draw.explicit_vertex_parameter.noperspective_centroid_samples_8
+dEQP-VK.draw.explicit_vertex_parameter.smooth_samples_16
+dEQP-VK.draw.explicit_vertex_parameter.noperspective_samples_16
+dEQP-VK.draw.explicit_vertex_parameter.smooth_sample_samples_16
+dEQP-VK.draw.explicit_vertex_parameter.noperspective_sample_samples_16
+dEQP-VK.draw.explicit_vertex_parameter.smooth_centroid_samples_16
+dEQP-VK.draw.explicit_vertex_parameter.noperspective_centroid_samples_16
+dEQP-VK.draw.explicit_vertex_parameter.smooth_samples_32
+dEQP-VK.draw.explicit_vertex_parameter.noperspective_samples_32
+dEQP-VK.draw.explicit_vertex_parameter.smooth_sample_samples_32
+dEQP-VK.draw.explicit_vertex_parameter.noperspective_sample_samples_32
+dEQP-VK.draw.explicit_vertex_parameter.smooth_centroid_samples_32
+dEQP-VK.draw.explicit_vertex_parameter.noperspective_centroid_samples_32
+dEQP-VK.draw.explicit_vertex_parameter.smooth_samples_64
+dEQP-VK.draw.explicit_vertex_parameter.noperspective_samples_64
+dEQP-VK.draw.explicit_vertex_parameter.smooth_sample_samples_64
+dEQP-VK.draw.explicit_vertex_parameter.noperspective_sample_samples_64
+dEQP-VK.draw.explicit_vertex_parameter.smooth_centroid_samples_64
+dEQP-VK.draw.explicit_vertex_parameter.noperspective_centroid_samples_64
+dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-highp
+dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-highp-output-float
+dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-highp-output-vec2
+dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-lowp
+dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-lowp-output-float
+dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-lowp-output-vec2
+dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-mediump
+dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-mediump-output-float
+dEQP-VK.draw.output_location.array.b10g11r11-ufloat-pack32-mediump-output-vec2
+dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-highp
+dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-highp-output-vec2
+dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-highp-output-vec3
+dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-lowp
+dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-lowp-output-vec2
+dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-lowp-output-vec3
+dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump
+dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump-output-vec2
+dEQP-VK.draw.output_location.array.b8g8r8a8-unorm-mediump-output-vec3
+dEQP-VK.draw.output_location.array.r16g16-sfloat-highp
+dEQP-VK.draw.output_location.array.r16g16-sfloat-highp-output-float
+dEQP-VK.draw.output_location.array.r16g16-sfloat-lowp
+dEQP-VK.draw.output_location.array.r16g16-sfloat-lowp-output-float
+dEQP-VK.draw.output_location.array.r16g16-sfloat-mediump
+dEQP-VK.draw.output_location.array.r16g16-sfloat-mediump-output-float
+dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-highp
+dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-highp-output-vec2
+dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-highp-output-vec3
+dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-lowp
+dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-lowp-output-vec2
+dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-lowp-output-vec3
+dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-mediump
+dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-mediump-output-vec2
+dEQP-VK.draw.output_location.array.r32g32b32a32-sfloat-mediump-output-vec3
+dEQP-VK.draw.output_location.array.r32-sfloat-highp
+dEQP-VK.draw.output_location.array.r32-sfloat-lowp
+dEQP-VK.draw.output_location.array.r32-sfloat-mediump
+dEQP-VK.draw.output_location.array.r8g8-uint-highp
+dEQP-VK.draw.output_location.array.r8g8-uint-highp-output-uint
+dEQP-VK.draw.output_location.array.r8g8-uint-lowp
+dEQP-VK.draw.output_location.array.r8g8-uint-lowp-output-uint
+dEQP-VK.draw.output_location.array.r8g8-uint-mediump
+dEQP-VK.draw.output_location.array.r8g8-uint-mediump-output-uint
+dEQP-VK.draw.output_location.shuffle.inputs-outputs
+dEQP-VK.draw.output_location.shuffle.inputs-outputs-mod
 dEQP-VK.compute.basic.concurrent_compute
 dEQP-VK.compute.cooperative_matrix.length.float32_float32.buffer.rowmajor
 dEQP-VK.compute.cooperative_matrix.length.float32_float32.buffer.colmajor
@@ -113943,6 +156606,708 @@
 dEQP-VK.image.misaligned_cube.9
 dEQP-VK.image.misaligned_cube.10
 dEQP-VK.image.misaligned_cube.11
+dEQP-VK.image.load_store_lod.with_format.1d_array.r32g32b32a32_sfloat
+dEQP-VK.image.load_store_lod.with_format.1d_array.r32g32b32a32_sfloat_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r16g16b16a16_sfloat
+dEQP-VK.image.load_store_lod.with_format.1d_array.r16g16b16a16_sfloat_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r32_sfloat
+dEQP-VK.image.load_store_lod.with_format.1d_array.r32_sfloat_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r32g32b32a32_uint
+dEQP-VK.image.load_store_lod.with_format.1d_array.r32g32b32a32_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r16g16b16a16_uint
+dEQP-VK.image.load_store_lod.with_format.1d_array.r16g16b16a16_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r8g8b8a8_uint
+dEQP-VK.image.load_store_lod.with_format.1d_array.r8g8b8a8_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r32_uint
+dEQP-VK.image.load_store_lod.with_format.1d_array.r32_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r32g32b32a32_sint
+dEQP-VK.image.load_store_lod.with_format.1d_array.r32g32b32a32_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r16g16b16a16_sint
+dEQP-VK.image.load_store_lod.with_format.1d_array.r16g16b16a16_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r8g8b8a8_sint
+dEQP-VK.image.load_store_lod.with_format.1d_array.r8g8b8a8_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r32_sint
+dEQP-VK.image.load_store_lod.with_format.1d_array.r32_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r8g8b8a8_unorm
+dEQP-VK.image.load_store_lod.with_format.1d_array.r8g8b8a8_unorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r8g8b8a8_snorm
+dEQP-VK.image.load_store_lod.with_format.1d_array.r8g8b8a8_snorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.b10g11r11_ufloat_pack32
+dEQP-VK.image.load_store_lod.with_format.1d_array.b10g11r11_ufloat_pack32_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r32g32_sfloat
+dEQP-VK.image.load_store_lod.with_format.1d_array.r32g32_sfloat_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r16g16_sfloat
+dEQP-VK.image.load_store_lod.with_format.1d_array.r16g16_sfloat_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r16_sfloat
+dEQP-VK.image.load_store_lod.with_format.1d_array.r16_sfloat_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.a2b10g10r10_uint_pack32
+dEQP-VK.image.load_store_lod.with_format.1d_array.a2b10g10r10_uint_pack32_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r32g32_uint
+dEQP-VK.image.load_store_lod.with_format.1d_array.r32g32_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r16g16_uint
+dEQP-VK.image.load_store_lod.with_format.1d_array.r16g16_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r16_uint
+dEQP-VK.image.load_store_lod.with_format.1d_array.r16_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r8g8_uint
+dEQP-VK.image.load_store_lod.with_format.1d_array.r8g8_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r8_uint
+dEQP-VK.image.load_store_lod.with_format.1d_array.r8_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r32g32_sint
+dEQP-VK.image.load_store_lod.with_format.1d_array.r32g32_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r16g16_sint
+dEQP-VK.image.load_store_lod.with_format.1d_array.r16g16_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r16_sint
+dEQP-VK.image.load_store_lod.with_format.1d_array.r16_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r8g8_sint
+dEQP-VK.image.load_store_lod.with_format.1d_array.r8g8_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r8_sint
+dEQP-VK.image.load_store_lod.with_format.1d_array.r8_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.a2b10g10r10_unorm_pack32
+dEQP-VK.image.load_store_lod.with_format.1d_array.a2b10g10r10_unorm_pack32_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r16g16b16a16_unorm
+dEQP-VK.image.load_store_lod.with_format.1d_array.r16g16b16a16_unorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r16g16b16a16_snorm
+dEQP-VK.image.load_store_lod.with_format.1d_array.r16g16b16a16_snorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r16g16_unorm
+dEQP-VK.image.load_store_lod.with_format.1d_array.r16g16_unorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r16_unorm
+dEQP-VK.image.load_store_lod.with_format.1d_array.r16_unorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r8g8_unorm
+dEQP-VK.image.load_store_lod.with_format.1d_array.r8g8_unorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r8_unorm
+dEQP-VK.image.load_store_lod.with_format.1d_array.r8_unorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r16g16_snorm
+dEQP-VK.image.load_store_lod.with_format.1d_array.r16g16_snorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r16_snorm
+dEQP-VK.image.load_store_lod.with_format.1d_array.r16_snorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r8g8_snorm
+dEQP-VK.image.load_store_lod.with_format.1d_array.r8g8_snorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d_array.r8_snorm
+dEQP-VK.image.load_store_lod.with_format.1d_array.r8_snorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.1d.r32g32b32a32_sfloat
+dEQP-VK.image.load_store_lod.with_format.1d.r16g16b16a16_sfloat
+dEQP-VK.image.load_store_lod.with_format.1d.r32_sfloat
+dEQP-VK.image.load_store_lod.with_format.1d.r32g32b32a32_uint
+dEQP-VK.image.load_store_lod.with_format.1d.r16g16b16a16_uint
+dEQP-VK.image.load_store_lod.with_format.1d.r8g8b8a8_uint
+dEQP-VK.image.load_store_lod.with_format.1d.r32_uint
+dEQP-VK.image.load_store_lod.with_format.1d.r32g32b32a32_sint
+dEQP-VK.image.load_store_lod.with_format.1d.r16g16b16a16_sint
+dEQP-VK.image.load_store_lod.with_format.1d.r8g8b8a8_sint
+dEQP-VK.image.load_store_lod.with_format.1d.r32_sint
+dEQP-VK.image.load_store_lod.with_format.1d.r8g8b8a8_unorm
+dEQP-VK.image.load_store_lod.with_format.1d.r8g8b8a8_snorm
+dEQP-VK.image.load_store_lod.with_format.1d.b10g11r11_ufloat_pack32
+dEQP-VK.image.load_store_lod.with_format.1d.r32g32_sfloat
+dEQP-VK.image.load_store_lod.with_format.1d.r16g16_sfloat
+dEQP-VK.image.load_store_lod.with_format.1d.r16_sfloat
+dEQP-VK.image.load_store_lod.with_format.1d.a2b10g10r10_uint_pack32
+dEQP-VK.image.load_store_lod.with_format.1d.r32g32_uint
+dEQP-VK.image.load_store_lod.with_format.1d.r16g16_uint
+dEQP-VK.image.load_store_lod.with_format.1d.r16_uint
+dEQP-VK.image.load_store_lod.with_format.1d.r8g8_uint
+dEQP-VK.image.load_store_lod.with_format.1d.r8_uint
+dEQP-VK.image.load_store_lod.with_format.1d.r32g32_sint
+dEQP-VK.image.load_store_lod.with_format.1d.r16g16_sint
+dEQP-VK.image.load_store_lod.with_format.1d.r16_sint
+dEQP-VK.image.load_store_lod.with_format.1d.r8g8_sint
+dEQP-VK.image.load_store_lod.with_format.1d.r8_sint
+dEQP-VK.image.load_store_lod.with_format.1d.a2b10g10r10_unorm_pack32
+dEQP-VK.image.load_store_lod.with_format.1d.r16g16b16a16_unorm
+dEQP-VK.image.load_store_lod.with_format.1d.r16g16b16a16_snorm
+dEQP-VK.image.load_store_lod.with_format.1d.r16g16_unorm
+dEQP-VK.image.load_store_lod.with_format.1d.r16_unorm
+dEQP-VK.image.load_store_lod.with_format.1d.r8g8_unorm
+dEQP-VK.image.load_store_lod.with_format.1d.r8_unorm
+dEQP-VK.image.load_store_lod.with_format.1d.r16g16_snorm
+dEQP-VK.image.load_store_lod.with_format.1d.r16_snorm
+dEQP-VK.image.load_store_lod.with_format.1d.r8g8_snorm
+dEQP-VK.image.load_store_lod.with_format.1d.r8_snorm
+dEQP-VK.image.load_store_lod.with_format.2d.r32g32b32a32_sfloat
+dEQP-VK.image.load_store_lod.with_format.2d.r16g16b16a16_sfloat
+dEQP-VK.image.load_store_lod.with_format.2d.r32_sfloat
+dEQP-VK.image.load_store_lod.with_format.2d.r32g32b32a32_uint
+dEQP-VK.image.load_store_lod.with_format.2d.r16g16b16a16_uint
+dEQP-VK.image.load_store_lod.with_format.2d.r8g8b8a8_uint
+dEQP-VK.image.load_store_lod.with_format.2d.r32_uint
+dEQP-VK.image.load_store_lod.with_format.2d.r32g32b32a32_sint
+dEQP-VK.image.load_store_lod.with_format.2d.r16g16b16a16_sint
+dEQP-VK.image.load_store_lod.with_format.2d.r8g8b8a8_sint
+dEQP-VK.image.load_store_lod.with_format.2d.r32_sint
+dEQP-VK.image.load_store_lod.with_format.2d.r8g8b8a8_unorm
+dEQP-VK.image.load_store_lod.with_format.2d.r8g8b8a8_snorm
+dEQP-VK.image.load_store_lod.with_format.2d.b10g11r11_ufloat_pack32
+dEQP-VK.image.load_store_lod.with_format.2d.r32g32_sfloat
+dEQP-VK.image.load_store_lod.with_format.2d.r16g16_sfloat
+dEQP-VK.image.load_store_lod.with_format.2d.r16_sfloat
+dEQP-VK.image.load_store_lod.with_format.2d.a2b10g10r10_uint_pack32
+dEQP-VK.image.load_store_lod.with_format.2d.r32g32_uint
+dEQP-VK.image.load_store_lod.with_format.2d.r16g16_uint
+dEQP-VK.image.load_store_lod.with_format.2d.r16_uint
+dEQP-VK.image.load_store_lod.with_format.2d.r8g8_uint
+dEQP-VK.image.load_store_lod.with_format.2d.r8_uint
+dEQP-VK.image.load_store_lod.with_format.2d.r32g32_sint
+dEQP-VK.image.load_store_lod.with_format.2d.r16g16_sint
+dEQP-VK.image.load_store_lod.with_format.2d.r16_sint
+dEQP-VK.image.load_store_lod.with_format.2d.r8g8_sint
+dEQP-VK.image.load_store_lod.with_format.2d.r8_sint
+dEQP-VK.image.load_store_lod.with_format.2d.a2b10g10r10_unorm_pack32
+dEQP-VK.image.load_store_lod.with_format.2d.r16g16b16a16_unorm
+dEQP-VK.image.load_store_lod.with_format.2d.r16g16b16a16_snorm
+dEQP-VK.image.load_store_lod.with_format.2d.r16g16_unorm
+dEQP-VK.image.load_store_lod.with_format.2d.r16_unorm
+dEQP-VK.image.load_store_lod.with_format.2d.r8g8_unorm
+dEQP-VK.image.load_store_lod.with_format.2d.r8_unorm
+dEQP-VK.image.load_store_lod.with_format.2d.r16g16_snorm
+dEQP-VK.image.load_store_lod.with_format.2d.r16_snorm
+dEQP-VK.image.load_store_lod.with_format.2d.r8g8_snorm
+dEQP-VK.image.load_store_lod.with_format.2d.r8_snorm
+dEQP-VK.image.load_store_lod.with_format.2d_array.r32g32b32a32_sfloat
+dEQP-VK.image.load_store_lod.with_format.2d_array.r32g32b32a32_sfloat_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16b16a16_sfloat
+dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16b16a16_sfloat_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r32_sfloat
+dEQP-VK.image.load_store_lod.with_format.2d_array.r32_sfloat_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r32g32b32a32_uint
+dEQP-VK.image.load_store_lod.with_format.2d_array.r32g32b32a32_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16b16a16_uint
+dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16b16a16_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8b8a8_uint
+dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8b8a8_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r32_uint
+dEQP-VK.image.load_store_lod.with_format.2d_array.r32_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r32g32b32a32_sint
+dEQP-VK.image.load_store_lod.with_format.2d_array.r32g32b32a32_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16b16a16_sint
+dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16b16a16_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8b8a8_sint
+dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8b8a8_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r32_sint
+dEQP-VK.image.load_store_lod.with_format.2d_array.r32_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8b8a8_unorm
+dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8b8a8_unorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8b8a8_snorm
+dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8b8a8_snorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.b10g11r11_ufloat_pack32
+dEQP-VK.image.load_store_lod.with_format.2d_array.b10g11r11_ufloat_pack32_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r32g32_sfloat
+dEQP-VK.image.load_store_lod.with_format.2d_array.r32g32_sfloat_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16_sfloat
+dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16_sfloat_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r16_sfloat
+dEQP-VK.image.load_store_lod.with_format.2d_array.r16_sfloat_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.a2b10g10r10_uint_pack32
+dEQP-VK.image.load_store_lod.with_format.2d_array.a2b10g10r10_uint_pack32_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r32g32_uint
+dEQP-VK.image.load_store_lod.with_format.2d_array.r32g32_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16_uint
+dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r16_uint
+dEQP-VK.image.load_store_lod.with_format.2d_array.r16_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8_uint
+dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r8_uint
+dEQP-VK.image.load_store_lod.with_format.2d_array.r8_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r32g32_sint
+dEQP-VK.image.load_store_lod.with_format.2d_array.r32g32_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16_sint
+dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r16_sint
+dEQP-VK.image.load_store_lod.with_format.2d_array.r16_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8_sint
+dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r8_sint
+dEQP-VK.image.load_store_lod.with_format.2d_array.r8_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.a2b10g10r10_unorm_pack32
+dEQP-VK.image.load_store_lod.with_format.2d_array.a2b10g10r10_unorm_pack32_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16b16a16_unorm
+dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16b16a16_unorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16b16a16_snorm
+dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16b16a16_snorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16_unorm
+dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16_unorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r16_unorm
+dEQP-VK.image.load_store_lod.with_format.2d_array.r16_unorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8_unorm
+dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8_unorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r8_unorm
+dEQP-VK.image.load_store_lod.with_format.2d_array.r8_unorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16_snorm
+dEQP-VK.image.load_store_lod.with_format.2d_array.r16g16_snorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r16_snorm
+dEQP-VK.image.load_store_lod.with_format.2d_array.r16_snorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8_snorm
+dEQP-VK.image.load_store_lod.with_format.2d_array.r8g8_snorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.2d_array.r8_snorm
+dEQP-VK.image.load_store_lod.with_format.2d_array.r8_snorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.3d.r32g32b32a32_sfloat
+dEQP-VK.image.load_store_lod.with_format.3d.r16g16b16a16_sfloat
+dEQP-VK.image.load_store_lod.with_format.3d.r32_sfloat
+dEQP-VK.image.load_store_lod.with_format.3d.r32g32b32a32_uint
+dEQP-VK.image.load_store_lod.with_format.3d.r16g16b16a16_uint
+dEQP-VK.image.load_store_lod.with_format.3d.r8g8b8a8_uint
+dEQP-VK.image.load_store_lod.with_format.3d.r32_uint
+dEQP-VK.image.load_store_lod.with_format.3d.r32g32b32a32_sint
+dEQP-VK.image.load_store_lod.with_format.3d.r16g16b16a16_sint
+dEQP-VK.image.load_store_lod.with_format.3d.r8g8b8a8_sint
+dEQP-VK.image.load_store_lod.with_format.3d.r32_sint
+dEQP-VK.image.load_store_lod.with_format.3d.r8g8b8a8_unorm
+dEQP-VK.image.load_store_lod.with_format.3d.r8g8b8a8_snorm
+dEQP-VK.image.load_store_lod.with_format.3d.b10g11r11_ufloat_pack32
+dEQP-VK.image.load_store_lod.with_format.3d.r32g32_sfloat
+dEQP-VK.image.load_store_lod.with_format.3d.r16g16_sfloat
+dEQP-VK.image.load_store_lod.with_format.3d.r16_sfloat
+dEQP-VK.image.load_store_lod.with_format.3d.a2b10g10r10_uint_pack32
+dEQP-VK.image.load_store_lod.with_format.3d.r32g32_uint
+dEQP-VK.image.load_store_lod.with_format.3d.r16g16_uint
+dEQP-VK.image.load_store_lod.with_format.3d.r16_uint
+dEQP-VK.image.load_store_lod.with_format.3d.r8g8_uint
+dEQP-VK.image.load_store_lod.with_format.3d.r8_uint
+dEQP-VK.image.load_store_lod.with_format.3d.r32g32_sint
+dEQP-VK.image.load_store_lod.with_format.3d.r16g16_sint
+dEQP-VK.image.load_store_lod.with_format.3d.r16_sint
+dEQP-VK.image.load_store_lod.with_format.3d.r8g8_sint
+dEQP-VK.image.load_store_lod.with_format.3d.r8_sint
+dEQP-VK.image.load_store_lod.with_format.3d.a2b10g10r10_unorm_pack32
+dEQP-VK.image.load_store_lod.with_format.3d.r16g16b16a16_unorm
+dEQP-VK.image.load_store_lod.with_format.3d.r16g16b16a16_snorm
+dEQP-VK.image.load_store_lod.with_format.3d.r16g16_unorm
+dEQP-VK.image.load_store_lod.with_format.3d.r16_unorm
+dEQP-VK.image.load_store_lod.with_format.3d.r8g8_unorm
+dEQP-VK.image.load_store_lod.with_format.3d.r8_unorm
+dEQP-VK.image.load_store_lod.with_format.3d.r16g16_snorm
+dEQP-VK.image.load_store_lod.with_format.3d.r16_snorm
+dEQP-VK.image.load_store_lod.with_format.3d.r8g8_snorm
+dEQP-VK.image.load_store_lod.with_format.3d.r8_snorm
+dEQP-VK.image.load_store_lod.with_format.cube.r32g32b32a32_sfloat
+dEQP-VK.image.load_store_lod.with_format.cube.r32g32b32a32_sfloat_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r16g16b16a16_sfloat
+dEQP-VK.image.load_store_lod.with_format.cube.r16g16b16a16_sfloat_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r32_sfloat
+dEQP-VK.image.load_store_lod.with_format.cube.r32_sfloat_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r32g32b32a32_uint
+dEQP-VK.image.load_store_lod.with_format.cube.r32g32b32a32_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r16g16b16a16_uint
+dEQP-VK.image.load_store_lod.with_format.cube.r16g16b16a16_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r8g8b8a8_uint
+dEQP-VK.image.load_store_lod.with_format.cube.r8g8b8a8_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r32_uint
+dEQP-VK.image.load_store_lod.with_format.cube.r32_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r32g32b32a32_sint
+dEQP-VK.image.load_store_lod.with_format.cube.r32g32b32a32_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r16g16b16a16_sint
+dEQP-VK.image.load_store_lod.with_format.cube.r16g16b16a16_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r8g8b8a8_sint
+dEQP-VK.image.load_store_lod.with_format.cube.r8g8b8a8_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r32_sint
+dEQP-VK.image.load_store_lod.with_format.cube.r32_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r8g8b8a8_unorm
+dEQP-VK.image.load_store_lod.with_format.cube.r8g8b8a8_unorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r8g8b8a8_snorm
+dEQP-VK.image.load_store_lod.with_format.cube.r8g8b8a8_snorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.b10g11r11_ufloat_pack32
+dEQP-VK.image.load_store_lod.with_format.cube.b10g11r11_ufloat_pack32_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r32g32_sfloat
+dEQP-VK.image.load_store_lod.with_format.cube.r32g32_sfloat_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r16g16_sfloat
+dEQP-VK.image.load_store_lod.with_format.cube.r16g16_sfloat_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r16_sfloat
+dEQP-VK.image.load_store_lod.with_format.cube.r16_sfloat_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.a2b10g10r10_uint_pack32
+dEQP-VK.image.load_store_lod.with_format.cube.a2b10g10r10_uint_pack32_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r32g32_uint
+dEQP-VK.image.load_store_lod.with_format.cube.r32g32_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r16g16_uint
+dEQP-VK.image.load_store_lod.with_format.cube.r16g16_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r16_uint
+dEQP-VK.image.load_store_lod.with_format.cube.r16_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r8g8_uint
+dEQP-VK.image.load_store_lod.with_format.cube.r8g8_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r8_uint
+dEQP-VK.image.load_store_lod.with_format.cube.r8_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r32g32_sint
+dEQP-VK.image.load_store_lod.with_format.cube.r32g32_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r16g16_sint
+dEQP-VK.image.load_store_lod.with_format.cube.r16g16_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r16_sint
+dEQP-VK.image.load_store_lod.with_format.cube.r16_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r8g8_sint
+dEQP-VK.image.load_store_lod.with_format.cube.r8g8_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r8_sint
+dEQP-VK.image.load_store_lod.with_format.cube.r8_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.a2b10g10r10_unorm_pack32
+dEQP-VK.image.load_store_lod.with_format.cube.a2b10g10r10_unorm_pack32_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r16g16b16a16_unorm
+dEQP-VK.image.load_store_lod.with_format.cube.r16g16b16a16_unorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r16g16b16a16_snorm
+dEQP-VK.image.load_store_lod.with_format.cube.r16g16b16a16_snorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r16g16_unorm
+dEQP-VK.image.load_store_lod.with_format.cube.r16g16_unorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r16_unorm
+dEQP-VK.image.load_store_lod.with_format.cube.r16_unorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r8g8_unorm
+dEQP-VK.image.load_store_lod.with_format.cube.r8g8_unorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r8_unorm
+dEQP-VK.image.load_store_lod.with_format.cube.r8_unorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r16g16_snorm
+dEQP-VK.image.load_store_lod.with_format.cube.r16g16_snorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r16_snorm
+dEQP-VK.image.load_store_lod.with_format.cube.r16_snorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r8g8_snorm
+dEQP-VK.image.load_store_lod.with_format.cube.r8g8_snorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube.r8_snorm
+dEQP-VK.image.load_store_lod.with_format.cube.r8_snorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r32g32b32a32_sfloat
+dEQP-VK.image.load_store_lod.with_format.cube_array.r32g32b32a32_sfloat_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16b16a16_sfloat
+dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16b16a16_sfloat_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r32_sfloat
+dEQP-VK.image.load_store_lod.with_format.cube_array.r32_sfloat_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r32g32b32a32_uint
+dEQP-VK.image.load_store_lod.with_format.cube_array.r32g32b32a32_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16b16a16_uint
+dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16b16a16_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8b8a8_uint
+dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8b8a8_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r32_uint
+dEQP-VK.image.load_store_lod.with_format.cube_array.r32_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r32g32b32a32_sint
+dEQP-VK.image.load_store_lod.with_format.cube_array.r32g32b32a32_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16b16a16_sint
+dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16b16a16_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8b8a8_sint
+dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8b8a8_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r32_sint
+dEQP-VK.image.load_store_lod.with_format.cube_array.r32_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8b8a8_unorm
+dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8b8a8_unorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8b8a8_snorm
+dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8b8a8_snorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.b10g11r11_ufloat_pack32
+dEQP-VK.image.load_store_lod.with_format.cube_array.b10g11r11_ufloat_pack32_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r32g32_sfloat
+dEQP-VK.image.load_store_lod.with_format.cube_array.r32g32_sfloat_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16_sfloat
+dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16_sfloat_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r16_sfloat
+dEQP-VK.image.load_store_lod.with_format.cube_array.r16_sfloat_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.a2b10g10r10_uint_pack32
+dEQP-VK.image.load_store_lod.with_format.cube_array.a2b10g10r10_uint_pack32_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r32g32_uint
+dEQP-VK.image.load_store_lod.with_format.cube_array.r32g32_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16_uint
+dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r16_uint
+dEQP-VK.image.load_store_lod.with_format.cube_array.r16_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8_uint
+dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r8_uint
+dEQP-VK.image.load_store_lod.with_format.cube_array.r8_uint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r32g32_sint
+dEQP-VK.image.load_store_lod.with_format.cube_array.r32g32_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16_sint
+dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r16_sint
+dEQP-VK.image.load_store_lod.with_format.cube_array.r16_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8_sint
+dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r8_sint
+dEQP-VK.image.load_store_lod.with_format.cube_array.r8_sint_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.a2b10g10r10_unorm_pack32
+dEQP-VK.image.load_store_lod.with_format.cube_array.a2b10g10r10_unorm_pack32_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16b16a16_unorm
+dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16b16a16_unorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16b16a16_snorm
+dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16b16a16_snorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16_unorm
+dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16_unorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r16_unorm
+dEQP-VK.image.load_store_lod.with_format.cube_array.r16_unorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8_unorm
+dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8_unorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r8_unorm
+dEQP-VK.image.load_store_lod.with_format.cube_array.r8_unorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16_snorm
+dEQP-VK.image.load_store_lod.with_format.cube_array.r16g16_snorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r16_snorm
+dEQP-VK.image.load_store_lod.with_format.cube_array.r16_snorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8_snorm
+dEQP-VK.image.load_store_lod.with_format.cube_array.r8g8_snorm_single_layer
+dEQP-VK.image.load_store_lod.with_format.cube_array.r8_snorm
+dEQP-VK.image.load_store_lod.with_format.cube_array.r8_snorm_single_layer
+dEQP-VK.image.load_store_lod.without_format.1d_array.r32g32b32a32_sfloat
+dEQP-VK.image.load_store_lod.without_format.1d_array.r16g16b16a16_sfloat
+dEQP-VK.image.load_store_lod.without_format.1d_array.r32_sfloat
+dEQP-VK.image.load_store_lod.without_format.1d_array.r32g32b32a32_uint
+dEQP-VK.image.load_store_lod.without_format.1d_array.r16g16b16a16_uint
+dEQP-VK.image.load_store_lod.without_format.1d_array.r8g8b8a8_uint
+dEQP-VK.image.load_store_lod.without_format.1d_array.r32_uint
+dEQP-VK.image.load_store_lod.without_format.1d_array.r32g32b32a32_sint
+dEQP-VK.image.load_store_lod.without_format.1d_array.r16g16b16a16_sint
+dEQP-VK.image.load_store_lod.without_format.1d_array.r8g8b8a8_sint
+dEQP-VK.image.load_store_lod.without_format.1d_array.r32_sint
+dEQP-VK.image.load_store_lod.without_format.1d_array.r8g8b8a8_unorm
+dEQP-VK.image.load_store_lod.without_format.1d_array.r8g8b8a8_snorm
+dEQP-VK.image.load_store_lod.without_format.1d_array.b10g11r11_ufloat_pack32
+dEQP-VK.image.load_store_lod.without_format.1d_array.r32g32_sfloat
+dEQP-VK.image.load_store_lod.without_format.1d_array.r16g16_sfloat
+dEQP-VK.image.load_store_lod.without_format.1d_array.r16_sfloat
+dEQP-VK.image.load_store_lod.without_format.1d_array.a2b10g10r10_uint_pack32
+dEQP-VK.image.load_store_lod.without_format.1d_array.r32g32_uint
+dEQP-VK.image.load_store_lod.without_format.1d_array.r16g16_uint
+dEQP-VK.image.load_store_lod.without_format.1d_array.r16_uint
+dEQP-VK.image.load_store_lod.without_format.1d_array.r8g8_uint
+dEQP-VK.image.load_store_lod.without_format.1d_array.r8_uint
+dEQP-VK.image.load_store_lod.without_format.1d_array.r32g32_sint
+dEQP-VK.image.load_store_lod.without_format.1d_array.r16g16_sint
+dEQP-VK.image.load_store_lod.without_format.1d_array.r16_sint
+dEQP-VK.image.load_store_lod.without_format.1d_array.r8g8_sint
+dEQP-VK.image.load_store_lod.without_format.1d_array.r8_sint
+dEQP-VK.image.load_store_lod.without_format.1d_array.a2b10g10r10_unorm_pack32
+dEQP-VK.image.load_store_lod.without_format.1d_array.r16g16b16a16_unorm
+dEQP-VK.image.load_store_lod.without_format.1d_array.r16g16b16a16_snorm
+dEQP-VK.image.load_store_lod.without_format.1d_array.r16g16_unorm
+dEQP-VK.image.load_store_lod.without_format.1d_array.r16_unorm
+dEQP-VK.image.load_store_lod.without_format.1d_array.r8g8_unorm
+dEQP-VK.image.load_store_lod.without_format.1d_array.r8_unorm
+dEQP-VK.image.load_store_lod.without_format.1d_array.r16g16_snorm
+dEQP-VK.image.load_store_lod.without_format.1d_array.r16_snorm
+dEQP-VK.image.load_store_lod.without_format.1d_array.r8g8_snorm
+dEQP-VK.image.load_store_lod.without_format.1d_array.r8_snorm
+dEQP-VK.image.load_store_lod.without_format.1d.r32g32b32a32_sfloat
+dEQP-VK.image.load_store_lod.without_format.1d.r16g16b16a16_sfloat
+dEQP-VK.image.load_store_lod.without_format.1d.r32_sfloat
+dEQP-VK.image.load_store_lod.without_format.1d.r32g32b32a32_uint
+dEQP-VK.image.load_store_lod.without_format.1d.r16g16b16a16_uint
+dEQP-VK.image.load_store_lod.without_format.1d.r8g8b8a8_uint
+dEQP-VK.image.load_store_lod.without_format.1d.r32_uint
+dEQP-VK.image.load_store_lod.without_format.1d.r32g32b32a32_sint
+dEQP-VK.image.load_store_lod.without_format.1d.r16g16b16a16_sint
+dEQP-VK.image.load_store_lod.without_format.1d.r8g8b8a8_sint
+dEQP-VK.image.load_store_lod.without_format.1d.r32_sint
+dEQP-VK.image.load_store_lod.without_format.1d.r8g8b8a8_unorm
+dEQP-VK.image.load_store_lod.without_format.1d.r8g8b8a8_snorm
+dEQP-VK.image.load_store_lod.without_format.1d.b10g11r11_ufloat_pack32
+dEQP-VK.image.load_store_lod.without_format.1d.r32g32_sfloat
+dEQP-VK.image.load_store_lod.without_format.1d.r16g16_sfloat
+dEQP-VK.image.load_store_lod.without_format.1d.r16_sfloat
+dEQP-VK.image.load_store_lod.without_format.1d.a2b10g10r10_uint_pack32
+dEQP-VK.image.load_store_lod.without_format.1d.r32g32_uint
+dEQP-VK.image.load_store_lod.without_format.1d.r16g16_uint
+dEQP-VK.image.load_store_lod.without_format.1d.r16_uint
+dEQP-VK.image.load_store_lod.without_format.1d.r8g8_uint
+dEQP-VK.image.load_store_lod.without_format.1d.r8_uint
+dEQP-VK.image.load_store_lod.without_format.1d.r32g32_sint
+dEQP-VK.image.load_store_lod.without_format.1d.r16g16_sint
+dEQP-VK.image.load_store_lod.without_format.1d.r16_sint
+dEQP-VK.image.load_store_lod.without_format.1d.r8g8_sint
+dEQP-VK.image.load_store_lod.without_format.1d.r8_sint
+dEQP-VK.image.load_store_lod.without_format.1d.a2b10g10r10_unorm_pack32
+dEQP-VK.image.load_store_lod.without_format.1d.r16g16b16a16_unorm
+dEQP-VK.image.load_store_lod.without_format.1d.r16g16b16a16_snorm
+dEQP-VK.image.load_store_lod.without_format.1d.r16g16_unorm
+dEQP-VK.image.load_store_lod.without_format.1d.r16_unorm
+dEQP-VK.image.load_store_lod.without_format.1d.r8g8_unorm
+dEQP-VK.image.load_store_lod.without_format.1d.r8_unorm
+dEQP-VK.image.load_store_lod.without_format.1d.r16g16_snorm
+dEQP-VK.image.load_store_lod.without_format.1d.r16_snorm
+dEQP-VK.image.load_store_lod.without_format.1d.r8g8_snorm
+dEQP-VK.image.load_store_lod.without_format.1d.r8_snorm
+dEQP-VK.image.load_store_lod.without_format.2d.r32g32b32a32_sfloat
+dEQP-VK.image.load_store_lod.without_format.2d.r16g16b16a16_sfloat
+dEQP-VK.image.load_store_lod.without_format.2d.r32_sfloat
+dEQP-VK.image.load_store_lod.without_format.2d.r32g32b32a32_uint
+dEQP-VK.image.load_store_lod.without_format.2d.r16g16b16a16_uint
+dEQP-VK.image.load_store_lod.without_format.2d.r8g8b8a8_uint
+dEQP-VK.image.load_store_lod.without_format.2d.r32_uint
+dEQP-VK.image.load_store_lod.without_format.2d.r32g32b32a32_sint
+dEQP-VK.image.load_store_lod.without_format.2d.r16g16b16a16_sint
+dEQP-VK.image.load_store_lod.without_format.2d.r8g8b8a8_sint
+dEQP-VK.image.load_store_lod.without_format.2d.r32_sint
+dEQP-VK.image.load_store_lod.without_format.2d.r8g8b8a8_unorm
+dEQP-VK.image.load_store_lod.without_format.2d.r8g8b8a8_snorm
+dEQP-VK.image.load_store_lod.without_format.2d.b10g11r11_ufloat_pack32
+dEQP-VK.image.load_store_lod.without_format.2d.r32g32_sfloat
+dEQP-VK.image.load_store_lod.without_format.2d.r16g16_sfloat
+dEQP-VK.image.load_store_lod.without_format.2d.r16_sfloat
+dEQP-VK.image.load_store_lod.without_format.2d.a2b10g10r10_uint_pack32
+dEQP-VK.image.load_store_lod.without_format.2d.r32g32_uint
+dEQP-VK.image.load_store_lod.without_format.2d.r16g16_uint
+dEQP-VK.image.load_store_lod.without_format.2d.r16_uint
+dEQP-VK.image.load_store_lod.without_format.2d.r8g8_uint
+dEQP-VK.image.load_store_lod.without_format.2d.r8_uint
+dEQP-VK.image.load_store_lod.without_format.2d.r32g32_sint
+dEQP-VK.image.load_store_lod.without_format.2d.r16g16_sint
+dEQP-VK.image.load_store_lod.without_format.2d.r16_sint
+dEQP-VK.image.load_store_lod.without_format.2d.r8g8_sint
+dEQP-VK.image.load_store_lod.without_format.2d.r8_sint
+dEQP-VK.image.load_store_lod.without_format.2d.a2b10g10r10_unorm_pack32
+dEQP-VK.image.load_store_lod.without_format.2d.r16g16b16a16_unorm
+dEQP-VK.image.load_store_lod.without_format.2d.r16g16b16a16_snorm
+dEQP-VK.image.load_store_lod.without_format.2d.r16g16_unorm
+dEQP-VK.image.load_store_lod.without_format.2d.r16_unorm
+dEQP-VK.image.load_store_lod.without_format.2d.r8g8_unorm
+dEQP-VK.image.load_store_lod.without_format.2d.r8_unorm
+dEQP-VK.image.load_store_lod.without_format.2d.r16g16_snorm
+dEQP-VK.image.load_store_lod.without_format.2d.r16_snorm
+dEQP-VK.image.load_store_lod.without_format.2d.r8g8_snorm
+dEQP-VK.image.load_store_lod.without_format.2d.r8_snorm
+dEQP-VK.image.load_store_lod.without_format.2d_array.r32g32b32a32_sfloat
+dEQP-VK.image.load_store_lod.without_format.2d_array.r16g16b16a16_sfloat
+dEQP-VK.image.load_store_lod.without_format.2d_array.r32_sfloat
+dEQP-VK.image.load_store_lod.without_format.2d_array.r32g32b32a32_uint
+dEQP-VK.image.load_store_lod.without_format.2d_array.r16g16b16a16_uint
+dEQP-VK.image.load_store_lod.without_format.2d_array.r8g8b8a8_uint
+dEQP-VK.image.load_store_lod.without_format.2d_array.r32_uint
+dEQP-VK.image.load_store_lod.without_format.2d_array.r32g32b32a32_sint
+dEQP-VK.image.load_store_lod.without_format.2d_array.r16g16b16a16_sint
+dEQP-VK.image.load_store_lod.without_format.2d_array.r8g8b8a8_sint
+dEQP-VK.image.load_store_lod.without_format.2d_array.r32_sint
+dEQP-VK.image.load_store_lod.without_format.2d_array.r8g8b8a8_unorm
+dEQP-VK.image.load_store_lod.without_format.2d_array.r8g8b8a8_snorm
+dEQP-VK.image.load_store_lod.without_format.2d_array.b10g11r11_ufloat_pack32
+dEQP-VK.image.load_store_lod.without_format.2d_array.r32g32_sfloat
+dEQP-VK.image.load_store_lod.without_format.2d_array.r16g16_sfloat
+dEQP-VK.image.load_store_lod.without_format.2d_array.r16_sfloat
+dEQP-VK.image.load_store_lod.without_format.2d_array.a2b10g10r10_uint_pack32
+dEQP-VK.image.load_store_lod.without_format.2d_array.r32g32_uint
+dEQP-VK.image.load_store_lod.without_format.2d_array.r16g16_uint
+dEQP-VK.image.load_store_lod.without_format.2d_array.r16_uint
+dEQP-VK.image.load_store_lod.without_format.2d_array.r8g8_uint
+dEQP-VK.image.load_store_lod.without_format.2d_array.r8_uint
+dEQP-VK.image.load_store_lod.without_format.2d_array.r32g32_sint
+dEQP-VK.image.load_store_lod.without_format.2d_array.r16g16_sint
+dEQP-VK.image.load_store_lod.without_format.2d_array.r16_sint
+dEQP-VK.image.load_store_lod.without_format.2d_array.r8g8_sint
+dEQP-VK.image.load_store_lod.without_format.2d_array.r8_sint
+dEQP-VK.image.load_store_lod.without_format.2d_array.a2b10g10r10_unorm_pack32
+dEQP-VK.image.load_store_lod.without_format.2d_array.r16g16b16a16_unorm
+dEQP-VK.image.load_store_lod.without_format.2d_array.r16g16b16a16_snorm
+dEQP-VK.image.load_store_lod.without_format.2d_array.r16g16_unorm
+dEQP-VK.image.load_store_lod.without_format.2d_array.r16_unorm
+dEQP-VK.image.load_store_lod.without_format.2d_array.r8g8_unorm
+dEQP-VK.image.load_store_lod.without_format.2d_array.r8_unorm
+dEQP-VK.image.load_store_lod.without_format.2d_array.r16g16_snorm
+dEQP-VK.image.load_store_lod.without_format.2d_array.r16_snorm
+dEQP-VK.image.load_store_lod.without_format.2d_array.r8g8_snorm
+dEQP-VK.image.load_store_lod.without_format.2d_array.r8_snorm
+dEQP-VK.image.load_store_lod.without_format.3d.r32g32b32a32_sfloat
+dEQP-VK.image.load_store_lod.without_format.3d.r16g16b16a16_sfloat
+dEQP-VK.image.load_store_lod.without_format.3d.r32_sfloat
+dEQP-VK.image.load_store_lod.without_format.3d.r32g32b32a32_uint
+dEQP-VK.image.load_store_lod.without_format.3d.r16g16b16a16_uint
+dEQP-VK.image.load_store_lod.without_format.3d.r8g8b8a8_uint
+dEQP-VK.image.load_store_lod.without_format.3d.r32_uint
+dEQP-VK.image.load_store_lod.without_format.3d.r32g32b32a32_sint
+dEQP-VK.image.load_store_lod.without_format.3d.r16g16b16a16_sint
+dEQP-VK.image.load_store_lod.without_format.3d.r8g8b8a8_sint
+dEQP-VK.image.load_store_lod.without_format.3d.r32_sint
+dEQP-VK.image.load_store_lod.without_format.3d.r8g8b8a8_unorm
+dEQP-VK.image.load_store_lod.without_format.3d.r8g8b8a8_snorm
+dEQP-VK.image.load_store_lod.without_format.3d.b10g11r11_ufloat_pack32
+dEQP-VK.image.load_store_lod.without_format.3d.r32g32_sfloat
+dEQP-VK.image.load_store_lod.without_format.3d.r16g16_sfloat
+dEQP-VK.image.load_store_lod.without_format.3d.r16_sfloat
+dEQP-VK.image.load_store_lod.without_format.3d.a2b10g10r10_uint_pack32
+dEQP-VK.image.load_store_lod.without_format.3d.r32g32_uint
+dEQP-VK.image.load_store_lod.without_format.3d.r16g16_uint
+dEQP-VK.image.load_store_lod.without_format.3d.r16_uint
+dEQP-VK.image.load_store_lod.without_format.3d.r8g8_uint
+dEQP-VK.image.load_store_lod.without_format.3d.r8_uint
+dEQP-VK.image.load_store_lod.without_format.3d.r32g32_sint
+dEQP-VK.image.load_store_lod.without_format.3d.r16g16_sint
+dEQP-VK.image.load_store_lod.without_format.3d.r16_sint
+dEQP-VK.image.load_store_lod.without_format.3d.r8g8_sint
+dEQP-VK.image.load_store_lod.without_format.3d.r8_sint
+dEQP-VK.image.load_store_lod.without_format.3d.a2b10g10r10_unorm_pack32
+dEQP-VK.image.load_store_lod.without_format.3d.r16g16b16a16_unorm
+dEQP-VK.image.load_store_lod.without_format.3d.r16g16b16a16_snorm
+dEQP-VK.image.load_store_lod.without_format.3d.r16g16_unorm
+dEQP-VK.image.load_store_lod.without_format.3d.r16_unorm
+dEQP-VK.image.load_store_lod.without_format.3d.r8g8_unorm
+dEQP-VK.image.load_store_lod.without_format.3d.r8_unorm
+dEQP-VK.image.load_store_lod.without_format.3d.r16g16_snorm
+dEQP-VK.image.load_store_lod.without_format.3d.r16_snorm
+dEQP-VK.image.load_store_lod.without_format.3d.r8g8_snorm
+dEQP-VK.image.load_store_lod.without_format.3d.r8_snorm
+dEQP-VK.image.load_store_lod.without_format.cube.r32g32b32a32_sfloat
+dEQP-VK.image.load_store_lod.without_format.cube.r16g16b16a16_sfloat
+dEQP-VK.image.load_store_lod.without_format.cube.r32_sfloat
+dEQP-VK.image.load_store_lod.without_format.cube.r32g32b32a32_uint
+dEQP-VK.image.load_store_lod.without_format.cube.r16g16b16a16_uint
+dEQP-VK.image.load_store_lod.without_format.cube.r8g8b8a8_uint
+dEQP-VK.image.load_store_lod.without_format.cube.r32_uint
+dEQP-VK.image.load_store_lod.without_format.cube.r32g32b32a32_sint
+dEQP-VK.image.load_store_lod.without_format.cube.r16g16b16a16_sint
+dEQP-VK.image.load_store_lod.without_format.cube.r8g8b8a8_sint
+dEQP-VK.image.load_store_lod.without_format.cube.r32_sint
+dEQP-VK.image.load_store_lod.without_format.cube.r8g8b8a8_unorm
+dEQP-VK.image.load_store_lod.without_format.cube.r8g8b8a8_snorm
+dEQP-VK.image.load_store_lod.without_format.cube.b10g11r11_ufloat_pack32
+dEQP-VK.image.load_store_lod.without_format.cube.r32g32_sfloat
+dEQP-VK.image.load_store_lod.without_format.cube.r16g16_sfloat
+dEQP-VK.image.load_store_lod.without_format.cube.r16_sfloat
+dEQP-VK.image.load_store_lod.without_format.cube.a2b10g10r10_uint_pack32
+dEQP-VK.image.load_store_lod.without_format.cube.r32g32_uint
+dEQP-VK.image.load_store_lod.without_format.cube.r16g16_uint
+dEQP-VK.image.load_store_lod.without_format.cube.r16_uint
+dEQP-VK.image.load_store_lod.without_format.cube.r8g8_uint
+dEQP-VK.image.load_store_lod.without_format.cube.r8_uint
+dEQP-VK.image.load_store_lod.without_format.cube.r32g32_sint
+dEQP-VK.image.load_store_lod.without_format.cube.r16g16_sint
+dEQP-VK.image.load_store_lod.without_format.cube.r16_sint
+dEQP-VK.image.load_store_lod.without_format.cube.r8g8_sint
+dEQP-VK.image.load_store_lod.without_format.cube.r8_sint
+dEQP-VK.image.load_store_lod.without_format.cube.a2b10g10r10_unorm_pack32
+dEQP-VK.image.load_store_lod.without_format.cube.r16g16b16a16_unorm
+dEQP-VK.image.load_store_lod.without_format.cube.r16g16b16a16_snorm
+dEQP-VK.image.load_store_lod.without_format.cube.r16g16_unorm
+dEQP-VK.image.load_store_lod.without_format.cube.r16_unorm
+dEQP-VK.image.load_store_lod.without_format.cube.r8g8_unorm
+dEQP-VK.image.load_store_lod.without_format.cube.r8_unorm
+dEQP-VK.image.load_store_lod.without_format.cube.r16g16_snorm
+dEQP-VK.image.load_store_lod.without_format.cube.r16_snorm
+dEQP-VK.image.load_store_lod.without_format.cube.r8g8_snorm
+dEQP-VK.image.load_store_lod.without_format.cube.r8_snorm
+dEQP-VK.image.load_store_lod.without_format.cube_array.r32g32b32a32_sfloat
+dEQP-VK.image.load_store_lod.without_format.cube_array.r16g16b16a16_sfloat
+dEQP-VK.image.load_store_lod.without_format.cube_array.r32_sfloat
+dEQP-VK.image.load_store_lod.without_format.cube_array.r32g32b32a32_uint
+dEQP-VK.image.load_store_lod.without_format.cube_array.r16g16b16a16_uint
+dEQP-VK.image.load_store_lod.without_format.cube_array.r8g8b8a8_uint
+dEQP-VK.image.load_store_lod.without_format.cube_array.r32_uint
+dEQP-VK.image.load_store_lod.without_format.cube_array.r32g32b32a32_sint
+dEQP-VK.image.load_store_lod.without_format.cube_array.r16g16b16a16_sint
+dEQP-VK.image.load_store_lod.without_format.cube_array.r8g8b8a8_sint
+dEQP-VK.image.load_store_lod.without_format.cube_array.r32_sint
+dEQP-VK.image.load_store_lod.without_format.cube_array.r8g8b8a8_unorm
+dEQP-VK.image.load_store_lod.without_format.cube_array.r8g8b8a8_snorm
+dEQP-VK.image.load_store_lod.without_format.cube_array.b10g11r11_ufloat_pack32
+dEQP-VK.image.load_store_lod.without_format.cube_array.r32g32_sfloat
+dEQP-VK.image.load_store_lod.without_format.cube_array.r16g16_sfloat
+dEQP-VK.image.load_store_lod.without_format.cube_array.r16_sfloat
+dEQP-VK.image.load_store_lod.without_format.cube_array.a2b10g10r10_uint_pack32
+dEQP-VK.image.load_store_lod.without_format.cube_array.r32g32_uint
+dEQP-VK.image.load_store_lod.without_format.cube_array.r16g16_uint
+dEQP-VK.image.load_store_lod.without_format.cube_array.r16_uint
+dEQP-VK.image.load_store_lod.without_format.cube_array.r8g8_uint
+dEQP-VK.image.load_store_lod.without_format.cube_array.r8_uint
+dEQP-VK.image.load_store_lod.without_format.cube_array.r32g32_sint
+dEQP-VK.image.load_store_lod.without_format.cube_array.r16g16_sint
+dEQP-VK.image.load_store_lod.without_format.cube_array.r16_sint
+dEQP-VK.image.load_store_lod.without_format.cube_array.r8g8_sint
+dEQP-VK.image.load_store_lod.without_format.cube_array.r8_sint
+dEQP-VK.image.load_store_lod.without_format.cube_array.a2b10g10r10_unorm_pack32
+dEQP-VK.image.load_store_lod.without_format.cube_array.r16g16b16a16_unorm
+dEQP-VK.image.load_store_lod.without_format.cube_array.r16g16b16a16_snorm
+dEQP-VK.image.load_store_lod.without_format.cube_array.r16g16_unorm
+dEQP-VK.image.load_store_lod.without_format.cube_array.r16_unorm
+dEQP-VK.image.load_store_lod.without_format.cube_array.r8g8_unorm
+dEQP-VK.image.load_store_lod.without_format.cube_array.r8_unorm
+dEQP-VK.image.load_store_lod.without_format.cube_array.r16g16_snorm
+dEQP-VK.image.load_store_lod.without_format.cube_array.r16_snorm
+dEQP-VK.image.load_store_lod.without_format.cube_array.r8g8_snorm
+dEQP-VK.image.load_store_lod.without_format.cube_array.r8_snorm
 dEQP-VK.wsi.android.surface.query_presentation_support
 dEQP-VK.wsi.android.surface.query_surface_counters
 dEQP-VK.wsi.android.swapchain.create.image_swapchain_create_info
@@ -113956,6 +157321,15 @@
 dEQP-VK.wsi.android.swapchain.render.10swapchains2
 dEQP-VK.wsi.android.swapchain.acquire.too_many
 dEQP-VK.wsi.android.swapchain.acquire.too_many_timeout
+dEQP-VK.wsi.android.swapchain.private_data.min_image_count
+dEQP-VK.wsi.android.swapchain.private_data.image_format
+dEQP-VK.wsi.android.swapchain.private_data.image_array_layers
+dEQP-VK.wsi.android.swapchain.private_data.image_usage
+dEQP-VK.wsi.android.swapchain.private_data.image_sharing_mode
+dEQP-VK.wsi.android.swapchain.private_data.pre_transform
+dEQP-VK.wsi.android.swapchain.private_data.composite_alpha
+dEQP-VK.wsi.android.swapchain.private_data.present_mode
+dEQP-VK.wsi.android.swapchain.private_data.clipped
 dEQP-VK.wsi.macos.surface.query_presentation_support
 dEQP-VK.wsi.macos.surface.query_surface_counters
 dEQP-VK.wsi.macos.swapchain.create.image_swapchain_create_info
@@ -113969,6 +157343,15 @@
 dEQP-VK.wsi.macos.swapchain.render.10swapchains2
 dEQP-VK.wsi.macos.swapchain.acquire.too_many
 dEQP-VK.wsi.macos.swapchain.acquire.too_many_timeout
+dEQP-VK.wsi.macos.swapchain.private_data.min_image_count
+dEQP-VK.wsi.macos.swapchain.private_data.image_format
+dEQP-VK.wsi.macos.swapchain.private_data.image_array_layers
+dEQP-VK.wsi.macos.swapchain.private_data.image_usage
+dEQP-VK.wsi.macos.swapchain.private_data.image_sharing_mode
+dEQP-VK.wsi.macos.swapchain.private_data.pre_transform
+dEQP-VK.wsi.macos.swapchain.private_data.composite_alpha
+dEQP-VK.wsi.macos.swapchain.private_data.present_mode
+dEQP-VK.wsi.macos.swapchain.private_data.clipped
 dEQP-VK.wsi.display.surface_counters
 dEQP-VK.wsi.display_control.swapchain_counter
 dEQP-VK.wsi.display_control.display_power_control
@@ -152520,6 +195903,15 @@
 dEQP-VK.sparse_resources.shader_intrinsics.2d_array_sparse_gather.g16_b16_r16_3plane_444_unorm.128_128_8
 dEQP-VK.sparse_resources.shader_intrinsics.2d_array_sparse_gather.g16_b16_r16_3plane_444_unorm.503_137_3
 dEQP-VK.sparse_resources.shader_intrinsics.2d_array_sparse_gather.g16_b16_r16_3plane_444_unorm.11_37_3
+dEQP-VK.tessellation.tesscoord.triangles_equal_spacing_execution_mode_in_tesc
+dEQP-VK.tessellation.tesscoord.triangles_fractional_odd_spacing_execution_mode_in_tesc
+dEQP-VK.tessellation.tesscoord.triangles_fractional_even_spacing_execution_mode_in_tesc
+dEQP-VK.tessellation.tesscoord.quads_equal_spacing_execution_mode_in_tesc
+dEQP-VK.tessellation.tesscoord.quads_fractional_odd_spacing_execution_mode_in_tesc
+dEQP-VK.tessellation.tesscoord.quads_fractional_even_spacing_execution_mode_in_tesc
+dEQP-VK.tessellation.tesscoord.isolines_equal_spacing_execution_mode_in_tesc
+dEQP-VK.tessellation.tesscoord.isolines_fractional_odd_spacing_execution_mode_in_tesc
+dEQP-VK.tessellation.tesscoord.isolines_fractional_even_spacing_execution_mode_in_tesc
 dEQP-VK.rasterization.primitives.no_stipple.strict_lines
 dEQP-VK.rasterization.primitives.no_stipple.strict_line_strip
 dEQP-VK.rasterization.primitives.no_stipple.strict_lines_wide
@@ -152925,6 +196317,8 @@
 dEQP-VK.rasterization.provoking_vertex.line_list_with_adjacency
 dEQP-VK.rasterization.provoking_vertex.line_strip
 dEQP-VK.rasterization.provoking_vertex.line_strip_with_adjacency
+dEQP-VK.rasterization.line_continuity.line-strip
+dEQP-VK.rasterization.line_continuity.polygon-mode-lines
 dEQP-VK.clipping.clip_volume.depth_clip.point_list
 dEQP-VK.clipping.clip_volume.depth_clip.line_list
 dEQP-VK.clipping.clip_volume.depth_clip.line_list_with_adjacency
@@ -152935,12 +196329,451 @@
 dEQP-VK.clipping.clip_volume.depth_clip.triangle_strip
 dEQP-VK.clipping.clip_volume.depth_clip.triangle_strip_with_adjacency
 dEQP-VK.clipping.clip_volume.depth_clip.triangle_fan
+dEQP-VK.texture.filtering.2d.formats.r16g16b16a16_sfloat.cubic
+dEQP-VK.texture.filtering.2d.formats.r16g16b16a16_sfloat.cubic_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.r16g16b16a16_sfloat.cubic_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.b10g11r11_ufloat.cubic
+dEQP-VK.texture.filtering.2d.formats.b10g11r11_ufloat.cubic_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.b10g11r11_ufloat.cubic_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.e5b9g9r9_ufloat.cubic
+dEQP-VK.texture.filtering.2d.formats.e5b9g9r9_ufloat.cubic_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.e5b9g9r9_ufloat.cubic_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_unorm.cubic
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_unorm.cubic_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_unorm.cubic_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_snorm.cubic
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_snorm.cubic_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_snorm.cubic_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.r5g6b5_unorm.cubic
+dEQP-VK.texture.filtering.2d.formats.r5g6b5_unorm.cubic_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.r5g6b5_unorm.cubic_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.r4g4b4a4_unorm.cubic
+dEQP-VK.texture.filtering.2d.formats.r4g4b4a4_unorm.cubic_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.r4g4b4a4_unorm.cubic_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.r5g5b5a1_unorm.cubic
+dEQP-VK.texture.filtering.2d.formats.r5g5b5a1_unorm.cubic_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.r5g5b5a1_unorm.cubic_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.a8b8g8r8_srgb.cubic
+dEQP-VK.texture.filtering.2d.formats.a8b8g8r8_srgb.cubic_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.a8b8g8r8_srgb.cubic_mipmap_linear
+dEQP-VK.texture.filtering.2d.formats.a1r5g5b5_unorm.cubic
+dEQP-VK.texture.filtering.2d.formats.a1r5g5b5_unorm.cubic_mipmap_nearest
+dEQP-VK.texture.filtering.2d.formats.a1r5g5b5_unorm.cubic_mipmap_linear
 dEQP-VK.texture.filtering.2d.formats.s8_uint.nearest
 dEQP-VK.texture.filtering.2d.formats.d24_unorm_s8_uint_stencil.nearest
 dEQP-VK.texture.filtering.2d.formats.d32_sfloat_s8_uint_stencil.nearest
+dEQP-VK.texture.filtering.2d.sizes.4x8.cubic
+dEQP-VK.texture.filtering.2d.sizes.4x8.cubic_mipmap_nearest
+dEQP-VK.texture.filtering.2d.sizes.4x8.cubic_mipmap_linear
+dEQP-VK.texture.filtering.2d.sizes.32x64.cubic
+dEQP-VK.texture.filtering.2d.sizes.32x64.cubic_mipmap_nearest
+dEQP-VK.texture.filtering.2d.sizes.32x64.cubic_mipmap_linear
+dEQP-VK.texture.filtering.2d.sizes.128x128.cubic
+dEQP-VK.texture.filtering.2d.sizes.128x128.cubic_mipmap_nearest
+dEQP-VK.texture.filtering.2d.sizes.128x128.cubic_mipmap_linear
+dEQP-VK.texture.filtering.2d.sizes.3x7.cubic
+dEQP-VK.texture.filtering.2d.sizes.3x7.cubic_mipmap_nearest
+dEQP-VK.texture.filtering.2d.sizes.3x7.cubic_mipmap_linear
+dEQP-VK.texture.filtering.2d.sizes.31x55.cubic
+dEQP-VK.texture.filtering.2d.sizes.31x55.cubic_mipmap_nearest
+dEQP-VK.texture.filtering.2d.sizes.31x55.cubic_mipmap_linear
+dEQP-VK.texture.filtering.2d.sizes.127x99.cubic
+dEQP-VK.texture.filtering.2d.sizes.127x99.cubic_mipmap_nearest
+dEQP-VK.texture.filtering.2d.sizes.127x99.cubic_mipmap_linear
+dEQP-VK.texture.filtering.2d.combinations.nearest.cubic.repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest.cubic.repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest.cubic.repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest.cubic.repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest.cubic.repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest.cubic.mirrored_repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest.cubic.mirrored_repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest.cubic.mirrored_repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest.cubic.mirrored_repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest.cubic.mirrored_repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest.cubic.clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest.cubic.clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest.cubic.clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest.cubic.clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest.cubic.clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest.cubic.clamp_to_border.repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest.cubic.clamp_to_border.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest.cubic.clamp_to_border.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest.cubic.clamp_to_border.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest.cubic.clamp_to_border.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest.cubic.mirror_clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest.cubic.mirror_clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest.cubic.mirror_clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest.cubic.mirror_clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest.cubic.mirror_clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear.cubic.repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.linear.cubic.repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear.cubic.repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear.cubic.repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear.cubic.repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear.cubic.mirrored_repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.linear.cubic.mirrored_repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear.cubic.mirrored_repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear.cubic.mirrored_repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear.cubic.mirrored_repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear.cubic.clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.linear.cubic.clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear.cubic.clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear.cubic.clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear.cubic.clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear.cubic.clamp_to_border.repeat
+dEQP-VK.texture.filtering.2d.combinations.linear.cubic.clamp_to_border.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear.cubic.clamp_to_border.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear.cubic.clamp_to_border.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear.cubic.clamp_to_border.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear.cubic.mirror_clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.linear.cubic.mirror_clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear.cubic.mirror_clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear.cubic.mirror_clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear.cubic.mirror_clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.mirrored_repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.mirrored_repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.mirrored_repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.mirrored_repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.mirrored_repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.clamp_to_border.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.clamp_to_border.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.clamp_to_border.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.clamp_to_border.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.clamp_to_border.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.mirror_clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.mirror_clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.mirror_clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.mirror_clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.mirror_clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.mirrored_repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.mirrored_repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.mirrored_repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.mirrored_repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.mirrored_repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.clamp_to_border.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.clamp_to_border.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.clamp_to_border.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.clamp_to_border.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.clamp_to_border.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.mirror_clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.mirror_clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.mirror_clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.mirror_clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.mirror_clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.mirrored_repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.mirrored_repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.mirrored_repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.mirrored_repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.mirrored_repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.clamp_to_border.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.clamp_to_border.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.clamp_to_border.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.clamp_to_border.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.clamp_to_border.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.mirror_clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.mirror_clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.mirror_clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.mirror_clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.mirror_clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest.cubic.repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest.cubic.repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest.cubic.repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest.cubic.repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest.cubic.repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest.cubic.mirrored_repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest.cubic.mirrored_repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest.cubic.mirrored_repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest.cubic.mirrored_repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest.cubic.mirrored_repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest.cubic.clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest.cubic.clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest.cubic.clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest.cubic.clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest.cubic.clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest.cubic.clamp_to_border.repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest.cubic.clamp_to_border.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest.cubic.clamp_to_border.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest.cubic.clamp_to_border.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest.cubic.clamp_to_border.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest.cubic.mirror_clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest.cubic.mirror_clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest.cubic.mirror_clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest.cubic.mirror_clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_nearest.cubic.mirror_clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest.cubic.repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest.cubic.repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest.cubic.repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest.cubic.repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest.cubic.repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest.cubic.mirrored_repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest.cubic.mirrored_repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest.cubic.mirrored_repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest.cubic.mirrored_repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest.cubic.mirrored_repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest.cubic.clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest.cubic.clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest.cubic.clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest.cubic.clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest.cubic.clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest.cubic.clamp_to_border.repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest.cubic.clamp_to_border.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest.cubic.clamp_to_border.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest.cubic.clamp_to_border.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest.cubic.clamp_to_border.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest.cubic.mirror_clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest.cubic.mirror_clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest.cubic.mirror_clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest.cubic.mirror_clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_nearest.cubic.mirror_clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear.cubic.repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear.cubic.repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear.cubic.repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear.cubic.repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear.cubic.repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear.cubic.mirrored_repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear.cubic.mirrored_repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear.cubic.mirrored_repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear.cubic.mirrored_repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear.cubic.mirrored_repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear.cubic.clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear.cubic.clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear.cubic.clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear.cubic.clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear.cubic.clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear.cubic.clamp_to_border.repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear.cubic.clamp_to_border.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear.cubic.clamp_to_border.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear.cubic.clamp_to_border.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear.cubic.clamp_to_border.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear.cubic.mirror_clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear.cubic.mirror_clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear.cubic.mirror_clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear.cubic.mirror_clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.nearest_mipmap_linear.cubic.mirror_clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear.cubic.repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear.cubic.repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear.cubic.repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear.cubic.repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear.cubic.repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear.cubic.mirrored_repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear.cubic.mirrored_repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear.cubic.mirrored_repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear.cubic.mirrored_repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear.cubic.mirrored_repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear.cubic.clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear.cubic.clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear.cubic.clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear.cubic.clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear.cubic.clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear.cubic.clamp_to_border.repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear.cubic.clamp_to_border.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear.cubic.clamp_to_border.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear.cubic.clamp_to_border.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear.cubic.clamp_to_border.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear.cubic.mirror_clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear.cubic.mirror_clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear.cubic.mirror_clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear.cubic.mirror_clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear.cubic.mirror_clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.nearest.repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.nearest.repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.nearest.repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.nearest.repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.nearest.repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.nearest.mirrored_repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.nearest.mirrored_repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.nearest.mirrored_repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.nearest.mirrored_repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.nearest.mirrored_repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.nearest.clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.nearest.clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.nearest.clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.nearest.clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.nearest.clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.nearest.clamp_to_border.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.nearest.clamp_to_border.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.nearest.clamp_to_border.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.nearest.clamp_to_border.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.nearest.clamp_to_border.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.nearest.mirror_clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.nearest.mirror_clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.nearest.mirror_clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.nearest.mirror_clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.nearest.mirror_clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.linear.repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.linear.repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.linear.repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.linear.repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.linear.repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.linear.mirrored_repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.linear.mirrored_repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.linear.mirrored_repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.linear.mirrored_repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.linear.mirrored_repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.linear.clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.linear.clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.linear.clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.linear.clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.linear.clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.linear.clamp_to_border.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.linear.clamp_to_border.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.linear.clamp_to_border.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.linear.clamp_to_border.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.linear.clamp_to_border.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.linear.mirror_clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.linear.mirror_clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.linear.mirror_clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.linear.mirror_clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.linear.mirror_clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.cubic.repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.cubic.repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.cubic.repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.cubic.repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.cubic.repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.cubic.mirrored_repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.cubic.mirrored_repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.cubic.mirrored_repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.cubic.mirrored_repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.cubic.mirrored_repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.cubic.clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.cubic.clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.cubic.clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.cubic.clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.cubic.clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.cubic.clamp_to_border.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.cubic.clamp_to_border.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.cubic.clamp_to_border.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.cubic.clamp_to_border.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.cubic.clamp_to_border.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.cubic.mirror_clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.cubic.mirror_clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.cubic.mirror_clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.cubic.mirror_clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_nearest.cubic.mirror_clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.nearest.repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.nearest.repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.nearest.repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.nearest.repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.nearest.repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.nearest.mirrored_repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.nearest.mirrored_repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.nearest.mirrored_repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.nearest.mirrored_repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.nearest.mirrored_repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.nearest.clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.nearest.clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.nearest.clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.nearest.clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.nearest.clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.nearest.clamp_to_border.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.nearest.clamp_to_border.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.nearest.clamp_to_border.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.nearest.clamp_to_border.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.nearest.clamp_to_border.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.nearest.mirror_clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.nearest.mirror_clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.nearest.mirror_clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.nearest.mirror_clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.nearest.mirror_clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.linear.repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.linear.repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.linear.repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.linear.repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.linear.repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.linear.mirrored_repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.linear.mirrored_repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.linear.mirrored_repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.linear.mirrored_repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.linear.mirrored_repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.linear.clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.linear.clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.linear.clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.linear.clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.linear.clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.linear.clamp_to_border.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.linear.clamp_to_border.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.linear.clamp_to_border.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.linear.clamp_to_border.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.linear.clamp_to_border.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.linear.mirror_clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.linear.mirror_clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.linear.mirror_clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.linear.mirror_clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.linear.mirror_clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.cubic.repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.cubic.repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.cubic.repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.cubic.repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.cubic.repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.cubic.mirrored_repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.cubic.mirrored_repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.cubic.mirrored_repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.cubic.mirrored_repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.cubic.mirrored_repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.cubic.clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.cubic.clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.cubic.clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.cubic.clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.cubic.clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.cubic.clamp_to_border.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.cubic.clamp_to_border.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.cubic.clamp_to_border.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.cubic.clamp_to_border.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.cubic.clamp_to_border.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.cubic.mirror_clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.cubic.mirror_clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.cubic.mirror_clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.cubic.mirror_clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic_mipmap_linear.cubic.mirror_clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.unnormal.formats.r16g16b16a16_sfloat.cubic
+dEQP-VK.texture.filtering.unnormal.formats.b10g11r11_ufloat.cubic
+dEQP-VK.texture.filtering.unnormal.formats.e5b9g9r9_ufloat.cubic
+dEQP-VK.texture.filtering.unnormal.formats.r8g8b8a8_unorm.cubic
+dEQP-VK.texture.filtering.unnormal.formats.r8g8b8a8_snorm.cubic
+dEQP-VK.texture.filtering.unnormal.formats.r5g6b5_unorm.cubic
+dEQP-VK.texture.filtering.unnormal.formats.r4g4b4a4_unorm.cubic
+dEQP-VK.texture.filtering.unnormal.formats.r5g5b5a1_unorm.cubic
+dEQP-VK.texture.filtering.unnormal.formats.a8b8g8r8_srgb.cubic
+dEQP-VK.texture.filtering.unnormal.formats.a1r5g5b5_unorm.cubic
 dEQP-VK.texture.filtering.unnormal.formats.s8_uint.nearest
 dEQP-VK.texture.filtering.unnormal.formats.d24_unorm_s8_uint_stencil.nearest
 dEQP-VK.texture.filtering.unnormal.formats.d32_sfloat_s8_uint_stencil.nearest
+dEQP-VK.texture.filtering.unnormal.sizes.4x8.cubic
+dEQP-VK.texture.filtering.unnormal.sizes.32x64.cubic
+dEQP-VK.texture.filtering.unnormal.sizes.128x128.cubic
+dEQP-VK.texture.filtering.unnormal.sizes.3x7.cubic
+dEQP-VK.texture.filtering.unnormal.sizes.31x55.cubic
+dEQP-VK.texture.filtering.unnormal.sizes.127x99.cubic
 dEQP-VK.texture.filtering.cube.formats.s8_uint.nearest
 dEQP-VK.texture.filtering.cube.formats.d24_unorm_s8_uint_stencil.nearest
 dEQP-VK.texture.filtering.cube.formats.d32_sfloat_s8_uint_stencil.nearest
@@ -154357,6 +198190,7 @@
 dEQP-VK.texture.subgroup_lod.texturelod
 dEQP-VK.texture.subgroup_lod.texturegrad
 dEQP-VK.texture.subgroup_lod.texelfetch
+dEQP-VK.texture.conversion.b10g11r11-negative-values
 dEQP-VK.geometry.layered.1d_array.64_1_4.render_to_default_layer
 dEQP-VK.geometry.layered.1d_array.64_1_4.render_to_one
 dEQP-VK.geometry.layered.1d_array.64_1_4.render_to_all
@@ -154871,253 +198705,1261 @@
 dEQP-VK.subgroups.ballot_broadcast.graphics.subgroupbroadcast_nonconst_bvec3
 dEQP-VK.subgroups.ballot_broadcast.graphics.subgroupbroadcast_nonconst_bvec4
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int8_t
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int8_t_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int8_t_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int8_t_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int8_t_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int8_t_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int8_t_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int8_t_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int8_t_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int8_t_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int8_t
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int8_t_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int8_t_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int8_t_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int8_t_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int8_t_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int8_t_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int8_t_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int8_t_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int8_t_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int8_t
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int8_t_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int8_t_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int8_t_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int8_t_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int8_t_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int8_t_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int8_t_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int8_t_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int8_t_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec2
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec2_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec2
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec2_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec2
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec2_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec3
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec3_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec3
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec3_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec3
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec3_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec4
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i8vec4_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec4
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i8vec4_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec4
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i8vec4_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint8_t
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint8_t_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint8_t_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint8_t_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint8_t_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint8_t_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint8_t_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint8_t_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint8_t_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint8_t_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint8_t
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint8_t_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint8_t_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint8_t_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint8_t_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint8_t_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint8_t_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint8_t_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint8_t_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint8_t_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint8_t
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint8_t_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint8_t_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint8_t_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint8_t_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint8_t_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint8_t_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint8_t_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint8_t_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint8_t_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec2
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec2_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec2
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec2_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec2
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec2_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec3
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec3_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec3
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec3_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec3
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec3_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec4
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u8vec4_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec4
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u8vec4_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec4
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u8vec4_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int16_t
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int16_t_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int16_t_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int16_t_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int16_t_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int16_t_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int16_t_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int16_t_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int16_t_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int16_t_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int16_t
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int16_t_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int16_t_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int16_t_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int16_t_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int16_t_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int16_t_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int16_t_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int16_t_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int16_t_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int16_t
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int16_t_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int16_t_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int16_t_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int16_t_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int16_t_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int16_t_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int16_t_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int16_t_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int16_t_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec2
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec2_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec2
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec2_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec2
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec2_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec3
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec3_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec3
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec3_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec3
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec3_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec4
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i16vec4_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec4
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i16vec4_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec4
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i16vec4_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint16_t
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint16_t_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint16_t_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint16_t_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint16_t_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint16_t_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint16_t_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint16_t_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint16_t_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint16_t_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint16_t
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint16_t_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint16_t_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint16_t_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint16_t_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint16_t_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint16_t_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint16_t_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint16_t_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint16_t_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint16_t
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint16_t_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint16_t_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint16_t_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint16_t_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint16_t_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint16_t_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint16_t_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint16_t_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint16_t_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec2
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec2_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec2
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec2_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec2
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec2_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec3
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec3_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec3
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec3_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec3
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec3_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec4
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u16vec4_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec4
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u16vec4_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec4
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec4_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u16vec4_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec2_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec2
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec2_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec2_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec2_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec2_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec3_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec3
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec3_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec3_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec3_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec3_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec4_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec4
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec4_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec4_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_ivec4_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_ivec4_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec2_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec2
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec2_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec2_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec2_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec2_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec3_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec3
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec3_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec3_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec3_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec3_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uvec4_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec4
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec4_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uvec4_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uvec4_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int64_t
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int64_t_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int64_t_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int64_t_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int64_t_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int64_t_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int64_t_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int64_t_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int64_t_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_int64_t_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int64_t
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int64_t_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int64_t_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int64_t_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int64_t_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int64_t_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int64_t_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int64_t_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int64_t_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_int64_t_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int64_t
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int64_t_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int64_t_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int64_t_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int64_t_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int64_t_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int64_t_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int64_t_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int64_t_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_int64_t_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec2
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec2_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec2
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec2_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec2
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec2_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec3
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec3_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec3
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec3_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec3
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec3_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec4
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_i64vec4_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec4
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_i64vec4_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec4
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_i64vec4_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint64_t
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint64_t_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint64_t_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint64_t_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint64_t_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint64_t_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint64_t_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint64_t_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint64_t_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_uint64_t_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint64_t
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint64_t_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint64_t_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint64_t_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint64_t_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint64_t_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint64_t_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint64_t_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint64_t_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_uint64_t_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint64_t
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint64_t_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint64_t_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint64_t_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint64_t_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint64_t_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint64_t_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint64_t_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint64_t_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_uint64_t_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec2
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec2_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec2
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec2_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec2
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec2_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec3
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec3_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec3
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec3_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec3
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec3_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec4
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_u64vec4_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec4
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_u64vec4_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec4
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_u64vec4_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float16_t
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float16_t_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float16_t_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float16_t_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float16_t_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float16_t_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float16_t_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float16_t_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float16_t_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float16_t_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float16_t
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float16_t_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float16_t_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float16_t_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float16_t_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float16_t_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float16_t_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float16_t_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float16_t_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float16_t_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float16_t
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float16_t_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float16_t_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float16_t_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float16_t_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float16_t_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float16_t_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float16_t_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float16_t_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float16_t_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec2
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec2_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec2
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec2_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec2
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec2_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec3
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec3_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec3
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec3_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec3
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec3_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec4
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_f16vec4_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec4
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_f16vec4_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec4
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec4_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_f16vec4_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_float_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_float_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_float_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec2_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec2
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec2_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec2_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec2_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec2_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec3_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec3
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec3_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec3_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec3_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec3_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_vec4_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec4
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec4_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec4_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_double_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_vec4_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_vec4_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_double_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_double_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_double_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_double_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_double_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_double_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_double_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_double_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_double
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_double_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_double_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_double_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_double_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_double_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_double_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_double_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_double_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_double_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_double_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_double_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_double_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_double_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_double_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_double_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_double_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_double_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_double_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec2_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec2
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec2_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec2_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec2_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec2_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec3_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec3
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec3_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec3_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec3_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec3_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_dvec4_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec4
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec4_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec4_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bool_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_dvec4_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_dvec4_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bool_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bool_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bool_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bool_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bool_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bool_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bool_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bool_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bool
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bool_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bool_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec2_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bool_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bool_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bool_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bool_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bool_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bool_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bool_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bool_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bool_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bool_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bool_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bool_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bool_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bool_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bool_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bool_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec2_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec2
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec2_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec2_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec3_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec2_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec2_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec2_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec2_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec2_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec2_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec2_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec2_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec2_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec3_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec3
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec3_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec3_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec3_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec3_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec3_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec3_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec3_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec3_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec3_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec3_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec3_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_bvec4_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec4
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec4_requiredsubgroupsize
-dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec4_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_nonconst_bvec4_requiredsubgroupsize128
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec4_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec4_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec4_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec4_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec4_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec4_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec4_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcastfirst_bvec4_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.framebuffer.subgroupbroadcast_int8_tvertex
 dEQP-VK.subgroups.ballot_broadcast.framebuffer.subgroupbroadcast_int8_ttess_eval
 dEQP-VK.subgroups.ballot_broadcast.framebuffer.subgroupbroadcast_int8_ttess_control
@@ -155544,23 +200386,86 @@
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.graphics.subgroupbroadcast_nonconst_float
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.graphics.subgroupbroadcastfirst_float
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_int
-dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_int_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_int_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_int_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_int_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_int_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_int_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_int_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_int_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_int_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_int
-dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_int_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_int_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_int_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_int_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_int_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_int_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_int_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_int_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_int_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_int
-dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_int_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_int_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_int_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_int_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_int_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_int_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_int_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_int_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_int_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_uint
-dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_uint_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_uint_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_uint_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_uint_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_uint_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_uint_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_uint_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_uint_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_uint_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_uint
-dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_uint_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_uint_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_uint_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_uint_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_uint_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_uint_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_uint_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_uint_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_uint_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_uint
-dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_uint_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_uint_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_uint_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_uint_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_uint_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_uint_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_uint_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_uint_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_uint_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_float
-dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_float_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_float_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_float_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_float_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_float_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_float_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_float_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_float_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_float_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_float
-dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_float_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_float_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_float_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_float_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_float_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_float_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_float_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_float_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcast_nonconst_float_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_float
-dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_float_requiredsubgroupsize
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_float_requiredsubgroupsize1
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_float_requiredsubgroupsize2
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_float_requiredsubgroupsize4
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_float_requiredsubgroupsize8
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_float_requiredsubgroupsize16
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_float_requiredsubgroupsize32
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_float_requiredsubgroupsize64
+dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.compute.subgroupbroadcastfirst_float_requiredsubgroupsize128
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.framebuffer.subgroupbroadcast_intvertex
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.framebuffer.subgroupbroadcast_inttess_eval
 dEQP-VK.subgroups.ballot_broadcast.ext_shader_subgroup_ballot.framebuffer.subgroupbroadcast_inttess_control
@@ -168251,6 +213156,8 @@
 dEQP-VK.ycbcr.format.g16_b16_r16_3plane_444_unorm.compute_linear_array_disjoint
 dEQP-VK.ycbcr.format.g16_b16_r16_3plane_444_unorm.compute_linear_array_mapped
 dEQP-VK.ycbcr.format.g16_b16_r16_3plane_444_unorm.compute_linear_array_disjoint_mapped
+dEQP-VK.ycbcr.filtering.linear_sampler_g8_b8_r8_3plane_420_unorm
+dEQP-VK.ycbcr.filtering.linear_sampler_g8_b8r8_2plane_420_unorm
 dEQP-VK.ycbcr.conversion.r4g4b4a4_unorm_pack16.rgb_identity.linear_tiling_linear_binding_7
 dEQP-VK.ycbcr.conversion.r4g4b4a4_unorm_pack16.rgb_identity.linear_tiling_linear_binding_15
 dEQP-VK.ycbcr.conversion.r4g4b4a4_unorm_pack16.rgb_identity.linear_tiling_linear_binding_31
@@ -183138,6 +228045,10 @@
 dEQP-VK.graphicsfuzz.always-discarding-function
 dEQP-VK.graphicsfuzz.always-false-if-in-do-while
 dEQP-VK.graphicsfuzz.always-false-if-with-discard-return
+dEQP-VK.graphicsfuzz.arr-value-set-to-arr-value-squared
+dEQP-VK.graphicsfuzz.array-idx-multiplied-by-for-loop-idx
+dEQP-VK.graphicsfuzz.assign-array-value-to-another-array
+dEQP-VK.graphicsfuzz.assign-array-value-to-another-array-2
 dEQP-VK.graphicsfuzz.barrier-in-loop-with-break
 dEQP-VK.graphicsfuzz.break-in-do-while-with-nested-if
 dEQP-VK.graphicsfuzz.call-function-with-discard
@@ -183149,20 +228060,37 @@
 dEQP-VK.graphicsfuzz.continue-and-merge
 dEQP-VK.graphicsfuzz.control-flow-in-function
 dEQP-VK.graphicsfuzz.control-flow-switch
+dEQP-VK.graphicsfuzz.cosh-return-inf-unused
+dEQP-VK.graphicsfuzz.cov-analysis-reachable-from-many
+dEQP-VK.graphicsfuzz.cov-apfloat-acos-ldexp
 dEQP-VK.graphicsfuzz.cov-apfloat-determinant
 dEQP-VK.graphicsfuzz.cov-apfloat-tanh
+dEQP-VK.graphicsfuzz.cov-basic-block-discard-in-function
 dEQP-VK.graphicsfuzz.cov-blockfrequency-several-for-loops
+dEQP-VK.graphicsfuzz.cov-const-folding-ceil-vec4
 dEQP-VK.graphicsfuzz.cov-const-folding-clamp
+dEQP-VK.graphicsfuzz.cov-const-folding-clamp-inside-while
 dEQP-VK.graphicsfuzz.cov-const-folding-clamp-max
 dEQP-VK.graphicsfuzz.cov-const-folding-clamp-min
+dEQP-VK.graphicsfuzz.cov-const-folding-clamp-vs-original
+dEQP-VK.graphicsfuzz.cov-const-folding-det-identity
 dEQP-VK.graphicsfuzz.cov-const-folding-dot-condition-true
 dEQP-VK.graphicsfuzz.cov-const-folding-dot-determinant
+dEQP-VK.graphicsfuzz.cov-const-folding-gte-const-first
+dEQP-VK.graphicsfuzz.cov-const-folding-min-as-loop-range
+dEQP-VK.graphicsfuzz.cov-const-folding-same-condition
+dEQP-VK.graphicsfuzz.cov-const-folding-sinh-inf
 dEQP-VK.graphicsfuzz.cov-const-folding-vector-shuffle
+dEQP-VK.graphicsfuzz.cov-constant-folding-atan-over-tanh
 dEQP-VK.graphicsfuzz.cov-constants-mix-uniform
 dEQP-VK.graphicsfuzz.cov-copy-prop-arrays-func-argument
 dEQP-VK.graphicsfuzz.cov-copy-prop-arrays-no-stores
 dEQP-VK.graphicsfuzz.cov-copy-prop-arrays-param-uniform
+dEQP-VK.graphicsfuzz.cov-dag-combiner-neg-div-pow2
+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-fold-and-in-for-loop-range
 dEQP-VK.graphicsfuzz.cov-fold-bitwise-and-zero
 dEQP-VK.graphicsfuzz.cov-fold-bitwise-or-full-mask
 dEQP-VK.graphicsfuzz.cov-fold-bitwise-xor
@@ -183171,35 +228099,81 @@
 dEQP-VK.graphicsfuzz.cov-fold-logical-and-const-variable
 dEQP-VK.graphicsfuzz.cov-fold-logical-and-constant
 dEQP-VK.graphicsfuzz.cov-fold-logical-or-constant
+dEQP-VK.graphicsfuzz.cov-fold-negate-min-int-value
 dEQP-VK.graphicsfuzz.cov-fold-negate-variable
 dEQP-VK.graphicsfuzz.cov-fold-shift-gte32
 dEQP-VK.graphicsfuzz.cov-fold-shift-right-arithmetic
 dEQP-VK.graphicsfuzz.cov-fold-switch-udiv
+dEQP-VK.graphicsfuzz.cov-folding-clamp-cmp-const-first
+dEQP-VK.graphicsfuzz.cov-folding-merge-add-sub-uniform
 dEQP-VK.graphicsfuzz.cov-folding-rules-construct-extract
 dEQP-VK.graphicsfuzz.cov-folding-rules-dot-extract
 dEQP-VK.graphicsfuzz.cov-folding-rules-dot-no-extract
 dEQP-VK.graphicsfuzz.cov-folding-rules-merge-add-sub
+dEQP-VK.graphicsfuzz.cov-folding-rules-merge-div-mul
+dEQP-VK.graphicsfuzz.cov-folding-rules-merge-divs
+dEQP-VK.graphicsfuzz.cov-folding-rules-merge-mul-div
 dEQP-VK.graphicsfuzz.cov-folding-rules-merge-sub-add
 dEQP-VK.graphicsfuzz.cov-folding-rules-merge-sub-sub
+dEQP-VK.graphicsfuzz.cov-folding-rules-merge-var-sub
+dEQP-VK.graphicsfuzz.cov-folding-rules-mix-uniform-weight
+dEQP-VK.graphicsfuzz.cov-folding-rules-negate-div
+dEQP-VK.graphicsfuzz.cov-folding-rules-negate-sub
 dEQP-VK.graphicsfuzz.cov-folding-rules-redundant-mix
 dEQP-VK.graphicsfuzz.cov-folding-rules-shuffle-extract
 dEQP-VK.graphicsfuzz.cov-folding-rules-shuffle-mix
 dEQP-VK.graphicsfuzz.cov-folding-rules-split-vector-init
+dEQP-VK.graphicsfuzz.cov-folding-rules-vec-mix-uniform
 dEQP-VK.graphicsfuzz.cov-if-conversion-identical-branches
+dEQP-VK.graphicsfuzz.cov-inc-inside-switch-and-for
+dEQP-VK.graphicsfuzz.cov-increment-inside-clamp
 dEQP-VK.graphicsfuzz.cov-inline-pass-empty-block
 dEQP-VK.graphicsfuzz.cov-inline-pass-nested-loops
+dEQP-VK.graphicsfuzz.cov-inline-pass-return-in-loop
 dEQP-VK.graphicsfuzz.cov-inline-pass-unreachable-func
 dEQP-VK.graphicsfuzz.cov-intervalmap-set-stop
+dEQP-VK.graphicsfuzz.cov-irbuilder-matrix-cell-uniform
 dEQP-VK.graphicsfuzz.cov-liveinterval-different-dest
+dEQP-VK.graphicsfuzz.cov-loop-findmsb-findlsb
+dEQP-VK.graphicsfuzz.cov-machinevaluetype-one-iter-loop
+dEQP-VK.graphicsfuzz.cov-max-clamp-same-minval
+dEQP-VK.graphicsfuzz.cov-mem-pass-sum-struct-members
+dEQP-VK.graphicsfuzz.cov-mem-pass-unused-component
 dEQP-VK.graphicsfuzz.cov-merge-return-condition-twice
 dEQP-VK.graphicsfuzz.cov-modf-integer-to-private
+dEQP-VK.graphicsfuzz.cov-pattern-match-signum
+dEQP-VK.graphicsfuzz.cov-pattern-match-single-bit
 dEQP-VK.graphicsfuzz.cov-reduce-load-replace-extract
+dEQP-VK.graphicsfuzz.cov-replace-copy-object
+dEQP-VK.graphicsfuzz.cov-scaled-number-nested-loops
+dEQP-VK.graphicsfuzz.cov-selection-dag-same-cond-twice
+dEQP-VK.graphicsfuzz.cov-set-vector-cos-fragcoord
+dEQP-VK.graphicsfuzz.cov-simplification-unused-struct
 dEQP-VK.graphicsfuzz.cov-simplification-while-inside-for
+dEQP-VK.graphicsfuzz.cov-simplify-clamp-max-itself
+dEQP-VK.graphicsfuzz.cov-simplify-component-uniform-idx
+dEQP-VK.graphicsfuzz.cov-simplify-div-by-uint-one
+dEQP-VK.graphicsfuzz.cov-simplify-ldexp-exponent-zero
+dEQP-VK.graphicsfuzz.cov-simplify-mul-identity
+dEQP-VK.graphicsfuzz.cov-simplify-not-less-than-neg
+dEQP-VK.graphicsfuzz.cov-simplify-select-fragcoord
+dEQP-VK.graphicsfuzz.cov-simplify-sign-cosh
+dEQP-VK.graphicsfuzz.cov-simplify-smoothstep-undef
 dEQP-VK.graphicsfuzz.cov-single-block-elim-self-assign
+dEQP-VK.graphicsfuzz.cov-single-store-elim-assume-store
 dEQP-VK.graphicsfuzz.cov-ssa-rewrite-case-with-default
+dEQP-VK.graphicsfuzz.cov-target-lowering-dfdx-cos
 dEQP-VK.graphicsfuzz.cov-types-return-in-main-never-hit
+dEQP-VK.graphicsfuzz.cov-val-cfg-case-fallthrough
+dEQP-VK.graphicsfuzz.cov-value-tracking-const-dfdy
+dEQP-VK.graphicsfuzz.cov-value-tracking-inclusive-or
+dEQP-VK.graphicsfuzz.cov-value-tracking-uniform-incident
 dEQP-VK.graphicsfuzz.cov-vector-dce-inc-unused-comp
 dEQP-VK.graphicsfuzz.cov-vector-dce-unused-component
+dEQP-VK.graphicsfuzz.cov-vector-log2-cosh
+dEQP-VK.graphicsfuzz.cov-wrap-op-kill-for-loop
+dEQP-VK.graphicsfuzz.cov-wrap-op-kill-two-branches
+dEQP-VK.graphicsfuzz.create-color-in-do-while-for-loop
 dEQP-VK.graphicsfuzz.dead-barriers-in-loops
 dEQP-VK.graphicsfuzz.dead-struct-init
 dEQP-VK.graphicsfuzz.disc-and-add-in-func-in-loop
@@ -183208,17 +228182,23 @@
 dEQP-VK.graphicsfuzz.discard-in-loop
 dEQP-VK.graphicsfuzz.discard-in-loop-in-function
 dEQP-VK.graphicsfuzz.discards-in-control-flow
+dEQP-VK.graphicsfuzz.do-while-false-loops
 dEQP-VK.graphicsfuzz.do-while-loop-in-conditionals
 dEQP-VK.graphicsfuzz.do-while-with-always-true-if
+dEQP-VK.graphicsfuzz.do-while-with-if-condition
 dEQP-VK.graphicsfuzz.early-return-and-barrier
+dEQP-VK.graphicsfuzz.find-msb-from-lsb
 dEQP-VK.graphicsfuzz.for-condition-always-false
 dEQP-VK.graphicsfuzz.for-loop-with-return
 dEQP-VK.graphicsfuzz.for-with-ifs-and-return
+dEQP-VK.graphicsfuzz.frag-coord-func-call-and-ifs
 dEQP-VK.graphicsfuzz.fragcoord-control-flow
 dEQP-VK.graphicsfuzz.fragcoord-control-flow-2
+dEQP-VK.graphicsfuzz.function-with-float-comparison
 dEQP-VK.graphicsfuzz.function-with-uniform-return
 dEQP-VK.graphicsfuzz.global-array-loops
 dEQP-VK.graphicsfuzz.if-and-switch
+dEQP-VK.graphicsfuzz.increment-value-in-nested-for-loop
 dEQP-VK.graphicsfuzz.injection-switch-as-comparison
 dEQP-VK.graphicsfuzz.int-mat2-struct
 dEQP-VK.graphicsfuzz.loop-call-discard
@@ -183235,29 +228215,39 @@
 dEQP-VK.graphicsfuzz.modf-gl-color
 dEQP-VK.graphicsfuzz.modf-temp-modf-color
 dEQP-VK.graphicsfuzz.nested-for-break-mat-color
+dEQP-VK.graphicsfuzz.nested-for-loops-switch-fallthrough
 dEQP-VK.graphicsfuzz.nested-for-loops-with-return
 dEQP-VK.graphicsfuzz.nested-ifs-and-return-in-for-loop
 dEQP-VK.graphicsfuzz.nested-loops-switch
 dEQP-VK.graphicsfuzz.nested-switch-break-discard
+dEQP-VK.graphicsfuzz.one-sized-array
 dEQP-VK.graphicsfuzz.pow-vec4
 dEQP-VK.graphicsfuzz.return-before-writing-wrong-color
 dEQP-VK.graphicsfuzz.return-float-from-while-loop
 dEQP-VK.graphicsfuzz.return-in-loop-in-function
 dEQP-VK.graphicsfuzz.return-inside-loop-in-function
+dEQP-VK.graphicsfuzz.return-mat2x3-value-from-func
 dEQP-VK.graphicsfuzz.returned-boolean-in-vector
+dEQP-VK.graphicsfuzz.set-color-in-one-iteration-while-loop
 dEQP-VK.graphicsfuzz.similar-nested-ifs
 dEQP-VK.graphicsfuzz.smoothstep-after-loop
+dEQP-VK.graphicsfuzz.stable-binarysearch-tree-with-loop-read-write-global
 dEQP-VK.graphicsfuzz.struct-and-unreachable-infinite-loop
+dEQP-VK.graphicsfuzz.struct-array-data-as-loop-iterator
 dEQP-VK.graphicsfuzz.struct-controlled-loop
 dEQP-VK.graphicsfuzz.struct-used-as-temporary
 dEQP-VK.graphicsfuzz.switch-case-with-undefined-expression
 dEQP-VK.graphicsfuzz.switch-if-discard
 dEQP-VK.graphicsfuzz.switch-inside-while-always-return
+dEQP-VK.graphicsfuzz.switch-loop-switch-if
 dEQP-VK.graphicsfuzz.switch-with-empty-if-false
+dEQP-VK.graphicsfuzz.switch-with-fall-through-cases
 dEQP-VK.graphicsfuzz.swizzle-struct-init-min
+dEQP-VK.graphicsfuzz.texel_offset
 dEQP-VK.graphicsfuzz.transpose-rectangular-matrix
 dEQP-VK.graphicsfuzz.two-2-iteration-loops
 dEQP-VK.graphicsfuzz.two-for-loops-with-barrier-function
+dEQP-VK.graphicsfuzz.two-loops-mat-add
 dEQP-VK.graphicsfuzz.two-loops-matrix
 dEQP-VK.graphicsfuzz.two-loops-set-struct
 dEQP-VK.graphicsfuzz.two-loops-with-break
@@ -183277,6 +228267,7 @@
 dEQP-VK.graphicsfuzz.unreachable-return-in-loop
 dEQP-VK.graphicsfuzz.unreachable-switch-case-with-discards
 dEQP-VK.graphicsfuzz.uv-value-comparison-as-boolean
+dEQP-VK.graphicsfuzz.vector-values-multiplied-by-fragcoord
 dEQP-VK.graphicsfuzz.vectors-and-discard-in-function
 dEQP-VK.graphicsfuzz.while-function-always-false
 dEQP-VK.graphicsfuzz.while-inside-switch
@@ -183504,18 +228495,46 @@
 dEQP-VK.transform_feedback.simple.xfb_clip_and_cull_8_131072
 dEQP-VK.transform_feedback.simple.xfb_clip_and_cull_beginqueryindexed_streamid_0_8_131072
 dEQP-VK.transform_feedback.simple.xfb_clip_and_cull_endqueryindexed_streamid_0_8_131072
-dEQP-VK.transform_feedback.simple.triangle_strip_with_adjacency_6
-dEQP-VK.transform_feedback.simple.triangle_strip_with_adjacency_beginqueryindexed_streamid_0_6
-dEQP-VK.transform_feedback.simple.triangle_strip_with_adjacency_endqueryindexed_streamid_0_6
-dEQP-VK.transform_feedback.simple.triangle_strip_with_adjacency_8
-dEQP-VK.transform_feedback.simple.triangle_strip_with_adjacency_beginqueryindexed_streamid_0_8
-dEQP-VK.transform_feedback.simple.triangle_strip_with_adjacency_endqueryindexed_streamid_0_8
-dEQP-VK.transform_feedback.simple.triangle_strip_with_adjacency_10
-dEQP-VK.transform_feedback.simple.triangle_strip_with_adjacency_beginqueryindexed_streamid_0_10
-dEQP-VK.transform_feedback.simple.triangle_strip_with_adjacency_endqueryindexed_streamid_0_10
-dEQP-VK.transform_feedback.simple.triangle_strip_with_adjacency_12
-dEQP-VK.transform_feedback.simple.triangle_strip_with_adjacency_beginqueryindexed_streamid_0_12
-dEQP-VK.transform_feedback.simple.triangle_strip_with_adjacency_endqueryindexed_streamid_0_12
+dEQP-VK.transform_feedback.simple.winding_line_list_6
+dEQP-VK.transform_feedback.simple.winding_line_list_8
+dEQP-VK.transform_feedback.simple.winding_line_list_10
+dEQP-VK.transform_feedback.simple.winding_line_list_12
+dEQP-VK.transform_feedback.simple.winding_line_strip_6
+dEQP-VK.transform_feedback.simple.winding_line_strip_8
+dEQP-VK.transform_feedback.simple.winding_line_strip_10
+dEQP-VK.transform_feedback.simple.winding_line_strip_12
+dEQP-VK.transform_feedback.simple.winding_triangle_list_6
+dEQP-VK.transform_feedback.simple.winding_triangle_list_8
+dEQP-VK.transform_feedback.simple.winding_triangle_list_10
+dEQP-VK.transform_feedback.simple.winding_triangle_list_12
+dEQP-VK.transform_feedback.simple.winding_triangle_strip_6
+dEQP-VK.transform_feedback.simple.winding_triangle_strip_8
+dEQP-VK.transform_feedback.simple.winding_triangle_strip_10
+dEQP-VK.transform_feedback.simple.winding_triangle_strip_12
+dEQP-VK.transform_feedback.simple.winding_triangle_fan_6
+dEQP-VK.transform_feedback.simple.winding_triangle_fan_8
+dEQP-VK.transform_feedback.simple.winding_triangle_fan_10
+dEQP-VK.transform_feedback.simple.winding_triangle_fan_12
+dEQP-VK.transform_feedback.simple.winding_line_list_with_adjacency_6
+dEQP-VK.transform_feedback.simple.winding_line_list_with_adjacency_8
+dEQP-VK.transform_feedback.simple.winding_line_list_with_adjacency_10
+dEQP-VK.transform_feedback.simple.winding_line_list_with_adjacency_12
+dEQP-VK.transform_feedback.simple.winding_line_strip_with_adjacency_6
+dEQP-VK.transform_feedback.simple.winding_line_strip_with_adjacency_8
+dEQP-VK.transform_feedback.simple.winding_line_strip_with_adjacency_10
+dEQP-VK.transform_feedback.simple.winding_line_strip_with_adjacency_12
+dEQP-VK.transform_feedback.simple.winding_triangle_strip_with_adjacency_6
+dEQP-VK.transform_feedback.simple.winding_triangle_strip_with_adjacency_8
+dEQP-VK.transform_feedback.simple.winding_triangle_strip_with_adjacency_10
+dEQP-VK.transform_feedback.simple.winding_triangle_strip_with_adjacency_12
+dEQP-VK.transform_feedback.simple.winding_triangle_list_with_adjacency_6
+dEQP-VK.transform_feedback.simple.winding_triangle_list_with_adjacency_8
+dEQP-VK.transform_feedback.simple.winding_triangle_list_with_adjacency_10
+dEQP-VK.transform_feedback.simple.winding_triangle_list_with_adjacency_12
+dEQP-VK.transform_feedback.simple.winding_patch_list_6
+dEQP-VK.transform_feedback.simple.winding_patch_list_8
+dEQP-VK.transform_feedback.simple.winding_patch_list_10
+dEQP-VK.transform_feedback.simple.winding_patch_list_12
 dEQP-VK.transform_feedback.simple.draw_indirect_16
 dEQP-VK.transform_feedback.simple.draw_indirect_beginqueryindexed_streamid_0_16
 dEQP-VK.transform_feedback.simple.draw_indirect_endqueryindexed_streamid_0_16
@@ -186516,3 +231535,249 @@
 dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.sample_shading.256x256
 dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.sample_shading.512x512
 dEQP-VK.fragment_shader_interlock.basic.discard.ssbo.shading_rate_unordered.4xaa.sample_shading.1024x1024
+dEQP-VK.drm_format_modifiers.list_modifiers.r4g4_unorm_pack8
+dEQP-VK.drm_format_modifiers.list_modifiers.r4g4b4a4_unorm_pack16
+dEQP-VK.drm_format_modifiers.list_modifiers.b4g4r4a4_unorm_pack16
+dEQP-VK.drm_format_modifiers.list_modifiers.r5g6b5_unorm_pack16
+dEQP-VK.drm_format_modifiers.list_modifiers.b5g6r5_unorm_pack16
+dEQP-VK.drm_format_modifiers.list_modifiers.r5g5b5a1_unorm_pack16
+dEQP-VK.drm_format_modifiers.list_modifiers.b5g5r5a1_unorm_pack16
+dEQP-VK.drm_format_modifiers.list_modifiers.a1r5g5b5_unorm_pack16
+dEQP-VK.drm_format_modifiers.list_modifiers.r8_unorm
+dEQP-VK.drm_format_modifiers.list_modifiers.r8_snorm
+dEQP-VK.drm_format_modifiers.list_modifiers.r8_uscaled
+dEQP-VK.drm_format_modifiers.list_modifiers.r8_sscaled
+dEQP-VK.drm_format_modifiers.list_modifiers.r8_uint
+dEQP-VK.drm_format_modifiers.list_modifiers.r8_sint
+dEQP-VK.drm_format_modifiers.list_modifiers.r8_srgb
+dEQP-VK.drm_format_modifiers.list_modifiers.r8g8_unorm
+dEQP-VK.drm_format_modifiers.list_modifiers.r8g8_snorm
+dEQP-VK.drm_format_modifiers.list_modifiers.r8g8_uscaled
+dEQP-VK.drm_format_modifiers.list_modifiers.r8g8_sscaled
+dEQP-VK.drm_format_modifiers.list_modifiers.r8g8_uint
+dEQP-VK.drm_format_modifiers.list_modifiers.r8g8_sint
+dEQP-VK.drm_format_modifiers.list_modifiers.r8g8_srgb
+dEQP-VK.drm_format_modifiers.list_modifiers.r8g8b8_unorm
+dEQP-VK.drm_format_modifiers.list_modifiers.r8g8b8_snorm
+dEQP-VK.drm_format_modifiers.list_modifiers.r8g8b8_uscaled
+dEQP-VK.drm_format_modifiers.list_modifiers.r8g8b8_sscaled
+dEQP-VK.drm_format_modifiers.list_modifiers.r8g8b8_uint
+dEQP-VK.drm_format_modifiers.list_modifiers.r8g8b8_sint
+dEQP-VK.drm_format_modifiers.list_modifiers.r8g8b8_srgb
+dEQP-VK.drm_format_modifiers.list_modifiers.b8g8r8_unorm
+dEQP-VK.drm_format_modifiers.list_modifiers.b8g8r8_snorm
+dEQP-VK.drm_format_modifiers.list_modifiers.b8g8r8_uscaled
+dEQP-VK.drm_format_modifiers.list_modifiers.b8g8r8_sscaled
+dEQP-VK.drm_format_modifiers.list_modifiers.b8g8r8_uint
+dEQP-VK.drm_format_modifiers.list_modifiers.b8g8r8_sint
+dEQP-VK.drm_format_modifiers.list_modifiers.b8g8r8_srgb
+dEQP-VK.drm_format_modifiers.list_modifiers.r8g8b8a8_unorm
+dEQP-VK.drm_format_modifiers.list_modifiers.r8g8b8a8_snorm
+dEQP-VK.drm_format_modifiers.list_modifiers.r8g8b8a8_uscaled
+dEQP-VK.drm_format_modifiers.list_modifiers.r8g8b8a8_sscaled
+dEQP-VK.drm_format_modifiers.list_modifiers.r8g8b8a8_uint
+dEQP-VK.drm_format_modifiers.list_modifiers.r8g8b8a8_sint
+dEQP-VK.drm_format_modifiers.list_modifiers.r8g8b8a8_srgb
+dEQP-VK.drm_format_modifiers.list_modifiers.b8g8r8a8_unorm
+dEQP-VK.drm_format_modifiers.list_modifiers.b8g8r8a8_snorm
+dEQP-VK.drm_format_modifiers.list_modifiers.b8g8r8a8_uscaled
+dEQP-VK.drm_format_modifiers.list_modifiers.b8g8r8a8_sscaled
+dEQP-VK.drm_format_modifiers.list_modifiers.b8g8r8a8_uint
+dEQP-VK.drm_format_modifiers.list_modifiers.b8g8r8a8_sint
+dEQP-VK.drm_format_modifiers.list_modifiers.b8g8r8a8_srgb
+dEQP-VK.drm_format_modifiers.list_modifiers.a8b8g8r8_unorm_pack32
+dEQP-VK.drm_format_modifiers.list_modifiers.a8b8g8r8_snorm_pack32
+dEQP-VK.drm_format_modifiers.list_modifiers.a8b8g8r8_uscaled_pack32
+dEQP-VK.drm_format_modifiers.list_modifiers.a8b8g8r8_sscaled_pack32
+dEQP-VK.drm_format_modifiers.list_modifiers.a8b8g8r8_uint_pack32
+dEQP-VK.drm_format_modifiers.list_modifiers.a8b8g8r8_sint_pack32
+dEQP-VK.drm_format_modifiers.list_modifiers.a8b8g8r8_srgb_pack32
+dEQP-VK.drm_format_modifiers.list_modifiers.a2r10g10b10_unorm_pack32
+dEQP-VK.drm_format_modifiers.list_modifiers.a2r10g10b10_snorm_pack32
+dEQP-VK.drm_format_modifiers.list_modifiers.a2r10g10b10_uscaled_pack32
+dEQP-VK.drm_format_modifiers.list_modifiers.a2r10g10b10_sscaled_pack32
+dEQP-VK.drm_format_modifiers.list_modifiers.a2r10g10b10_uint_pack32
+dEQP-VK.drm_format_modifiers.list_modifiers.a2r10g10b10_sint_pack32
+dEQP-VK.drm_format_modifiers.list_modifiers.a2b10g10r10_unorm_pack32
+dEQP-VK.drm_format_modifiers.list_modifiers.a2b10g10r10_snorm_pack32
+dEQP-VK.drm_format_modifiers.list_modifiers.a2b10g10r10_uscaled_pack32
+dEQP-VK.drm_format_modifiers.list_modifiers.a2b10g10r10_sscaled_pack32
+dEQP-VK.drm_format_modifiers.list_modifiers.a2b10g10r10_uint_pack32
+dEQP-VK.drm_format_modifiers.list_modifiers.a2b10g10r10_sint_pack32
+dEQP-VK.drm_format_modifiers.list_modifiers.r16_unorm
+dEQP-VK.drm_format_modifiers.list_modifiers.r16_snorm
+dEQP-VK.drm_format_modifiers.list_modifiers.r16_uscaled
+dEQP-VK.drm_format_modifiers.list_modifiers.r16_sscaled
+dEQP-VK.drm_format_modifiers.list_modifiers.r16_uint
+dEQP-VK.drm_format_modifiers.list_modifiers.r16_sint
+dEQP-VK.drm_format_modifiers.list_modifiers.r16_sfloat
+dEQP-VK.drm_format_modifiers.list_modifiers.r16g16_unorm
+dEQP-VK.drm_format_modifiers.list_modifiers.r16g16_snorm
+dEQP-VK.drm_format_modifiers.list_modifiers.r16g16_uscaled
+dEQP-VK.drm_format_modifiers.list_modifiers.r16g16_sscaled
+dEQP-VK.drm_format_modifiers.list_modifiers.r16g16_uint
+dEQP-VK.drm_format_modifiers.list_modifiers.r16g16_sint
+dEQP-VK.drm_format_modifiers.list_modifiers.r16g16_sfloat
+dEQP-VK.drm_format_modifiers.list_modifiers.r16g16b16_unorm
+dEQP-VK.drm_format_modifiers.list_modifiers.r16g16b16_snorm
+dEQP-VK.drm_format_modifiers.list_modifiers.r16g16b16_uscaled
+dEQP-VK.drm_format_modifiers.list_modifiers.r16g16b16_sscaled
+dEQP-VK.drm_format_modifiers.list_modifiers.r16g16b16_uint
+dEQP-VK.drm_format_modifiers.list_modifiers.r16g16b16_sint
+dEQP-VK.drm_format_modifiers.list_modifiers.r16g16b16_sfloat
+dEQP-VK.drm_format_modifiers.list_modifiers.r16g16b16a16_unorm
+dEQP-VK.drm_format_modifiers.list_modifiers.r16g16b16a16_snorm
+dEQP-VK.drm_format_modifiers.list_modifiers.r16g16b16a16_uscaled
+dEQP-VK.drm_format_modifiers.list_modifiers.r16g16b16a16_sscaled
+dEQP-VK.drm_format_modifiers.list_modifiers.r16g16b16a16_uint
+dEQP-VK.drm_format_modifiers.list_modifiers.r16g16b16a16_sint
+dEQP-VK.drm_format_modifiers.list_modifiers.r16g16b16a16_sfloat
+dEQP-VK.drm_format_modifiers.list_modifiers.r32_uint
+dEQP-VK.drm_format_modifiers.list_modifiers.r32_sint
+dEQP-VK.drm_format_modifiers.list_modifiers.r32_sfloat
+dEQP-VK.drm_format_modifiers.list_modifiers.r32g32_uint
+dEQP-VK.drm_format_modifiers.list_modifiers.r32g32_sint
+dEQP-VK.drm_format_modifiers.list_modifiers.r32g32_sfloat
+dEQP-VK.drm_format_modifiers.list_modifiers.r32g32b32_uint
+dEQP-VK.drm_format_modifiers.list_modifiers.r32g32b32_sint
+dEQP-VK.drm_format_modifiers.list_modifiers.r32g32b32_sfloat
+dEQP-VK.drm_format_modifiers.list_modifiers.r32g32b32a32_uint
+dEQP-VK.drm_format_modifiers.list_modifiers.r32g32b32a32_sint
+dEQP-VK.drm_format_modifiers.list_modifiers.r32g32b32a32_sfloat
+dEQP-VK.drm_format_modifiers.list_modifiers.r64_uint
+dEQP-VK.drm_format_modifiers.list_modifiers.r64_sint
+dEQP-VK.drm_format_modifiers.list_modifiers.r64_sfloat
+dEQP-VK.drm_format_modifiers.list_modifiers.r64g64_uint
+dEQP-VK.drm_format_modifiers.list_modifiers.r64g64_sint
+dEQP-VK.drm_format_modifiers.list_modifiers.r64g64_sfloat
+dEQP-VK.drm_format_modifiers.list_modifiers.r64g64b64_uint
+dEQP-VK.drm_format_modifiers.list_modifiers.r64g64b64_sint
+dEQP-VK.drm_format_modifiers.list_modifiers.r64g64b64_sfloat
+dEQP-VK.drm_format_modifiers.list_modifiers.r64g64b64a64_uint
+dEQP-VK.drm_format_modifiers.list_modifiers.r64g64b64a64_sint
+dEQP-VK.drm_format_modifiers.list_modifiers.r64g64b64a64_sfloat
+dEQP-VK.drm_format_modifiers.list_modifiers.b10g11r11_ufloat_pack32
+dEQP-VK.drm_format_modifiers.list_modifiers.e5b9g9r9_ufloat_pack32
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r4g4_unorm_pack8
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r4g4b4a4_unorm_pack16
+dEQP-VK.drm_format_modifiers.create_list_modifiers.b4g4r4a4_unorm_pack16
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r5g6b5_unorm_pack16
+dEQP-VK.drm_format_modifiers.create_list_modifiers.b5g6r5_unorm_pack16
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r5g5b5a1_unorm_pack16
+dEQP-VK.drm_format_modifiers.create_list_modifiers.b5g5r5a1_unorm_pack16
+dEQP-VK.drm_format_modifiers.create_list_modifiers.a1r5g5b5_unorm_pack16
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r8_unorm
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r8_snorm
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r8_uscaled
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r8_sscaled
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r8_uint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r8_sint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r8_srgb
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r8g8_unorm
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r8g8_snorm
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r8g8_uscaled
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r8g8_sscaled
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r8g8_uint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r8g8_sint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r8g8_srgb
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r8g8b8_unorm
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r8g8b8_snorm
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r8g8b8_uscaled
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r8g8b8_sscaled
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r8g8b8_uint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r8g8b8_sint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r8g8b8_srgb
+dEQP-VK.drm_format_modifiers.create_list_modifiers.b8g8r8_unorm
+dEQP-VK.drm_format_modifiers.create_list_modifiers.b8g8r8_snorm
+dEQP-VK.drm_format_modifiers.create_list_modifiers.b8g8r8_uscaled
+dEQP-VK.drm_format_modifiers.create_list_modifiers.b8g8r8_sscaled
+dEQP-VK.drm_format_modifiers.create_list_modifiers.b8g8r8_uint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.b8g8r8_sint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.b8g8r8_srgb
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r8g8b8a8_unorm
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r8g8b8a8_snorm
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r8g8b8a8_uscaled
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r8g8b8a8_sscaled
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r8g8b8a8_uint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r8g8b8a8_sint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r8g8b8a8_srgb
+dEQP-VK.drm_format_modifiers.create_list_modifiers.b8g8r8a8_unorm
+dEQP-VK.drm_format_modifiers.create_list_modifiers.b8g8r8a8_snorm
+dEQP-VK.drm_format_modifiers.create_list_modifiers.b8g8r8a8_uscaled
+dEQP-VK.drm_format_modifiers.create_list_modifiers.b8g8r8a8_sscaled
+dEQP-VK.drm_format_modifiers.create_list_modifiers.b8g8r8a8_uint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.b8g8r8a8_sint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.b8g8r8a8_srgb
+dEQP-VK.drm_format_modifiers.create_list_modifiers.a8b8g8r8_unorm_pack32
+dEQP-VK.drm_format_modifiers.create_list_modifiers.a8b8g8r8_snorm_pack32
+dEQP-VK.drm_format_modifiers.create_list_modifiers.a8b8g8r8_uscaled_pack32
+dEQP-VK.drm_format_modifiers.create_list_modifiers.a8b8g8r8_sscaled_pack32
+dEQP-VK.drm_format_modifiers.create_list_modifiers.a8b8g8r8_uint_pack32
+dEQP-VK.drm_format_modifiers.create_list_modifiers.a8b8g8r8_sint_pack32
+dEQP-VK.drm_format_modifiers.create_list_modifiers.a8b8g8r8_srgb_pack32
+dEQP-VK.drm_format_modifiers.create_list_modifiers.a2r10g10b10_unorm_pack32
+dEQP-VK.drm_format_modifiers.create_list_modifiers.a2r10g10b10_snorm_pack32
+dEQP-VK.drm_format_modifiers.create_list_modifiers.a2r10g10b10_uscaled_pack32
+dEQP-VK.drm_format_modifiers.create_list_modifiers.a2r10g10b10_sscaled_pack32
+dEQP-VK.drm_format_modifiers.create_list_modifiers.a2r10g10b10_uint_pack32
+dEQP-VK.drm_format_modifiers.create_list_modifiers.a2r10g10b10_sint_pack32
+dEQP-VK.drm_format_modifiers.create_list_modifiers.a2b10g10r10_unorm_pack32
+dEQP-VK.drm_format_modifiers.create_list_modifiers.a2b10g10r10_snorm_pack32
+dEQP-VK.drm_format_modifiers.create_list_modifiers.a2b10g10r10_uscaled_pack32
+dEQP-VK.drm_format_modifiers.create_list_modifiers.a2b10g10r10_sscaled_pack32
+dEQP-VK.drm_format_modifiers.create_list_modifiers.a2b10g10r10_uint_pack32
+dEQP-VK.drm_format_modifiers.create_list_modifiers.a2b10g10r10_sint_pack32
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r16_unorm
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r16_snorm
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r16_uscaled
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r16_sscaled
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r16_uint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r16_sint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r16_sfloat
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r16g16_unorm
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r16g16_snorm
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r16g16_uscaled
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r16g16_sscaled
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r16g16_uint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r16g16_sint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r16g16_sfloat
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r16g16b16_unorm
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r16g16b16_snorm
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r16g16b16_uscaled
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r16g16b16_sscaled
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r16g16b16_uint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r16g16b16_sint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r16g16b16_sfloat
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r16g16b16a16_unorm
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r16g16b16a16_snorm
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r16g16b16a16_uscaled
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r16g16b16a16_sscaled
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r16g16b16a16_uint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r16g16b16a16_sint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r16g16b16a16_sfloat
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r32_uint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r32_sint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r32_sfloat
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r32g32_uint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r32g32_sint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r32g32_sfloat
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r32g32b32_uint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r32g32b32_sint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r32g32b32_sfloat
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r32g32b32a32_uint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r32g32b32a32_sint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r32g32b32a32_sfloat
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r64_uint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r64_sint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r64_sfloat
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r64g64_uint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r64g64_sint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r64g64_sfloat
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r64g64b64_uint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r64g64b64_sint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r64g64b64_sfloat
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r64g64b64a64_uint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r64g64b64a64_sint
+dEQP-VK.drm_format_modifiers.create_list_modifiers.r64g64b64a64_sfloat
+dEQP-VK.drm_format_modifiers.create_list_modifiers.b10g11r11_ufloat_pack32
+dEQP-VK.drm_format_modifiers.create_list_modifiers.e5b9g9r9_ufloat_pack32
diff --git a/android/cts/master/vk-master.txt b/android/cts/master/vk-master.txt
index 44ee633..ab6da71 100644
--- a/android/cts/master/vk-master.txt
+++ b/android/cts/master/vk-master.txt
Binary files differ
diff --git a/android/package/AndroidManifest.xml b/android/package/AndroidManifest.xml
index 79c49f0..53b1108 100644
--- a/android/package/AndroidManifest.xml
+++ b/android/package/AndroidManifest.xml
@@ -34,12 +34,12 @@
 		</activity>
 	</application>
 
-	<uses-sdk android:minSdkVersion="13" android:targetSdkVersion="19"/>
 	<uses-feature android:glEsVersion="0x00020000"/>
 	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 	<uses-permission android:name="android.permission.GET_TASKS" />
 	<uses-permission android:name="android.permission.INTERNET" />
 	<uses-permission android:name="android.permission.RUN_INSTRUMENTATION" />
+	<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
 
 	<instrumentation android:label="dEQP-Instrumentation"
 					 android:name="com.drawelements.deqp.testercore.DeqpInstrumentation"
diff --git a/android/package/src/com/drawelements/deqp/execserver/ExecService.java b/android/package/src/com/drawelements/deqp/execserver/ExecService.java
index f8d040d..4f5af18 100644
--- a/android/package/src/com/drawelements/deqp/execserver/ExecService.java
+++ b/android/package/src/com/drawelements/deqp/execserver/ExecService.java
@@ -26,9 +26,13 @@
 import android.app.Service;
 import android.app.Notification;
 import android.app.Notification.Builder;
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
 import android.app.PendingIntent;
+import android.content.Context;
 import android.content.Intent;
 import android.os.Binder;
+import android.os.Build;
 import android.os.IBinder;
 
 import com.drawelements.deqp.execserver.ExecServerActivity;
@@ -83,7 +87,18 @@
 		PendingIntent pm = PendingIntent.getActivity(this, 0, launchIntent, 0);
 
 		// Start as foreground service.
-		Notification.Builder builder = new Notification.Builder(this);
+		String channel = "";
+
+		if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
+		{
+			channel = "com.drawelements.deqp.execserver";
+
+			NotificationChannel noteChan = new NotificationChannel(channel, "dEQP ExecServer", NotificationManager.IMPORTANCE_LOW);
+			NotificationManager manager  = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
+			manager.createNotificationChannel(noteChan);
+		}
+
+		Notification.Builder builder = new Notification.Builder(this, channel);
 		Notification notification = builder.setContentIntent(pm)
 			.setSmallIcon(R.drawable.deqp_app_small).setTicker("ExecServer is running in the background.")
 			.setWhen(System.currentTimeMillis()).setAutoCancel(true).setContentTitle("dEQP ExecServer")
diff --git a/doc/testlog-stylesheet/testlog.xsl b/doc/testlog-stylesheet/testlog.xsl
index f8e1400..1a6502d 100644
--- a/doc/testlog-stylesheet/testlog.xsl
+++ b/doc/testlog-stylesheet/testlog.xsl
@@ -144,6 +144,10 @@
 		<pre class="ShaderSource"><xsl:value-of select="."/></pre>
 	</xsl:template>
 
+	<xsl:template match="SpirVAssemblySource">
+		<pre class="SpirVAssemblySource"><xsl:value-of select="."/></pre>
+	</xsl:template>
+
 	<xsl:template match="InfoLog">
 		<pre class="InfoLog"><xsl:value-of select="."/></pre>
 	</xsl:template>
diff --git a/executor/CMakeLists.txt b/executor/CMakeLists.txt
index 117515a..2a97049 100644
--- a/executor/CMakeLists.txt
+++ b/executor/CMakeLists.txt
@@ -14,8 +14,6 @@
 	xeCommLink.hpp
 	xeContainerFormatParser.cpp
 	xeContainerFormatParser.hpp
-	xeDefs.cpp
-	xeDefs.hpp
 	xeLocalTcpIpLink.cpp
 	xeLocalTcpIpLink.hpp
 	xeTcpIpLink.cpp
@@ -32,13 +30,12 @@
 	xeTestLogWriter.hpp
 	xeTestResultParser.cpp
 	xeTestResultParser.hpp
-	xeXMLParser.cpp
-	xeXMLParser.hpp
 	xeXMLWriter.cpp
 	xeXMLWriter.hpp
 	)
 
 set(XECORE_LIBS
+	xexml
 	xscore
 	decpp
 	deutil
@@ -50,6 +47,7 @@
 target_link_libraries(xecore ${XECORE_LIBS})
 
 include_directories(.)
+include_directories(../framework/xexml)
 
 if (DE_OS_IS_WIN32 OR DE_OS_IS_UNIX OR DE_OS_IS_OSX OR DE_OS_IS_ANDROID)
 	add_executable(executor tools/xeCommandLineExecutor.cpp)
diff --git a/external/fetch_kc_cts.py b/external/fetch_kc_cts.py
index 8f8b3fc..86c727c 100644
--- a/external/fetch_kc_cts.py
+++ b/external/fetch_kc_cts.py
@@ -32,7 +32,7 @@
 from build.common import *
 
 EXTERNAL_DIR	= os.path.realpath(os.path.normpath(os.path.dirname(__file__)))
-SHA1 = "0f89d064412a69e9d39be6c2d5ec83ed27ee99a9"
+SHA1 = "9497ba3240f19b1a0138ebf8cb3c8b6c2bc99b3e"
 
 PACKAGES = [
 	GitRepo(
diff --git a/external/fetch_sources.py b/external/fetch_sources.py
index 9ede463..4e4c4d0 100644
--- a/external/fetch_sources.py
+++ b/external/fetch_sources.py
@@ -316,7 +316,7 @@
 	GitRepo(
 		"https://github.com/KhronosGroup/SPIRV-Tools.git",
 		None,
-		"34be23373b9e73694c3b214ba857283bad65aedb",
+		"d2b486219495594f2e5d0e8d457fc234a3460b3b",
 		"spirv-tools"),
 	GitRepo(
 		"https://github.com/KhronosGroup/glslang.git",
@@ -332,7 +332,7 @@
 	GitRepo(
 		"https://github.com/google/amber.git",
 		None,
-		"ed3e05c945aa7a3559ef616f63a798fede19f363",
+		"a40bef4dba98d2d80b48e5a940d8574fbfceb197",
 		"amber"),
 ]
 
diff --git a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl42-master.txt b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl42-master.txt
index 9287485..a64a7f0 100644
--- a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl42-master.txt
+++ b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl42-master.txt
@@ -4084,6 +4084,7 @@
 KHR-GL42.texture_view.gettexparameter
 KHR-GL42.texture_view.errors
 KHR-GL42.texture_view.view_sampling
+KHR-GL42.texture_view.view_classes
 KHR-GL42.texture_view.coherency
 KHR-GL42.texture_view.base_and_max_levels
 KHR-GL42.texture_view.reference_counting
diff --git a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl43-master.txt b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl43-master.txt
index 7411192..f9a3ef6 100644
--- a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl43-master.txt
+++ b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl43-master.txt
@@ -4084,6 +4084,7 @@
 KHR-GL43.texture_view.gettexparameter
 KHR-GL43.texture_view.errors
 KHR-GL43.texture_view.view_sampling
+KHR-GL43.texture_view.view_classes
 KHR-GL43.texture_view.coherency
 KHR-GL43.texture_view.base_and_max_levels
 KHR-GL43.texture_view.reference_counting
diff --git a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl44-master.txt b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl44-master.txt
index 63901ab..1e66a37 100644
--- a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl44-master.txt
+++ b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl44-master.txt
@@ -4084,6 +4084,7 @@
 KHR-GL44.texture_view.gettexparameter
 KHR-GL44.texture_view.errors
 KHR-GL44.texture_view.view_sampling
+KHR-GL44.texture_view.view_classes
 KHR-GL44.texture_view.coherency
 KHR-GL44.texture_view.base_and_max_levels
 KHR-GL44.texture_view.reference_counting
diff --git a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl45-master.txt b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl45-master.txt
index f031ddd..13de73c 100644
--- a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl45-master.txt
+++ b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl45-master.txt
@@ -4085,6 +4085,7 @@
 KHR-GL45.texture_view.gettexparameter
 KHR-GL45.texture_view.errors
 KHR-GL45.texture_view.view_sampling
+KHR-GL45.texture_view.view_classes
 KHR-GL45.texture_view.coherency
 KHR-GL45.texture_view.base_and_max_levels
 KHR-GL45.texture_view.reference_counting
diff --git a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl46-master.txt b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl46-master.txt
index 4f1429d..a0e7c97 100644
--- a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl46-master.txt
+++ b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.0.x/gl46-master.txt
@@ -4085,6 +4085,7 @@
 KHR-GL46.texture_view.gettexparameter
 KHR-GL46.texture_view.errors
 KHR-GL46.texture_view.view_sampling
+KHR-GL46.texture_view.view_classes
 KHR-GL46.texture_view.coherency
 KHR-GL46.texture_view.base_and_max_levels
 KHR-GL46.texture_view.reference_counting
diff --git a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl33-master.txt b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl33-master.txt
index 991b646..716d41e 100644
--- a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl33-master.txt
+++ b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl33-master.txt
@@ -3071,3 +3071,901 @@
 KHR-GL33.texture_swizzle.intial_state
 KHR-GL33.texture_swizzle.smoke
 KHR-GL33.texture_swizzle.functional
+KHR-GL33.nearest_edge.offset_left
+KHR-GL33.nearest_edge.offset_right
+KHR-GL33.pixelstoragemodes.teximage2d.r8.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.r8.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.r8.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.r8.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.r8.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.r8.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.r8snorm.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.r8snorm.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.r8snorm.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.r8snorm.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.r8snorm.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.r8snorm.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.r16f.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.r16f.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.r16f.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.r16f.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.r16f.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.r16f.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.r32f.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.r32f.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.r32f.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.r32f.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.r32f.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.r32f.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.r8ui.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.r8ui.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.r8ui.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.r8ui.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.r8ui.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.r8ui.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.r8i.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.r8i.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.r8i.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.r8i.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.r8i.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.r8i.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.r16ui.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.r16ui.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.r16ui.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.r16ui.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.r16ui.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.r16ui.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.r16i.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.r16i.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.r16i.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.r16i.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.r16i.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.r16i.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.r32ui.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.r32ui.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.r32ui.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.r32ui.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.r32ui.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.r32ui.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.r32i.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.r32i.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.r32i.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.r32i.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.r32i.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.r32i.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rg8.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rg8.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rg8.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rg8.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rg8.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rg8.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rg8snorm.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rg8snorm.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rg8snorm.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rg8snorm.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rg8snorm.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rg8snorm.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rg16f.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rg16f.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rg16f.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rg16f.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rg16f.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rg16f.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rg32f.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rg32f.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rg32f.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rg32f.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rg32f.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rg32f.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rg8ui.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rg8ui.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rg8ui.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rg8ui.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rg8ui.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rg8ui.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rg8i.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rg8i.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rg8i.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rg8i.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rg8i.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rg8i.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rg16ui.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rg16ui.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rg16ui.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rg16ui.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rg16ui.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rg16ui.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rg16i.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rg16i.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rg16i.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rg16i.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rg16i.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rg16i.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rg32ui.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rg32ui.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rg32ui.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rg32ui.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rg32ui.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rg32ui.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rg32i.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rg32i.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rg32i.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rg32i.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rg32i.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rg32i.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rgb8.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb8.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb8.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb8.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgb8.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgb8.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rgb565.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb565.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb565.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb565.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgb565.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgb565.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rgb8snorm.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb8snorm.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb8snorm.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb8snorm.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgb8snorm.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgb8snorm.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.r11g11b10f.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.r11g11b10f.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.r11g11b10f.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.r11g11b10f.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.r11g11b10f.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.r11g11b10f.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rgb16f.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb16f.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb16f.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb16f.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgb16f.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgb16f.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rgb32f.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb32f.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb32f.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb32f.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgb32f.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgb32f.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rgb8ui.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb8ui.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb8ui.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb8ui.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgb8ui.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgb8ui.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rgb8i.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb8i.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb8i.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb8i.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgb8i.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgb8i.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rgb16ui.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb16ui.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb16ui.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb16ui.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgb16ui.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgb16ui.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rgb16i.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb16i.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb16i.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb16i.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgb16i.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgb16i.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rgb32ui.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb32ui.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb32ui.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb32ui.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgb32ui.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgb32ui.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rgb32i.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb32i.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb32i.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb32i.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgb32i.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgb32i.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rgba8.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba8.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba8.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba8.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgba8.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgba8.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rgba8snorm.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba8snorm.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba8snorm.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba8snorm.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgba8snorm.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgba8snorm.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rgb5a1.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb5a1.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb5a1.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb5a1.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgb5a1.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgb5a1.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rgba4.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba4.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba4.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba4.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgba4.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgba4.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rgb10a2.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb10a2.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb10a2.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb10a2.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgb10a2.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgb10a2.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rgba16f.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba16f.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba16f.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba16f.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgba16f.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgba16f.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rgba32f.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba32f.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba32f.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba32f.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgba32f.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgba32f.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rgba8ui.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba8ui.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba8ui.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba8ui.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgba8ui.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgba8ui.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rgba8i.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba8i.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba8i.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba8i.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgba8i.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgba8i.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rgb10a2ui.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb10a2ui.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb10a2ui.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgb10a2ui.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgb10a2ui.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgb10a2ui.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rgba16ui.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba16ui.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba16ui.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba16ui.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgba16ui.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgba16ui.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rgba16i.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba16i.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba16i.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba16i.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgba16i.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgba16i.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rgba32i.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba32i.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba32i.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba32i.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgba32i.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgba32i.16_16
+KHR-GL33.pixelstoragemodes.teximage2d.rgba32ui.0_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba32ui.1_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba32ui.16_0
+KHR-GL33.pixelstoragemodes.teximage2d.rgba32ui.1_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgba32ui.16_1
+KHR-GL33.pixelstoragemodes.teximage2d.rgba32ui.16_16
+KHR-GL33.pixelstoragemodes.teximage3d.r8.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r8.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r8.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r8.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.r8.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.r8.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.r8.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.r8.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.r8.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.r8.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.r8snorm.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r8snorm.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r8snorm.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r8snorm.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.r8snorm.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.r8snorm.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.r8snorm.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.r8snorm.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.r8snorm.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.r8snorm.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.r16f.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r16f.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r16f.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r16f.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.r16f.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.r16f.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.r16f.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.r16f.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.r16f.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.r16f.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.r32f.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r32f.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r32f.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r32f.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.r32f.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.r32f.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.r32f.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.r32f.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.r32f.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.r32f.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.r8ui.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r8ui.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r8ui.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r8ui.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.r8ui.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.r8ui.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.r8ui.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.r8ui.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.r8ui.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.r8ui.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.r8i.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r8i.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r8i.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r8i.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.r8i.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.r8i.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.r8i.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.r8i.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.r8i.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.r8i.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.r16ui.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r16ui.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r16ui.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r16ui.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.r16ui.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.r16ui.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.r16ui.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.r16ui.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.r16ui.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.r16ui.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.r16i.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r16i.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r16i.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r16i.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.r16i.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.r16i.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.r16i.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.r16i.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.r16i.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.r16i.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.r32ui.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r32ui.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r32ui.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r32ui.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.r32ui.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.r32ui.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.r32ui.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.r32ui.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.r32ui.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.r32ui.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.r32i.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r32i.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r32i.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r32i.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.r32i.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.r32i.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.r32i.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.r32i.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.r32i.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.r32i.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rg8.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg8.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg8.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg8.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg8.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg8.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg8.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rg8.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rg8.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rg8.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rg8snorm.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg8snorm.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg8snorm.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg8snorm.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg8snorm.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg8snorm.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg8snorm.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rg8snorm.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rg8snorm.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rg8snorm.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rg16f.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg16f.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg16f.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg16f.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg16f.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg16f.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg16f.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rg16f.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rg16f.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rg16f.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rg32f.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg32f.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg32f.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg32f.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg32f.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg32f.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg32f.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rg32f.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rg32f.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rg32f.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rg8ui.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg8ui.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg8ui.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg8ui.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg8ui.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg8ui.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg8ui.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rg8ui.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rg8ui.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rg8ui.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rg8i.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg8i.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg8i.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg8i.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg8i.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg8i.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg8i.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rg8i.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rg8i.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rg8i.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rg16ui.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg16ui.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg16ui.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg16ui.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg16ui.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg16ui.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg16ui.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rg16ui.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rg16ui.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rg16ui.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rg16i.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg16i.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg16i.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg16i.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg16i.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg16i.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg16i.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rg16i.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rg16i.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rg16i.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rg32ui.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg32ui.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg32ui.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg32ui.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg32ui.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg32ui.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg32ui.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rg32ui.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rg32ui.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rg32ui.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rg32i.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg32i.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg32i.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg32i.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg32i.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg32i.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rg32i.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rg32i.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rg32i.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rg32i.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rgb565.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb565.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb565.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb565.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb565.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb565.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb565.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb565.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb565.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb565.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8snorm.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8snorm.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8snorm.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8snorm.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8snorm.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8snorm.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8snorm.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8snorm.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8snorm.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8snorm.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.r11g11b10f.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r11g11b10f.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r11g11b10f.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.r11g11b10f.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.r11g11b10f.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.r11g11b10f.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.r11g11b10f.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.r11g11b10f.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.r11g11b10f.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.r11g11b10f.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rgb16f.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb16f.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb16f.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb16f.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb16f.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb16f.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb16f.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb16f.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb16f.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb16f.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rgb32f.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb32f.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb32f.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb32f.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb32f.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb32f.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb32f.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb32f.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb32f.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb32f.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8ui.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8ui.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8ui.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8ui.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8ui.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8ui.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8ui.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8ui.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8ui.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8ui.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8i.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8i.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8i.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8i.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8i.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8i.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8i.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8i.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8i.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb8i.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rgb16ui.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb16ui.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb16ui.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb16ui.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb16ui.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb16ui.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb16ui.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb16ui.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb16ui.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb16ui.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rgb16i.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb16i.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb16i.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb16i.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb16i.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb16i.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb16i.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb16i.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb16i.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb16i.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rgb32ui.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb32ui.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb32ui.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb32ui.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb32ui.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb32ui.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb32ui.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb32ui.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb32ui.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb32ui.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rgb32i.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb32i.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb32i.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb32i.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb32i.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb32i.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb32i.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb32i.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb32i.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb32i.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8snorm.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8snorm.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8snorm.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8snorm.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8snorm.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8snorm.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8snorm.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8snorm.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8snorm.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8snorm.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rgb5a1.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb5a1.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb5a1.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb5a1.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb5a1.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb5a1.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb5a1.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb5a1.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb5a1.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb5a1.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rgba4.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba4.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba4.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba4.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba4.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba4.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba4.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba4.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba4.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba4.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rgb10a2.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb10a2.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb10a2.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb10a2.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb10a2.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb10a2.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb10a2.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb10a2.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb10a2.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb10a2.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rgba16f.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba16f.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba16f.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba16f.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba16f.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba16f.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba16f.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba16f.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba16f.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba16f.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rgba32f.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba32f.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba32f.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba32f.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba32f.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba32f.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba32f.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba32f.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba32f.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba32f.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8ui.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8ui.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8ui.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8ui.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8ui.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8ui.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8ui.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8ui.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8ui.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8ui.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8i.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8i.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8i.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8i.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8i.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8i.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8i.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8i.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8i.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba8i.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rgb10a2ui.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb10a2ui.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb10a2ui.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb10a2ui.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb10a2ui.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgb10a2ui.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb10a2ui.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rgba16ui.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba16ui.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba16ui.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba16ui.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba16ui.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba16ui.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba16ui.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba16ui.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba16ui.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba16ui.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rgba16i.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba16i.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba16i.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba16i.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba16i.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba16i.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba16i.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba16i.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba16i.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba16i.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rgba32i.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba32i.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba32i.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba32i.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba32i.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba32i.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba32i.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba32i.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba32i.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba32i.16_16_4
+KHR-GL33.pixelstoragemodes.teximage3d.rgba32ui.0_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba32ui.1_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba32ui.16_0_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba32ui.1_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba32ui.16_1_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba32ui.16_16_0
+KHR-GL33.pixelstoragemodes.teximage3d.rgba32ui.1_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba32ui.16_1_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba32ui.16_16_1
+KHR-GL33.pixelstoragemodes.teximage3d.rgba32ui.16_16_4
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_0
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_0
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_0
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_0
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_4
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_4
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_4
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_4
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_16
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_16
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_16
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_16
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_32
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_32
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_32
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_32
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_0
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_0
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_0
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_0
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_5
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_5
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_5
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_5
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_15
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_15
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_15
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_15
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_30
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_30
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_30
+KHR-GL33.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_30
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_0
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_1
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_4
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_8
+KHR-GL33.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_8
diff --git a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl40-master.txt b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl40-master.txt
index 519fcf0..1e10f49 100644
--- a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl40-master.txt
+++ b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl40-master.txt
@@ -3071,6 +3071,904 @@
 KHR-GL40.texture_swizzle.intial_state
 KHR-GL40.texture_swizzle.smoke
 KHR-GL40.texture_swizzle.functional
+KHR-GL40.nearest_edge.offset_left
+KHR-GL40.nearest_edge.offset_right
+KHR-GL40.pixelstoragemodes.teximage2d.r8.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.r8.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.r8.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.r8.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.r8.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.r8.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.r8snorm.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.r8snorm.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.r8snorm.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.r8snorm.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.r8snorm.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.r8snorm.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.r16f.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.r16f.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.r16f.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.r16f.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.r16f.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.r16f.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.r32f.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.r32f.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.r32f.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.r32f.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.r32f.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.r32f.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.r8ui.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.r8ui.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.r8ui.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.r8ui.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.r8ui.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.r8ui.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.r8i.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.r8i.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.r8i.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.r8i.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.r8i.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.r8i.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.r16ui.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.r16ui.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.r16ui.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.r16ui.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.r16ui.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.r16ui.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.r16i.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.r16i.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.r16i.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.r16i.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.r16i.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.r16i.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.r32ui.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.r32ui.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.r32ui.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.r32ui.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.r32ui.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.r32ui.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.r32i.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.r32i.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.r32i.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.r32i.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.r32i.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.r32i.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rg8.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rg8.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rg8.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rg8.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rg8.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rg8.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rg8snorm.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rg8snorm.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rg8snorm.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rg8snorm.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rg8snorm.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rg8snorm.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rg16f.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rg16f.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rg16f.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rg16f.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rg16f.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rg16f.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rg32f.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rg32f.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rg32f.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rg32f.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rg32f.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rg32f.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rg8ui.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rg8ui.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rg8ui.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rg8ui.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rg8ui.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rg8ui.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rg8i.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rg8i.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rg8i.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rg8i.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rg8i.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rg8i.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rg16ui.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rg16ui.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rg16ui.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rg16ui.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rg16ui.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rg16ui.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rg16i.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rg16i.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rg16i.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rg16i.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rg16i.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rg16i.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rg32ui.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rg32ui.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rg32ui.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rg32ui.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rg32ui.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rg32ui.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rg32i.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rg32i.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rg32i.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rg32i.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rg32i.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rg32i.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rgb8.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb8.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb8.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb8.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgb8.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgb8.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rgb565.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb565.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb565.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb565.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgb565.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgb565.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rgb8snorm.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb8snorm.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb8snorm.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb8snorm.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgb8snorm.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgb8snorm.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.r11g11b10f.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.r11g11b10f.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.r11g11b10f.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.r11g11b10f.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.r11g11b10f.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.r11g11b10f.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rgb16f.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb16f.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb16f.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb16f.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgb16f.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgb16f.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rgb32f.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb32f.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb32f.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb32f.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgb32f.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgb32f.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rgb8ui.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb8ui.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb8ui.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb8ui.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgb8ui.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgb8ui.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rgb8i.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb8i.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb8i.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb8i.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgb8i.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgb8i.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rgb16ui.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb16ui.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb16ui.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb16ui.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgb16ui.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgb16ui.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rgb16i.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb16i.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb16i.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb16i.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgb16i.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgb16i.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rgb32ui.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb32ui.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb32ui.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb32ui.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgb32ui.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgb32ui.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rgb32i.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb32i.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb32i.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb32i.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgb32i.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgb32i.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rgba8.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba8.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba8.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba8.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgba8.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgba8.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rgba8snorm.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba8snorm.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba8snorm.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba8snorm.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgba8snorm.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgba8snorm.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rgb5a1.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb5a1.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb5a1.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb5a1.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgb5a1.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgb5a1.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rgba4.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba4.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba4.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba4.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgba4.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgba4.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rgb10a2.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb10a2.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb10a2.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb10a2.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgb10a2.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgb10a2.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rgba16f.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba16f.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba16f.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba16f.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgba16f.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgba16f.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rgba32f.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba32f.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba32f.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba32f.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgba32f.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgba32f.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rgba8ui.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba8ui.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba8ui.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba8ui.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgba8ui.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgba8ui.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rgba8i.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba8i.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba8i.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba8i.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgba8i.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgba8i.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rgb10a2ui.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb10a2ui.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb10a2ui.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgb10a2ui.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgb10a2ui.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgb10a2ui.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rgba16ui.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba16ui.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba16ui.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba16ui.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgba16ui.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgba16ui.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rgba16i.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba16i.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba16i.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba16i.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgba16i.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgba16i.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rgba32i.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba32i.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba32i.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba32i.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgba32i.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgba32i.16_16
+KHR-GL40.pixelstoragemodes.teximage2d.rgba32ui.0_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba32ui.1_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba32ui.16_0
+KHR-GL40.pixelstoragemodes.teximage2d.rgba32ui.1_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgba32ui.16_1
+KHR-GL40.pixelstoragemodes.teximage2d.rgba32ui.16_16
+KHR-GL40.pixelstoragemodes.teximage3d.r8.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r8.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r8.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r8.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.r8.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.r8.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.r8.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.r8.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.r8.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.r8.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.r8snorm.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r8snorm.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r8snorm.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r8snorm.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.r8snorm.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.r8snorm.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.r8snorm.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.r8snorm.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.r8snorm.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.r8snorm.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.r16f.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r16f.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r16f.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r16f.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.r16f.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.r16f.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.r16f.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.r16f.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.r16f.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.r16f.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.r32f.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r32f.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r32f.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r32f.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.r32f.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.r32f.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.r32f.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.r32f.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.r32f.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.r32f.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.r8ui.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r8ui.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r8ui.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r8ui.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.r8ui.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.r8ui.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.r8ui.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.r8ui.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.r8ui.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.r8ui.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.r8i.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r8i.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r8i.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r8i.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.r8i.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.r8i.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.r8i.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.r8i.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.r8i.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.r8i.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.r16ui.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r16ui.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r16ui.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r16ui.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.r16ui.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.r16ui.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.r16ui.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.r16ui.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.r16ui.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.r16ui.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.r16i.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r16i.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r16i.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r16i.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.r16i.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.r16i.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.r16i.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.r16i.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.r16i.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.r16i.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.r32ui.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r32ui.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r32ui.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r32ui.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.r32ui.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.r32ui.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.r32ui.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.r32ui.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.r32ui.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.r32ui.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.r32i.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r32i.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r32i.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r32i.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.r32i.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.r32i.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.r32i.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.r32i.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.r32i.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.r32i.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rg8.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg8.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg8.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg8.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg8.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg8.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg8.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rg8.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rg8.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rg8.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rg8snorm.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg8snorm.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg8snorm.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg8snorm.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg8snorm.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg8snorm.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg8snorm.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rg8snorm.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rg8snorm.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rg8snorm.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rg16f.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg16f.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg16f.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg16f.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg16f.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg16f.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg16f.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rg16f.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rg16f.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rg16f.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rg32f.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg32f.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg32f.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg32f.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg32f.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg32f.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg32f.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rg32f.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rg32f.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rg32f.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rg8ui.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg8ui.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg8ui.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg8ui.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg8ui.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg8ui.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg8ui.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rg8ui.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rg8ui.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rg8ui.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rg8i.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg8i.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg8i.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg8i.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg8i.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg8i.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg8i.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rg8i.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rg8i.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rg8i.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rg16ui.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg16ui.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg16ui.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg16ui.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg16ui.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg16ui.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg16ui.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rg16ui.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rg16ui.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rg16ui.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rg16i.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg16i.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg16i.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg16i.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg16i.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg16i.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg16i.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rg16i.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rg16i.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rg16i.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rg32ui.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg32ui.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg32ui.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg32ui.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg32ui.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg32ui.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg32ui.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rg32ui.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rg32ui.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rg32ui.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rg32i.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg32i.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg32i.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg32i.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg32i.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg32i.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rg32i.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rg32i.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rg32i.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rg32i.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rgb565.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb565.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb565.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb565.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb565.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb565.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb565.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb565.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb565.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb565.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8snorm.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8snorm.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8snorm.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8snorm.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8snorm.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8snorm.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8snorm.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8snorm.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8snorm.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8snorm.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.r11g11b10f.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r11g11b10f.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r11g11b10f.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.r11g11b10f.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.r11g11b10f.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.r11g11b10f.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.r11g11b10f.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.r11g11b10f.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.r11g11b10f.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.r11g11b10f.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rgb16f.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb16f.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb16f.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb16f.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb16f.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb16f.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb16f.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb16f.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb16f.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb16f.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rgb32f.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb32f.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb32f.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb32f.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb32f.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb32f.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb32f.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb32f.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb32f.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb32f.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8ui.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8ui.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8ui.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8ui.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8ui.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8ui.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8ui.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8ui.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8ui.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8ui.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8i.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8i.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8i.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8i.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8i.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8i.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8i.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8i.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8i.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb8i.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rgb16ui.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb16ui.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb16ui.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb16ui.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb16ui.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb16ui.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb16ui.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb16ui.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb16ui.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb16ui.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rgb16i.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb16i.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb16i.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb16i.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb16i.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb16i.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb16i.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb16i.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb16i.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb16i.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rgb32ui.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb32ui.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb32ui.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb32ui.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb32ui.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb32ui.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb32ui.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb32ui.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb32ui.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb32ui.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rgb32i.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb32i.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb32i.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb32i.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb32i.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb32i.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb32i.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb32i.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb32i.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb32i.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8snorm.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8snorm.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8snorm.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8snorm.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8snorm.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8snorm.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8snorm.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8snorm.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8snorm.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8snorm.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rgb5a1.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb5a1.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb5a1.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb5a1.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb5a1.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb5a1.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb5a1.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb5a1.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb5a1.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb5a1.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rgba4.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba4.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba4.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba4.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba4.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba4.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba4.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba4.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba4.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba4.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rgb10a2.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb10a2.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb10a2.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb10a2.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb10a2.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb10a2.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb10a2.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb10a2.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb10a2.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb10a2.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rgba16f.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba16f.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba16f.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba16f.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba16f.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba16f.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba16f.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba16f.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba16f.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba16f.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rgba32f.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba32f.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba32f.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba32f.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba32f.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba32f.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba32f.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba32f.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba32f.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba32f.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8ui.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8ui.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8ui.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8ui.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8ui.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8ui.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8ui.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8ui.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8ui.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8ui.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8i.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8i.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8i.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8i.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8i.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8i.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8i.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8i.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8i.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba8i.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rgb10a2ui.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb10a2ui.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb10a2ui.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb10a2ui.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb10a2ui.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgb10a2ui.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb10a2ui.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rgba16ui.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba16ui.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba16ui.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba16ui.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba16ui.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba16ui.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba16ui.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba16ui.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba16ui.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba16ui.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rgba16i.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba16i.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba16i.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba16i.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba16i.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba16i.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba16i.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba16i.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba16i.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba16i.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rgba32i.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba32i.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba32i.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba32i.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba32i.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba32i.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba32i.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba32i.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba32i.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba32i.16_16_4
+KHR-GL40.pixelstoragemodes.teximage3d.rgba32ui.0_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba32ui.1_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba32ui.16_0_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba32ui.1_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba32ui.16_1_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba32ui.16_16_0
+KHR-GL40.pixelstoragemodes.teximage3d.rgba32ui.1_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba32ui.16_1_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba32ui.16_16_1
+KHR-GL40.pixelstoragemodes.teximage3d.rgba32ui.16_16_4
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_0
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_0
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_0
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_0
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_4
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_4
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_4
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_4
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_16
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_16
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_16
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_16
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_32
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_32
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_32
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_32
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_0
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_0
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_0
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_0
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_5
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_5
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_5
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_5
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_15
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_15
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_15
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_15
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_30
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_30
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_30
+KHR-GL40.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_30
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_0
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_1
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_4
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_8
+KHR-GL40.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_8
 KHR-GL40.draw_elements_base_vertex_tests.basevertex_behavior1
 KHR-GL40.draw_elements_base_vertex_tests.basevertex_behavior2
 KHR-GL40.draw_elements_base_vertex_tests.AEP_shader_stages
diff --git a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl41-master.txt b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl41-master.txt
index 8a9c7e0..63788f9 100644
--- a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl41-master.txt
+++ b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl41-master.txt
@@ -3071,6 +3071,904 @@
 KHR-GL41.texture_swizzle.intial_state
 KHR-GL41.texture_swizzle.smoke
 KHR-GL41.texture_swizzle.functional
+KHR-GL41.nearest_edge.offset_left
+KHR-GL41.nearest_edge.offset_right
+KHR-GL41.pixelstoragemodes.teximage2d.r8.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.r8.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.r8.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.r8.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.r8.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.r8.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.r8snorm.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.r8snorm.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.r8snorm.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.r8snorm.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.r8snorm.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.r8snorm.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.r16f.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.r16f.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.r16f.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.r16f.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.r16f.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.r16f.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.r32f.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.r32f.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.r32f.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.r32f.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.r32f.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.r32f.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.r8ui.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.r8ui.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.r8ui.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.r8ui.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.r8ui.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.r8ui.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.r8i.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.r8i.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.r8i.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.r8i.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.r8i.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.r8i.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.r16ui.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.r16ui.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.r16ui.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.r16ui.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.r16ui.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.r16ui.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.r16i.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.r16i.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.r16i.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.r16i.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.r16i.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.r16i.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.r32ui.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.r32ui.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.r32ui.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.r32ui.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.r32ui.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.r32ui.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.r32i.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.r32i.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.r32i.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.r32i.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.r32i.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.r32i.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rg8.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rg8.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rg8.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rg8.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rg8.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rg8.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rg8snorm.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rg8snorm.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rg8snorm.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rg8snorm.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rg8snorm.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rg8snorm.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rg16f.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rg16f.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rg16f.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rg16f.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rg16f.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rg16f.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rg32f.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rg32f.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rg32f.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rg32f.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rg32f.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rg32f.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rg8ui.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rg8ui.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rg8ui.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rg8ui.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rg8ui.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rg8ui.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rg8i.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rg8i.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rg8i.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rg8i.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rg8i.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rg8i.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rg16ui.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rg16ui.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rg16ui.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rg16ui.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rg16ui.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rg16ui.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rg16i.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rg16i.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rg16i.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rg16i.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rg16i.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rg16i.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rg32ui.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rg32ui.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rg32ui.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rg32ui.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rg32ui.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rg32ui.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rg32i.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rg32i.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rg32i.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rg32i.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rg32i.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rg32i.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rgb8.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb8.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb8.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb8.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgb8.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgb8.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rgb565.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb565.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb565.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb565.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgb565.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgb565.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rgb8snorm.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb8snorm.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb8snorm.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb8snorm.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgb8snorm.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgb8snorm.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.r11g11b10f.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.r11g11b10f.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.r11g11b10f.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.r11g11b10f.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.r11g11b10f.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.r11g11b10f.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rgb16f.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb16f.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb16f.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb16f.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgb16f.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgb16f.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rgb32f.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb32f.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb32f.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb32f.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgb32f.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgb32f.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rgb8ui.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb8ui.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb8ui.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb8ui.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgb8ui.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgb8ui.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rgb8i.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb8i.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb8i.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb8i.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgb8i.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgb8i.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rgb16ui.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb16ui.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb16ui.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb16ui.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgb16ui.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgb16ui.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rgb16i.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb16i.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb16i.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb16i.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgb16i.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgb16i.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rgb32ui.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb32ui.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb32ui.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb32ui.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgb32ui.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgb32ui.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rgb32i.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb32i.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb32i.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb32i.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgb32i.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgb32i.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rgba8.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba8.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba8.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba8.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgba8.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgba8.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rgba8snorm.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba8snorm.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba8snorm.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba8snorm.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgba8snorm.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgba8snorm.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rgb5a1.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb5a1.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb5a1.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb5a1.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgb5a1.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgb5a1.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rgba4.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba4.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba4.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba4.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgba4.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgba4.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rgb10a2.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb10a2.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb10a2.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb10a2.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgb10a2.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgb10a2.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rgba16f.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba16f.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba16f.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba16f.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgba16f.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgba16f.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rgba32f.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba32f.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba32f.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba32f.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgba32f.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgba32f.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rgba8ui.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba8ui.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba8ui.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba8ui.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgba8ui.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgba8ui.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rgba8i.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba8i.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba8i.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba8i.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgba8i.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgba8i.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rgb10a2ui.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb10a2ui.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb10a2ui.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgb10a2ui.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgb10a2ui.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgb10a2ui.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rgba16ui.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba16ui.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba16ui.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba16ui.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgba16ui.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgba16ui.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rgba16i.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba16i.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba16i.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba16i.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgba16i.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgba16i.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rgba32i.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba32i.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba32i.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba32i.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgba32i.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgba32i.16_16
+KHR-GL41.pixelstoragemodes.teximage2d.rgba32ui.0_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba32ui.1_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba32ui.16_0
+KHR-GL41.pixelstoragemodes.teximage2d.rgba32ui.1_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgba32ui.16_1
+KHR-GL41.pixelstoragemodes.teximage2d.rgba32ui.16_16
+KHR-GL41.pixelstoragemodes.teximage3d.r8.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r8.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r8.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r8.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.r8.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.r8.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.r8.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.r8.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.r8.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.r8.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.r8snorm.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r8snorm.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r8snorm.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r8snorm.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.r8snorm.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.r8snorm.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.r8snorm.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.r8snorm.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.r8snorm.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.r8snorm.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.r16f.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r16f.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r16f.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r16f.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.r16f.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.r16f.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.r16f.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.r16f.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.r16f.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.r16f.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.r32f.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r32f.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r32f.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r32f.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.r32f.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.r32f.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.r32f.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.r32f.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.r32f.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.r32f.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.r8ui.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r8ui.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r8ui.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r8ui.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.r8ui.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.r8ui.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.r8ui.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.r8ui.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.r8ui.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.r8ui.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.r8i.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r8i.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r8i.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r8i.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.r8i.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.r8i.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.r8i.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.r8i.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.r8i.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.r8i.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.r16ui.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r16ui.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r16ui.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r16ui.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.r16ui.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.r16ui.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.r16ui.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.r16ui.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.r16ui.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.r16ui.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.r16i.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r16i.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r16i.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r16i.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.r16i.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.r16i.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.r16i.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.r16i.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.r16i.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.r16i.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.r32ui.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r32ui.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r32ui.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r32ui.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.r32ui.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.r32ui.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.r32ui.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.r32ui.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.r32ui.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.r32ui.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.r32i.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r32i.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r32i.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r32i.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.r32i.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.r32i.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.r32i.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.r32i.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.r32i.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.r32i.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rg8.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg8.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg8.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg8.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg8.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg8.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg8.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rg8.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rg8.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rg8.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rg8snorm.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg8snorm.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg8snorm.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg8snorm.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg8snorm.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg8snorm.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg8snorm.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rg8snorm.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rg8snorm.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rg8snorm.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rg16f.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg16f.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg16f.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg16f.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg16f.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg16f.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg16f.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rg16f.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rg16f.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rg16f.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rg32f.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg32f.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg32f.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg32f.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg32f.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg32f.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg32f.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rg32f.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rg32f.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rg32f.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rg8ui.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg8ui.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg8ui.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg8ui.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg8ui.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg8ui.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg8ui.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rg8ui.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rg8ui.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rg8ui.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rg8i.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg8i.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg8i.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg8i.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg8i.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg8i.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg8i.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rg8i.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rg8i.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rg8i.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rg16ui.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg16ui.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg16ui.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg16ui.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg16ui.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg16ui.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg16ui.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rg16ui.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rg16ui.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rg16ui.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rg16i.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg16i.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg16i.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg16i.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg16i.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg16i.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg16i.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rg16i.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rg16i.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rg16i.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rg32ui.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg32ui.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg32ui.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg32ui.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg32ui.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg32ui.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg32ui.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rg32ui.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rg32ui.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rg32ui.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rg32i.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg32i.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg32i.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg32i.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg32i.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg32i.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rg32i.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rg32i.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rg32i.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rg32i.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rgb565.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb565.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb565.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb565.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb565.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb565.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb565.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb565.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb565.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb565.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8snorm.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8snorm.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8snorm.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8snorm.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8snorm.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8snorm.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8snorm.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8snorm.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8snorm.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8snorm.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.r11g11b10f.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r11g11b10f.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r11g11b10f.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.r11g11b10f.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.r11g11b10f.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.r11g11b10f.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.r11g11b10f.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.r11g11b10f.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.r11g11b10f.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.r11g11b10f.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rgb16f.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb16f.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb16f.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb16f.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb16f.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb16f.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb16f.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb16f.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb16f.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb16f.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rgb32f.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb32f.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb32f.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb32f.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb32f.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb32f.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb32f.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb32f.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb32f.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb32f.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8ui.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8ui.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8ui.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8ui.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8ui.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8ui.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8ui.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8ui.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8ui.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8ui.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8i.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8i.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8i.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8i.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8i.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8i.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8i.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8i.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8i.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb8i.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rgb16ui.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb16ui.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb16ui.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb16ui.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb16ui.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb16ui.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb16ui.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb16ui.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb16ui.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb16ui.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rgb16i.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb16i.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb16i.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb16i.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb16i.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb16i.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb16i.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb16i.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb16i.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb16i.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rgb32ui.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb32ui.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb32ui.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb32ui.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb32ui.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb32ui.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb32ui.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb32ui.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb32ui.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb32ui.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rgb32i.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb32i.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb32i.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb32i.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb32i.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb32i.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb32i.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb32i.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb32i.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb32i.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8snorm.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8snorm.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8snorm.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8snorm.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8snorm.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8snorm.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8snorm.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8snorm.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8snorm.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8snorm.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rgb5a1.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb5a1.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb5a1.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb5a1.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb5a1.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb5a1.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb5a1.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb5a1.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb5a1.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb5a1.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rgba4.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba4.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba4.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba4.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba4.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba4.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba4.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba4.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba4.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba4.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rgb10a2.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb10a2.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb10a2.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb10a2.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb10a2.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb10a2.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb10a2.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb10a2.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb10a2.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb10a2.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rgba16f.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba16f.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba16f.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba16f.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba16f.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba16f.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba16f.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba16f.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba16f.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba16f.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rgba32f.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba32f.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba32f.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba32f.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba32f.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba32f.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba32f.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba32f.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba32f.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba32f.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8ui.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8ui.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8ui.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8ui.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8ui.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8ui.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8ui.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8ui.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8ui.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8ui.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8i.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8i.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8i.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8i.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8i.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8i.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8i.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8i.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8i.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba8i.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rgb10a2ui.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb10a2ui.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb10a2ui.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb10a2ui.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb10a2ui.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgb10a2ui.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb10a2ui.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rgba16ui.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba16ui.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba16ui.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba16ui.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba16ui.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba16ui.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba16ui.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba16ui.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba16ui.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba16ui.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rgba16i.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba16i.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba16i.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba16i.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba16i.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba16i.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba16i.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba16i.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba16i.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba16i.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rgba32i.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba32i.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba32i.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba32i.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba32i.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba32i.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba32i.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba32i.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba32i.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba32i.16_16_4
+KHR-GL41.pixelstoragemodes.teximage3d.rgba32ui.0_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba32ui.1_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba32ui.16_0_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba32ui.1_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba32ui.16_1_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba32ui.16_16_0
+KHR-GL41.pixelstoragemodes.teximage3d.rgba32ui.1_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba32ui.16_1_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba32ui.16_16_1
+KHR-GL41.pixelstoragemodes.teximage3d.rgba32ui.16_16_4
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_0
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_0
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_0
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_0
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_4
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_4
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_4
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_4
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_16
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_16
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_16
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_16
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_32
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_32
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_32
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_32
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_0
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_0
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_0
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_0
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_5
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_5
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_5
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_5
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_15
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_15
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_15
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_15
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_30
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_30
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_30
+KHR-GL41.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_30
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_0
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_1
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_4
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_8
+KHR-GL41.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_8
 KHR-GL41.draw_elements_base_vertex_tests.basevertex_behavior1
 KHR-GL41.draw_elements_base_vertex_tests.basevertex_behavior2
 KHR-GL41.draw_elements_base_vertex_tests.AEP_shader_stages
diff --git a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl42-master.txt b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl42-master.txt
index d84483f..3c6a7e0 100644
--- a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl42-master.txt
+++ b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl42-master.txt
@@ -3071,6 +3071,904 @@
 KHR-GL42.texture_swizzle.intial_state
 KHR-GL42.texture_swizzle.smoke
 KHR-GL42.texture_swizzle.functional
+KHR-GL42.nearest_edge.offset_left
+KHR-GL42.nearest_edge.offset_right
+KHR-GL42.pixelstoragemodes.teximage2d.r8.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.r8.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.r8.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.r8.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.r8.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.r8.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.r8snorm.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.r8snorm.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.r8snorm.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.r8snorm.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.r8snorm.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.r8snorm.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.r16f.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.r16f.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.r16f.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.r16f.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.r16f.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.r16f.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.r32f.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.r32f.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.r32f.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.r32f.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.r32f.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.r32f.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.r8ui.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.r8ui.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.r8ui.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.r8ui.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.r8ui.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.r8ui.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.r8i.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.r8i.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.r8i.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.r8i.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.r8i.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.r8i.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.r16ui.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.r16ui.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.r16ui.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.r16ui.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.r16ui.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.r16ui.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.r16i.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.r16i.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.r16i.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.r16i.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.r16i.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.r16i.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.r32ui.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.r32ui.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.r32ui.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.r32ui.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.r32ui.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.r32ui.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.r32i.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.r32i.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.r32i.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.r32i.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.r32i.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.r32i.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rg8.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rg8.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rg8.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rg8.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rg8.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rg8.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rg8snorm.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rg8snorm.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rg8snorm.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rg8snorm.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rg8snorm.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rg8snorm.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rg16f.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rg16f.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rg16f.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rg16f.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rg16f.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rg16f.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rg32f.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rg32f.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rg32f.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rg32f.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rg32f.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rg32f.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rg8ui.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rg8ui.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rg8ui.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rg8ui.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rg8ui.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rg8ui.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rg8i.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rg8i.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rg8i.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rg8i.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rg8i.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rg8i.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rg16ui.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rg16ui.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rg16ui.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rg16ui.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rg16ui.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rg16ui.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rg16i.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rg16i.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rg16i.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rg16i.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rg16i.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rg16i.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rg32ui.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rg32ui.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rg32ui.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rg32ui.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rg32ui.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rg32ui.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rg32i.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rg32i.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rg32i.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rg32i.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rg32i.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rg32i.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rgb8.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb8.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb8.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb8.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgb8.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgb8.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rgb565.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb565.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb565.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb565.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgb565.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgb565.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rgb8snorm.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb8snorm.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb8snorm.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb8snorm.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgb8snorm.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgb8snorm.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.r11g11b10f.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.r11g11b10f.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.r11g11b10f.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.r11g11b10f.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.r11g11b10f.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.r11g11b10f.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rgb16f.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb16f.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb16f.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb16f.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgb16f.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgb16f.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rgb32f.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb32f.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb32f.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb32f.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgb32f.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgb32f.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rgb8ui.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb8ui.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb8ui.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb8ui.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgb8ui.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgb8ui.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rgb8i.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb8i.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb8i.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb8i.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgb8i.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgb8i.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rgb16ui.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb16ui.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb16ui.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb16ui.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgb16ui.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgb16ui.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rgb16i.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb16i.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb16i.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb16i.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgb16i.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgb16i.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rgb32ui.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb32ui.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb32ui.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb32ui.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgb32ui.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgb32ui.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rgb32i.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb32i.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb32i.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb32i.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgb32i.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgb32i.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rgba8.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba8.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba8.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba8.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgba8.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgba8.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rgba8snorm.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba8snorm.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba8snorm.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba8snorm.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgba8snorm.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgba8snorm.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rgb5a1.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb5a1.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb5a1.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb5a1.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgb5a1.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgb5a1.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rgba4.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba4.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba4.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba4.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgba4.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgba4.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rgb10a2.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb10a2.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb10a2.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb10a2.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgb10a2.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgb10a2.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rgba16f.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba16f.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba16f.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba16f.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgba16f.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgba16f.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rgba32f.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba32f.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba32f.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba32f.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgba32f.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgba32f.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rgba8ui.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba8ui.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba8ui.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba8ui.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgba8ui.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgba8ui.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rgba8i.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba8i.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba8i.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba8i.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgba8i.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgba8i.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rgb10a2ui.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb10a2ui.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb10a2ui.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgb10a2ui.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgb10a2ui.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgb10a2ui.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rgba16ui.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba16ui.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba16ui.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba16ui.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgba16ui.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgba16ui.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rgba16i.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba16i.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba16i.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba16i.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgba16i.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgba16i.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rgba32i.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba32i.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba32i.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba32i.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgba32i.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgba32i.16_16
+KHR-GL42.pixelstoragemodes.teximage2d.rgba32ui.0_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba32ui.1_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba32ui.16_0
+KHR-GL42.pixelstoragemodes.teximage2d.rgba32ui.1_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgba32ui.16_1
+KHR-GL42.pixelstoragemodes.teximage2d.rgba32ui.16_16
+KHR-GL42.pixelstoragemodes.teximage3d.r8.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r8.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r8.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r8.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.r8.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.r8.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.r8.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.r8.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.r8.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.r8.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.r8snorm.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r8snorm.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r8snorm.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r8snorm.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.r8snorm.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.r8snorm.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.r8snorm.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.r8snorm.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.r8snorm.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.r8snorm.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.r16f.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r16f.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r16f.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r16f.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.r16f.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.r16f.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.r16f.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.r16f.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.r16f.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.r16f.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.r32f.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r32f.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r32f.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r32f.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.r32f.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.r32f.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.r32f.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.r32f.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.r32f.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.r32f.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.r8ui.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r8ui.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r8ui.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r8ui.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.r8ui.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.r8ui.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.r8ui.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.r8ui.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.r8ui.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.r8ui.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.r8i.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r8i.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r8i.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r8i.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.r8i.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.r8i.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.r8i.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.r8i.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.r8i.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.r8i.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.r16ui.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r16ui.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r16ui.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r16ui.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.r16ui.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.r16ui.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.r16ui.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.r16ui.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.r16ui.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.r16ui.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.r16i.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r16i.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r16i.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r16i.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.r16i.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.r16i.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.r16i.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.r16i.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.r16i.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.r16i.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.r32ui.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r32ui.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r32ui.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r32ui.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.r32ui.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.r32ui.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.r32ui.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.r32ui.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.r32ui.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.r32ui.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.r32i.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r32i.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r32i.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r32i.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.r32i.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.r32i.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.r32i.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.r32i.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.r32i.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.r32i.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rg8.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg8.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg8.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg8.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg8.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg8.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg8.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rg8.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rg8.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rg8.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rg8snorm.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg8snorm.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg8snorm.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg8snorm.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg8snorm.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg8snorm.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg8snorm.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rg8snorm.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rg8snorm.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rg8snorm.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rg16f.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg16f.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg16f.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg16f.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg16f.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg16f.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg16f.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rg16f.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rg16f.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rg16f.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rg32f.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg32f.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg32f.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg32f.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg32f.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg32f.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg32f.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rg32f.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rg32f.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rg32f.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rg8ui.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg8ui.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg8ui.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg8ui.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg8ui.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg8ui.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg8ui.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rg8ui.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rg8ui.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rg8ui.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rg8i.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg8i.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg8i.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg8i.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg8i.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg8i.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg8i.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rg8i.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rg8i.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rg8i.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rg16ui.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg16ui.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg16ui.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg16ui.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg16ui.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg16ui.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg16ui.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rg16ui.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rg16ui.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rg16ui.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rg16i.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg16i.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg16i.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg16i.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg16i.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg16i.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg16i.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rg16i.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rg16i.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rg16i.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rg32ui.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg32ui.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg32ui.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg32ui.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg32ui.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg32ui.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg32ui.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rg32ui.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rg32ui.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rg32ui.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rg32i.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg32i.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg32i.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg32i.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg32i.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg32i.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rg32i.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rg32i.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rg32i.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rg32i.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rgb565.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb565.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb565.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb565.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb565.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb565.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb565.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb565.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb565.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb565.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8snorm.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8snorm.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8snorm.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8snorm.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8snorm.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8snorm.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8snorm.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8snorm.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8snorm.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8snorm.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.r11g11b10f.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r11g11b10f.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r11g11b10f.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.r11g11b10f.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.r11g11b10f.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.r11g11b10f.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.r11g11b10f.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.r11g11b10f.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.r11g11b10f.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.r11g11b10f.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rgb16f.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb16f.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb16f.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb16f.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb16f.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb16f.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb16f.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb16f.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb16f.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb16f.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rgb32f.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb32f.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb32f.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb32f.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb32f.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb32f.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb32f.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb32f.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb32f.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb32f.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8ui.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8ui.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8ui.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8ui.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8ui.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8ui.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8ui.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8ui.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8ui.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8ui.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8i.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8i.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8i.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8i.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8i.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8i.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8i.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8i.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8i.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb8i.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rgb16ui.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb16ui.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb16ui.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb16ui.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb16ui.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb16ui.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb16ui.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb16ui.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb16ui.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb16ui.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rgb16i.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb16i.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb16i.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb16i.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb16i.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb16i.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb16i.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb16i.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb16i.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb16i.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rgb32ui.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb32ui.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb32ui.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb32ui.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb32ui.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb32ui.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb32ui.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb32ui.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb32ui.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb32ui.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rgb32i.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb32i.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb32i.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb32i.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb32i.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb32i.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb32i.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb32i.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb32i.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb32i.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8snorm.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8snorm.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8snorm.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8snorm.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8snorm.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8snorm.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8snorm.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8snorm.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8snorm.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8snorm.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rgb5a1.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb5a1.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb5a1.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb5a1.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb5a1.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb5a1.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb5a1.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb5a1.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb5a1.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb5a1.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rgba4.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba4.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba4.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba4.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba4.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba4.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba4.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba4.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba4.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba4.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rgb10a2.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb10a2.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb10a2.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb10a2.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb10a2.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb10a2.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb10a2.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb10a2.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb10a2.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb10a2.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rgba16f.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba16f.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba16f.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba16f.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba16f.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba16f.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba16f.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba16f.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba16f.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba16f.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rgba32f.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba32f.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba32f.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba32f.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba32f.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba32f.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba32f.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba32f.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba32f.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba32f.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8ui.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8ui.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8ui.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8ui.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8ui.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8ui.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8ui.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8ui.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8ui.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8ui.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8i.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8i.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8i.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8i.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8i.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8i.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8i.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8i.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8i.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba8i.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rgb10a2ui.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb10a2ui.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb10a2ui.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb10a2ui.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb10a2ui.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgb10a2ui.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb10a2ui.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rgba16ui.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba16ui.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba16ui.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba16ui.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba16ui.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba16ui.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba16ui.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba16ui.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba16ui.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba16ui.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rgba16i.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba16i.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba16i.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba16i.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba16i.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba16i.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba16i.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba16i.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba16i.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba16i.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rgba32i.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba32i.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba32i.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba32i.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba32i.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba32i.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba32i.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba32i.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba32i.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba32i.16_16_4
+KHR-GL42.pixelstoragemodes.teximage3d.rgba32ui.0_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba32ui.1_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba32ui.16_0_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba32ui.1_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba32ui.16_1_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba32ui.16_16_0
+KHR-GL42.pixelstoragemodes.teximage3d.rgba32ui.1_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba32ui.16_1_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba32ui.16_16_1
+KHR-GL42.pixelstoragemodes.teximage3d.rgba32ui.16_16_4
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_0
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_0
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_0
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_0
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_4
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_4
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_4
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_4
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_16
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_16
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_16
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_16
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_32
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_32
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_32
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_32
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_0
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_0
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_0
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_0
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_5
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_5
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_5
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_5
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_15
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_15
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_15
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_15
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_30
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_30
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_30
+KHR-GL42.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_30
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_0
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_1
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_4
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_8
+KHR-GL42.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_8
 KHR-GL42.draw_elements_base_vertex_tests.basevertex_behavior1
 KHR-GL42.draw_elements_base_vertex_tests.basevertex_behavior2
 KHR-GL42.draw_elements_base_vertex_tests.AEP_shader_stages
diff --git a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl43-master.txt b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl43-master.txt
index 6a02c54..6dacc8c 100644
--- a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl43-master.txt
+++ b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl43-master.txt
@@ -3071,6 +3071,904 @@
 KHR-GL43.texture_swizzle.intial_state
 KHR-GL43.texture_swizzle.smoke
 KHR-GL43.texture_swizzle.functional
+KHR-GL43.nearest_edge.offset_left
+KHR-GL43.nearest_edge.offset_right
+KHR-GL43.pixelstoragemodes.teximage2d.r8.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.r8.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.r8.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.r8.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.r8.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.r8.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.r8snorm.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.r8snorm.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.r8snorm.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.r8snorm.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.r8snorm.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.r8snorm.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.r16f.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.r16f.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.r16f.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.r16f.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.r16f.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.r16f.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.r32f.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.r32f.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.r32f.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.r32f.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.r32f.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.r32f.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.r8ui.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.r8ui.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.r8ui.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.r8ui.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.r8ui.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.r8ui.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.r8i.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.r8i.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.r8i.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.r8i.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.r8i.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.r8i.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.r16ui.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.r16ui.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.r16ui.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.r16ui.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.r16ui.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.r16ui.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.r16i.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.r16i.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.r16i.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.r16i.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.r16i.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.r16i.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.r32ui.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.r32ui.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.r32ui.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.r32ui.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.r32ui.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.r32ui.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.r32i.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.r32i.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.r32i.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.r32i.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.r32i.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.r32i.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rg8.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rg8.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rg8.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rg8.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rg8.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rg8.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rg8snorm.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rg8snorm.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rg8snorm.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rg8snorm.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rg8snorm.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rg8snorm.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rg16f.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rg16f.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rg16f.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rg16f.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rg16f.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rg16f.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rg32f.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rg32f.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rg32f.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rg32f.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rg32f.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rg32f.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rg8ui.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rg8ui.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rg8ui.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rg8ui.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rg8ui.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rg8ui.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rg8i.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rg8i.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rg8i.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rg8i.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rg8i.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rg8i.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rg16ui.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rg16ui.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rg16ui.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rg16ui.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rg16ui.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rg16ui.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rg16i.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rg16i.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rg16i.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rg16i.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rg16i.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rg16i.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rg32ui.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rg32ui.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rg32ui.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rg32ui.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rg32ui.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rg32ui.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rg32i.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rg32i.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rg32i.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rg32i.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rg32i.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rg32i.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rgb8.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb8.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb8.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb8.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgb8.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgb8.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rgb565.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb565.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb565.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb565.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgb565.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgb565.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rgb8snorm.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb8snorm.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb8snorm.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb8snorm.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgb8snorm.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgb8snorm.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.r11g11b10f.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.r11g11b10f.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.r11g11b10f.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.r11g11b10f.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.r11g11b10f.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.r11g11b10f.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rgb16f.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb16f.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb16f.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb16f.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgb16f.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgb16f.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rgb32f.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb32f.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb32f.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb32f.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgb32f.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgb32f.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rgb8ui.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb8ui.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb8ui.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb8ui.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgb8ui.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgb8ui.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rgb8i.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb8i.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb8i.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb8i.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgb8i.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgb8i.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rgb16ui.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb16ui.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb16ui.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb16ui.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgb16ui.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgb16ui.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rgb16i.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb16i.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb16i.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb16i.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgb16i.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgb16i.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rgb32ui.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb32ui.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb32ui.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb32ui.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgb32ui.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgb32ui.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rgb32i.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb32i.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb32i.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb32i.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgb32i.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgb32i.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rgba8.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba8.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba8.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba8.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgba8.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgba8.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rgba8snorm.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba8snorm.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba8snorm.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba8snorm.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgba8snorm.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgba8snorm.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rgb5a1.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb5a1.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb5a1.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb5a1.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgb5a1.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgb5a1.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rgba4.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba4.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba4.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba4.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgba4.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgba4.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rgb10a2.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb10a2.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb10a2.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb10a2.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgb10a2.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgb10a2.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rgba16f.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba16f.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba16f.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba16f.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgba16f.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgba16f.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rgba32f.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba32f.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba32f.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba32f.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgba32f.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgba32f.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rgba8ui.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba8ui.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba8ui.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba8ui.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgba8ui.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgba8ui.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rgba8i.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba8i.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba8i.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba8i.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgba8i.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgba8i.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rgb10a2ui.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb10a2ui.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb10a2ui.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgb10a2ui.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgb10a2ui.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgb10a2ui.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rgba16ui.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba16ui.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba16ui.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba16ui.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgba16ui.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgba16ui.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rgba16i.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba16i.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba16i.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba16i.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgba16i.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgba16i.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rgba32i.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba32i.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba32i.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba32i.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgba32i.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgba32i.16_16
+KHR-GL43.pixelstoragemodes.teximage2d.rgba32ui.0_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba32ui.1_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba32ui.16_0
+KHR-GL43.pixelstoragemodes.teximage2d.rgba32ui.1_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgba32ui.16_1
+KHR-GL43.pixelstoragemodes.teximage2d.rgba32ui.16_16
+KHR-GL43.pixelstoragemodes.teximage3d.r8.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r8.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r8.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r8.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.r8.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.r8.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.r8.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.r8.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.r8.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.r8.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.r8snorm.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r8snorm.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r8snorm.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r8snorm.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.r8snorm.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.r8snorm.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.r8snorm.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.r8snorm.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.r8snorm.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.r8snorm.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.r16f.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r16f.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r16f.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r16f.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.r16f.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.r16f.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.r16f.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.r16f.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.r16f.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.r16f.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.r32f.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r32f.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r32f.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r32f.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.r32f.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.r32f.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.r32f.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.r32f.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.r32f.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.r32f.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.r8ui.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r8ui.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r8ui.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r8ui.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.r8ui.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.r8ui.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.r8ui.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.r8ui.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.r8ui.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.r8ui.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.r8i.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r8i.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r8i.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r8i.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.r8i.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.r8i.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.r8i.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.r8i.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.r8i.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.r8i.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.r16ui.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r16ui.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r16ui.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r16ui.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.r16ui.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.r16ui.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.r16ui.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.r16ui.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.r16ui.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.r16ui.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.r16i.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r16i.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r16i.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r16i.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.r16i.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.r16i.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.r16i.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.r16i.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.r16i.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.r16i.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.r32ui.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r32ui.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r32ui.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r32ui.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.r32ui.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.r32ui.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.r32ui.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.r32ui.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.r32ui.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.r32ui.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.r32i.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r32i.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r32i.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r32i.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.r32i.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.r32i.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.r32i.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.r32i.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.r32i.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.r32i.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rg8.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg8.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg8.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg8.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg8.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg8.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg8.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rg8.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rg8.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rg8.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rg8snorm.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg8snorm.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg8snorm.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg8snorm.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg8snorm.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg8snorm.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg8snorm.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rg8snorm.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rg8snorm.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rg8snorm.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rg16f.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg16f.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg16f.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg16f.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg16f.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg16f.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg16f.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rg16f.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rg16f.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rg16f.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rg32f.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg32f.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg32f.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg32f.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg32f.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg32f.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg32f.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rg32f.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rg32f.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rg32f.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rg8ui.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg8ui.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg8ui.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg8ui.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg8ui.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg8ui.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg8ui.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rg8ui.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rg8ui.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rg8ui.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rg8i.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg8i.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg8i.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg8i.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg8i.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg8i.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg8i.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rg8i.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rg8i.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rg8i.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rg16ui.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg16ui.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg16ui.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg16ui.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg16ui.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg16ui.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg16ui.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rg16ui.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rg16ui.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rg16ui.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rg16i.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg16i.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg16i.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg16i.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg16i.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg16i.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg16i.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rg16i.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rg16i.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rg16i.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rg32ui.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg32ui.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg32ui.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg32ui.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg32ui.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg32ui.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg32ui.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rg32ui.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rg32ui.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rg32ui.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rg32i.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg32i.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg32i.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg32i.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg32i.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg32i.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rg32i.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rg32i.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rg32i.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rg32i.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rgb565.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb565.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb565.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb565.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb565.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb565.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb565.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb565.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb565.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb565.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8snorm.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8snorm.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8snorm.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8snorm.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8snorm.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8snorm.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8snorm.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8snorm.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8snorm.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8snorm.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.r11g11b10f.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r11g11b10f.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r11g11b10f.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.r11g11b10f.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.r11g11b10f.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.r11g11b10f.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.r11g11b10f.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.r11g11b10f.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.r11g11b10f.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.r11g11b10f.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rgb16f.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb16f.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb16f.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb16f.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb16f.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb16f.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb16f.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb16f.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb16f.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb16f.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rgb32f.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb32f.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb32f.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb32f.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb32f.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb32f.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb32f.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb32f.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb32f.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb32f.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8ui.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8ui.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8ui.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8ui.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8ui.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8ui.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8ui.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8ui.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8ui.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8ui.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8i.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8i.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8i.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8i.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8i.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8i.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8i.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8i.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8i.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb8i.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rgb16ui.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb16ui.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb16ui.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb16ui.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb16ui.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb16ui.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb16ui.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb16ui.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb16ui.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb16ui.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rgb16i.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb16i.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb16i.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb16i.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb16i.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb16i.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb16i.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb16i.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb16i.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb16i.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rgb32ui.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb32ui.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb32ui.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb32ui.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb32ui.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb32ui.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb32ui.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb32ui.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb32ui.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb32ui.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rgb32i.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb32i.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb32i.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb32i.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb32i.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb32i.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb32i.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb32i.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb32i.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb32i.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8snorm.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8snorm.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8snorm.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8snorm.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8snorm.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8snorm.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8snorm.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8snorm.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8snorm.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8snorm.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rgb5a1.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb5a1.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb5a1.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb5a1.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb5a1.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb5a1.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb5a1.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb5a1.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb5a1.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb5a1.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rgba4.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba4.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba4.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba4.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba4.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba4.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba4.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba4.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba4.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba4.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rgb10a2.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb10a2.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb10a2.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb10a2.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb10a2.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb10a2.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb10a2.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb10a2.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb10a2.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb10a2.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rgba16f.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba16f.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba16f.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba16f.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba16f.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba16f.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba16f.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba16f.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba16f.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba16f.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rgba32f.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba32f.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba32f.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba32f.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba32f.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba32f.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba32f.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba32f.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba32f.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba32f.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8ui.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8ui.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8ui.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8ui.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8ui.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8ui.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8ui.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8ui.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8ui.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8ui.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8i.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8i.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8i.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8i.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8i.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8i.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8i.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8i.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8i.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba8i.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rgb10a2ui.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb10a2ui.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb10a2ui.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb10a2ui.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb10a2ui.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgb10a2ui.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb10a2ui.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rgba16ui.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba16ui.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba16ui.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba16ui.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba16ui.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba16ui.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba16ui.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba16ui.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba16ui.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba16ui.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rgba16i.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba16i.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba16i.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba16i.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba16i.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba16i.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba16i.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba16i.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba16i.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba16i.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rgba32i.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba32i.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba32i.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba32i.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba32i.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba32i.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba32i.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba32i.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba32i.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba32i.16_16_4
+KHR-GL43.pixelstoragemodes.teximage3d.rgba32ui.0_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba32ui.1_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba32ui.16_0_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba32ui.1_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba32ui.16_1_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba32ui.16_16_0
+KHR-GL43.pixelstoragemodes.teximage3d.rgba32ui.1_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba32ui.16_1_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba32ui.16_16_1
+KHR-GL43.pixelstoragemodes.teximage3d.rgba32ui.16_16_4
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_0
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_0
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_0
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_0
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_4
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_4
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_4
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_4
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_16
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_16
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_16
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_16
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_32
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_32
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_32
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_32
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_0
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_0
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_0
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_0
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_5
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_5
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_5
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_5
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_15
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_15
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_15
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_15
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_30
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_30
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_30
+KHR-GL43.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_30
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_0
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_1
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_4
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_8
+KHR-GL43.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_8
 KHR-GL43.draw_elements_base_vertex_tests.basevertex_behavior1
 KHR-GL43.draw_elements_base_vertex_tests.basevertex_behavior2
 KHR-GL43.draw_elements_base_vertex_tests.AEP_shader_stages
diff --git a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl44-master.txt b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl44-master.txt
index 4fc2353..1c65c05 100644
--- a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl44-master.txt
+++ b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl44-master.txt
@@ -3071,6 +3071,904 @@
 KHR-GL44.texture_swizzle.intial_state
 KHR-GL44.texture_swizzle.smoke
 KHR-GL44.texture_swizzle.functional
+KHR-GL44.nearest_edge.offset_left
+KHR-GL44.nearest_edge.offset_right
+KHR-GL44.pixelstoragemodes.teximage2d.r8.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.r8.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.r8.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.r8.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.r8.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.r8.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.r8snorm.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.r8snorm.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.r8snorm.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.r8snorm.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.r8snorm.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.r8snorm.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.r16f.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.r16f.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.r16f.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.r16f.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.r16f.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.r16f.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.r32f.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.r32f.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.r32f.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.r32f.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.r32f.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.r32f.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.r8ui.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.r8ui.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.r8ui.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.r8ui.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.r8ui.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.r8ui.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.r8i.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.r8i.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.r8i.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.r8i.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.r8i.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.r8i.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.r16ui.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.r16ui.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.r16ui.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.r16ui.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.r16ui.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.r16ui.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.r16i.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.r16i.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.r16i.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.r16i.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.r16i.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.r16i.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.r32ui.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.r32ui.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.r32ui.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.r32ui.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.r32ui.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.r32ui.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.r32i.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.r32i.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.r32i.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.r32i.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.r32i.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.r32i.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rg8.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rg8.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rg8.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rg8.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rg8.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rg8.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rg8snorm.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rg8snorm.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rg8snorm.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rg8snorm.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rg8snorm.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rg8snorm.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rg16f.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rg16f.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rg16f.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rg16f.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rg16f.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rg16f.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rg32f.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rg32f.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rg32f.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rg32f.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rg32f.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rg32f.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rg8ui.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rg8ui.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rg8ui.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rg8ui.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rg8ui.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rg8ui.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rg8i.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rg8i.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rg8i.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rg8i.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rg8i.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rg8i.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rg16ui.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rg16ui.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rg16ui.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rg16ui.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rg16ui.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rg16ui.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rg16i.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rg16i.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rg16i.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rg16i.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rg16i.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rg16i.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rg32ui.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rg32ui.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rg32ui.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rg32ui.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rg32ui.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rg32ui.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rg32i.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rg32i.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rg32i.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rg32i.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rg32i.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rg32i.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rgb8.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb8.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb8.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb8.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgb8.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgb8.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rgb565.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb565.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb565.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb565.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgb565.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgb565.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rgb8snorm.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb8snorm.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb8snorm.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb8snorm.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgb8snorm.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgb8snorm.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.r11g11b10f.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.r11g11b10f.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.r11g11b10f.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.r11g11b10f.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.r11g11b10f.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.r11g11b10f.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rgb16f.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb16f.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb16f.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb16f.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgb16f.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgb16f.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rgb32f.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb32f.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb32f.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb32f.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgb32f.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgb32f.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rgb8ui.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb8ui.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb8ui.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb8ui.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgb8ui.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgb8ui.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rgb8i.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb8i.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb8i.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb8i.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgb8i.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgb8i.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rgb16ui.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb16ui.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb16ui.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb16ui.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgb16ui.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgb16ui.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rgb16i.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb16i.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb16i.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb16i.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgb16i.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgb16i.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rgb32ui.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb32ui.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb32ui.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb32ui.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgb32ui.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgb32ui.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rgb32i.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb32i.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb32i.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb32i.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgb32i.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgb32i.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rgba8.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba8.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba8.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba8.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgba8.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgba8.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rgba8snorm.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba8snorm.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba8snorm.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba8snorm.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgba8snorm.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgba8snorm.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rgb5a1.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb5a1.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb5a1.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb5a1.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgb5a1.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgb5a1.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rgba4.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba4.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba4.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba4.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgba4.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgba4.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rgb10a2.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb10a2.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb10a2.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb10a2.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgb10a2.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgb10a2.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rgba16f.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba16f.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba16f.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba16f.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgba16f.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgba16f.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rgba32f.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba32f.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba32f.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba32f.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgba32f.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgba32f.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rgba8ui.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba8ui.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba8ui.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba8ui.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgba8ui.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgba8ui.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rgba8i.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba8i.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba8i.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba8i.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgba8i.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgba8i.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rgb10a2ui.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb10a2ui.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb10a2ui.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgb10a2ui.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgb10a2ui.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgb10a2ui.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rgba16ui.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba16ui.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba16ui.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba16ui.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgba16ui.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgba16ui.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rgba16i.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba16i.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba16i.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba16i.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgba16i.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgba16i.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rgba32i.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba32i.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba32i.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba32i.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgba32i.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgba32i.16_16
+KHR-GL44.pixelstoragemodes.teximage2d.rgba32ui.0_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba32ui.1_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba32ui.16_0
+KHR-GL44.pixelstoragemodes.teximage2d.rgba32ui.1_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgba32ui.16_1
+KHR-GL44.pixelstoragemodes.teximage2d.rgba32ui.16_16
+KHR-GL44.pixelstoragemodes.teximage3d.r8.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r8.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r8.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r8.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.r8.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.r8.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.r8.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.r8.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.r8.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.r8.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.r8snorm.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r8snorm.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r8snorm.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r8snorm.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.r8snorm.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.r8snorm.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.r8snorm.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.r8snorm.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.r8snorm.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.r8snorm.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.r16f.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r16f.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r16f.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r16f.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.r16f.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.r16f.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.r16f.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.r16f.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.r16f.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.r16f.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.r32f.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r32f.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r32f.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r32f.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.r32f.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.r32f.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.r32f.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.r32f.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.r32f.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.r32f.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.r8ui.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r8ui.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r8ui.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r8ui.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.r8ui.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.r8ui.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.r8ui.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.r8ui.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.r8ui.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.r8ui.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.r8i.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r8i.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r8i.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r8i.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.r8i.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.r8i.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.r8i.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.r8i.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.r8i.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.r8i.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.r16ui.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r16ui.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r16ui.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r16ui.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.r16ui.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.r16ui.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.r16ui.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.r16ui.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.r16ui.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.r16ui.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.r16i.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r16i.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r16i.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r16i.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.r16i.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.r16i.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.r16i.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.r16i.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.r16i.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.r16i.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.r32ui.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r32ui.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r32ui.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r32ui.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.r32ui.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.r32ui.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.r32ui.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.r32ui.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.r32ui.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.r32ui.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.r32i.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r32i.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r32i.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r32i.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.r32i.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.r32i.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.r32i.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.r32i.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.r32i.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.r32i.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rg8.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg8.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg8.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg8.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg8.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg8.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg8.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rg8.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rg8.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rg8.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rg8snorm.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg8snorm.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg8snorm.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg8snorm.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg8snorm.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg8snorm.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg8snorm.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rg8snorm.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rg8snorm.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rg8snorm.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rg16f.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg16f.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg16f.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg16f.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg16f.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg16f.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg16f.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rg16f.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rg16f.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rg16f.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rg32f.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg32f.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg32f.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg32f.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg32f.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg32f.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg32f.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rg32f.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rg32f.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rg32f.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rg8ui.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg8ui.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg8ui.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg8ui.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg8ui.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg8ui.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg8ui.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rg8ui.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rg8ui.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rg8ui.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rg8i.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg8i.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg8i.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg8i.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg8i.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg8i.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg8i.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rg8i.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rg8i.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rg8i.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rg16ui.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg16ui.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg16ui.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg16ui.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg16ui.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg16ui.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg16ui.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rg16ui.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rg16ui.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rg16ui.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rg16i.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg16i.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg16i.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg16i.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg16i.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg16i.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg16i.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rg16i.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rg16i.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rg16i.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rg32ui.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg32ui.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg32ui.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg32ui.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg32ui.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg32ui.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg32ui.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rg32ui.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rg32ui.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rg32ui.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rg32i.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg32i.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg32i.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg32i.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg32i.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg32i.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rg32i.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rg32i.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rg32i.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rg32i.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rgb565.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb565.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb565.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb565.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb565.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb565.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb565.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb565.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb565.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb565.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8snorm.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8snorm.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8snorm.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8snorm.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8snorm.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8snorm.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8snorm.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8snorm.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8snorm.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8snorm.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.r11g11b10f.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r11g11b10f.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r11g11b10f.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.r11g11b10f.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.r11g11b10f.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.r11g11b10f.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.r11g11b10f.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.r11g11b10f.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.r11g11b10f.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.r11g11b10f.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rgb16f.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb16f.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb16f.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb16f.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb16f.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb16f.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb16f.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb16f.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb16f.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb16f.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rgb32f.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb32f.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb32f.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb32f.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb32f.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb32f.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb32f.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb32f.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb32f.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb32f.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8ui.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8ui.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8ui.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8ui.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8ui.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8ui.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8ui.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8ui.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8ui.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8ui.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8i.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8i.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8i.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8i.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8i.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8i.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8i.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8i.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8i.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb8i.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rgb16ui.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb16ui.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb16ui.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb16ui.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb16ui.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb16ui.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb16ui.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb16ui.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb16ui.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb16ui.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rgb16i.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb16i.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb16i.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb16i.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb16i.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb16i.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb16i.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb16i.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb16i.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb16i.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rgb32ui.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb32ui.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb32ui.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb32ui.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb32ui.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb32ui.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb32ui.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb32ui.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb32ui.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb32ui.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rgb32i.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb32i.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb32i.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb32i.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb32i.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb32i.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb32i.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb32i.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb32i.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb32i.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8snorm.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8snorm.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8snorm.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8snorm.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8snorm.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8snorm.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8snorm.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8snorm.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8snorm.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8snorm.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rgb5a1.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb5a1.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb5a1.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb5a1.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb5a1.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb5a1.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb5a1.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb5a1.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb5a1.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb5a1.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rgba4.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba4.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba4.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba4.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba4.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba4.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba4.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba4.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba4.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba4.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rgb10a2.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb10a2.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb10a2.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb10a2.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb10a2.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb10a2.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb10a2.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb10a2.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb10a2.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb10a2.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rgba16f.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba16f.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba16f.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba16f.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba16f.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba16f.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba16f.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba16f.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba16f.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba16f.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rgba32f.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba32f.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba32f.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba32f.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba32f.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba32f.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba32f.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba32f.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba32f.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba32f.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8ui.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8ui.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8ui.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8ui.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8ui.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8ui.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8ui.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8ui.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8ui.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8ui.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8i.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8i.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8i.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8i.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8i.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8i.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8i.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8i.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8i.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba8i.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rgb10a2ui.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb10a2ui.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb10a2ui.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb10a2ui.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb10a2ui.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgb10a2ui.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb10a2ui.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rgba16ui.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba16ui.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba16ui.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba16ui.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba16ui.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba16ui.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba16ui.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba16ui.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba16ui.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba16ui.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rgba16i.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba16i.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba16i.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba16i.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba16i.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba16i.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba16i.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba16i.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba16i.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba16i.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rgba32i.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba32i.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba32i.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba32i.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba32i.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba32i.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba32i.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba32i.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba32i.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba32i.16_16_4
+KHR-GL44.pixelstoragemodes.teximage3d.rgba32ui.0_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba32ui.1_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba32ui.16_0_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba32ui.1_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba32ui.16_1_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba32ui.16_16_0
+KHR-GL44.pixelstoragemodes.teximage3d.rgba32ui.1_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba32ui.16_1_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba32ui.16_16_1
+KHR-GL44.pixelstoragemodes.teximage3d.rgba32ui.16_16_4
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_0
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_0
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_0
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_0
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_4
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_4
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_4
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_4
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_16
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_16
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_16
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_16
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_32
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_32
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_32
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_32
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_0
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_0
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_0
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_0
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_5
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_5
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_5
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_5
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_15
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_15
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_15
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_15
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_30
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_30
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_30
+KHR-GL44.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_30
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_0
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_1
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_4
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_8
+KHR-GL44.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_8
 KHR-GL44.draw_elements_base_vertex_tests.basevertex_behavior1
 KHR-GL44.draw_elements_base_vertex_tests.basevertex_behavior2
 KHR-GL44.draw_elements_base_vertex_tests.AEP_shader_stages
diff --git a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl45-master.txt b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl45-master.txt
index a2b4a8c..36a35d7 100644
--- a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl45-master.txt
+++ b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl45-master.txt
@@ -3071,6 +3071,904 @@
 KHR-GL45.texture_swizzle.intial_state
 KHR-GL45.texture_swizzle.smoke
 KHR-GL45.texture_swizzle.functional
+KHR-GL45.nearest_edge.offset_left
+KHR-GL45.nearest_edge.offset_right
+KHR-GL45.pixelstoragemodes.teximage2d.r8.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.r8.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.r8.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.r8.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.r8.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.r8.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.r8snorm.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.r8snorm.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.r8snorm.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.r8snorm.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.r8snorm.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.r8snorm.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.r16f.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.r16f.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.r16f.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.r16f.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.r16f.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.r16f.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.r32f.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.r32f.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.r32f.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.r32f.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.r32f.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.r32f.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.r8ui.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.r8ui.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.r8ui.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.r8ui.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.r8ui.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.r8ui.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.r8i.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.r8i.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.r8i.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.r8i.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.r8i.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.r8i.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.r16ui.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.r16ui.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.r16ui.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.r16ui.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.r16ui.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.r16ui.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.r16i.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.r16i.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.r16i.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.r16i.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.r16i.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.r16i.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.r32ui.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.r32ui.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.r32ui.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.r32ui.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.r32ui.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.r32ui.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.r32i.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.r32i.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.r32i.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.r32i.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.r32i.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.r32i.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rg8.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rg8.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rg8.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rg8.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rg8.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rg8.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rg8snorm.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rg8snorm.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rg8snorm.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rg8snorm.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rg8snorm.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rg8snorm.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rg16f.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rg16f.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rg16f.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rg16f.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rg16f.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rg16f.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rg32f.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rg32f.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rg32f.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rg32f.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rg32f.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rg32f.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rg8ui.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rg8ui.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rg8ui.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rg8ui.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rg8ui.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rg8ui.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rg8i.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rg8i.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rg8i.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rg8i.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rg8i.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rg8i.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rg16ui.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rg16ui.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rg16ui.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rg16ui.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rg16ui.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rg16ui.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rg16i.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rg16i.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rg16i.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rg16i.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rg16i.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rg16i.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rg32ui.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rg32ui.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rg32ui.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rg32ui.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rg32ui.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rg32ui.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rg32i.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rg32i.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rg32i.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rg32i.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rg32i.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rg32i.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rgb8.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb8.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb8.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb8.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgb8.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgb8.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rgb565.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb565.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb565.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb565.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgb565.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgb565.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rgb8snorm.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb8snorm.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb8snorm.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb8snorm.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgb8snorm.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgb8snorm.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.r11g11b10f.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.r11g11b10f.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.r11g11b10f.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.r11g11b10f.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.r11g11b10f.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.r11g11b10f.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rgb16f.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb16f.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb16f.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb16f.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgb16f.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgb16f.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rgb32f.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb32f.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb32f.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb32f.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgb32f.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgb32f.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rgb8ui.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb8ui.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb8ui.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb8ui.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgb8ui.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgb8ui.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rgb8i.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb8i.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb8i.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb8i.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgb8i.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgb8i.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rgb16ui.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb16ui.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb16ui.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb16ui.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgb16ui.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgb16ui.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rgb16i.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb16i.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb16i.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb16i.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgb16i.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgb16i.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rgb32ui.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb32ui.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb32ui.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb32ui.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgb32ui.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgb32ui.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rgb32i.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb32i.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb32i.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb32i.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgb32i.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgb32i.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rgba8.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba8.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba8.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba8.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgba8.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgba8.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rgba8snorm.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba8snorm.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba8snorm.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba8snorm.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgba8snorm.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgba8snorm.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rgb5a1.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb5a1.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb5a1.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb5a1.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgb5a1.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgb5a1.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rgba4.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba4.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba4.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba4.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgba4.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgba4.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rgb10a2.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb10a2.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb10a2.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb10a2.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgb10a2.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgb10a2.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rgba16f.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba16f.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba16f.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba16f.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgba16f.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgba16f.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rgba32f.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba32f.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba32f.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba32f.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgba32f.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgba32f.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rgba8ui.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba8ui.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba8ui.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba8ui.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgba8ui.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgba8ui.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rgba8i.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba8i.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba8i.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba8i.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgba8i.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgba8i.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rgb10a2ui.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb10a2ui.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb10a2ui.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgb10a2ui.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgb10a2ui.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgb10a2ui.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rgba16ui.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba16ui.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba16ui.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba16ui.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgba16ui.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgba16ui.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rgba16i.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba16i.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba16i.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba16i.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgba16i.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgba16i.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rgba32i.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba32i.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba32i.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba32i.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgba32i.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgba32i.16_16
+KHR-GL45.pixelstoragemodes.teximage2d.rgba32ui.0_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba32ui.1_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba32ui.16_0
+KHR-GL45.pixelstoragemodes.teximage2d.rgba32ui.1_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgba32ui.16_1
+KHR-GL45.pixelstoragemodes.teximage2d.rgba32ui.16_16
+KHR-GL45.pixelstoragemodes.teximage3d.r8.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r8.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r8.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r8.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.r8.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.r8.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.r8.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.r8.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.r8.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.r8.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.r8snorm.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r8snorm.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r8snorm.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r8snorm.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.r8snorm.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.r8snorm.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.r8snorm.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.r8snorm.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.r8snorm.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.r8snorm.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.r16f.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r16f.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r16f.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r16f.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.r16f.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.r16f.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.r16f.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.r16f.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.r16f.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.r16f.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.r32f.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r32f.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r32f.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r32f.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.r32f.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.r32f.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.r32f.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.r32f.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.r32f.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.r32f.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.r8ui.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r8ui.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r8ui.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r8ui.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.r8ui.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.r8ui.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.r8ui.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.r8ui.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.r8ui.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.r8ui.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.r8i.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r8i.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r8i.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r8i.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.r8i.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.r8i.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.r8i.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.r8i.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.r8i.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.r8i.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.r16ui.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r16ui.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r16ui.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r16ui.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.r16ui.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.r16ui.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.r16ui.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.r16ui.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.r16ui.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.r16ui.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.r16i.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r16i.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r16i.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r16i.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.r16i.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.r16i.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.r16i.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.r16i.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.r16i.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.r16i.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.r32ui.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r32ui.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r32ui.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r32ui.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.r32ui.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.r32ui.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.r32ui.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.r32ui.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.r32ui.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.r32ui.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.r32i.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r32i.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r32i.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r32i.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.r32i.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.r32i.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.r32i.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.r32i.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.r32i.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.r32i.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rg8.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg8.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg8.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg8.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg8.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg8.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg8.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rg8.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rg8.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rg8.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rg8snorm.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg8snorm.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg8snorm.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg8snorm.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg8snorm.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg8snorm.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg8snorm.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rg8snorm.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rg8snorm.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rg8snorm.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rg16f.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg16f.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg16f.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg16f.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg16f.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg16f.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg16f.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rg16f.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rg16f.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rg16f.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rg32f.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg32f.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg32f.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg32f.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg32f.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg32f.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg32f.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rg32f.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rg32f.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rg32f.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rg8ui.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg8ui.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg8ui.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg8ui.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg8ui.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg8ui.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg8ui.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rg8ui.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rg8ui.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rg8ui.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rg8i.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg8i.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg8i.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg8i.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg8i.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg8i.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg8i.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rg8i.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rg8i.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rg8i.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rg16ui.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg16ui.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg16ui.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg16ui.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg16ui.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg16ui.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg16ui.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rg16ui.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rg16ui.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rg16ui.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rg16i.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg16i.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg16i.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg16i.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg16i.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg16i.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg16i.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rg16i.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rg16i.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rg16i.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rg32ui.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg32ui.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg32ui.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg32ui.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg32ui.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg32ui.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg32ui.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rg32ui.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rg32ui.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rg32ui.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rg32i.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg32i.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg32i.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg32i.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg32i.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg32i.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rg32i.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rg32i.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rg32i.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rg32i.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rgb565.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb565.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb565.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb565.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb565.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb565.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb565.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb565.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb565.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb565.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8snorm.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8snorm.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8snorm.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8snorm.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8snorm.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8snorm.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8snorm.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8snorm.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8snorm.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8snorm.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.r11g11b10f.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r11g11b10f.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r11g11b10f.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.r11g11b10f.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.r11g11b10f.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.r11g11b10f.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.r11g11b10f.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.r11g11b10f.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.r11g11b10f.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.r11g11b10f.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rgb16f.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb16f.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb16f.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb16f.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb16f.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb16f.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb16f.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb16f.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb16f.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb16f.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rgb32f.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb32f.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb32f.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb32f.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb32f.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb32f.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb32f.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb32f.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb32f.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb32f.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8ui.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8ui.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8ui.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8ui.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8ui.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8ui.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8ui.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8ui.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8ui.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8ui.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8i.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8i.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8i.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8i.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8i.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8i.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8i.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8i.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8i.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb8i.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rgb16ui.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb16ui.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb16ui.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb16ui.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb16ui.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb16ui.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb16ui.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb16ui.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb16ui.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb16ui.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rgb16i.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb16i.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb16i.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb16i.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb16i.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb16i.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb16i.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb16i.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb16i.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb16i.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rgb32ui.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb32ui.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb32ui.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb32ui.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb32ui.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb32ui.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb32ui.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb32ui.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb32ui.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb32ui.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rgb32i.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb32i.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb32i.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb32i.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb32i.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb32i.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb32i.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb32i.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb32i.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb32i.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8snorm.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8snorm.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8snorm.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8snorm.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8snorm.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8snorm.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8snorm.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8snorm.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8snorm.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8snorm.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rgb5a1.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb5a1.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb5a1.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb5a1.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb5a1.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb5a1.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb5a1.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb5a1.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb5a1.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb5a1.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rgba4.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba4.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba4.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba4.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba4.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba4.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba4.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba4.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba4.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba4.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rgb10a2.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb10a2.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb10a2.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb10a2.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb10a2.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb10a2.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb10a2.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb10a2.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb10a2.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb10a2.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rgba16f.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba16f.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba16f.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba16f.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba16f.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba16f.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba16f.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba16f.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba16f.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba16f.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rgba32f.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba32f.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba32f.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba32f.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba32f.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba32f.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba32f.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba32f.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba32f.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba32f.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8ui.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8ui.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8ui.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8ui.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8ui.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8ui.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8ui.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8ui.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8ui.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8ui.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8i.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8i.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8i.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8i.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8i.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8i.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8i.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8i.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8i.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba8i.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rgb10a2ui.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb10a2ui.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb10a2ui.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb10a2ui.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb10a2ui.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgb10a2ui.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb10a2ui.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rgba16ui.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba16ui.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba16ui.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba16ui.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba16ui.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba16ui.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba16ui.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba16ui.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba16ui.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba16ui.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rgba16i.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba16i.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba16i.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba16i.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba16i.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba16i.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba16i.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba16i.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba16i.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba16i.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rgba32i.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba32i.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba32i.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba32i.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba32i.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba32i.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba32i.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba32i.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba32i.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba32i.16_16_4
+KHR-GL45.pixelstoragemodes.teximage3d.rgba32ui.0_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba32ui.1_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba32ui.16_0_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba32ui.1_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba32ui.16_1_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba32ui.16_16_0
+KHR-GL45.pixelstoragemodes.teximage3d.rgba32ui.1_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba32ui.16_1_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba32ui.16_16_1
+KHR-GL45.pixelstoragemodes.teximage3d.rgba32ui.16_16_4
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_0
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_0
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_0
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_0
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_4
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_4
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_4
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_4
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_16
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_16
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_16
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_16
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_32
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_32
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_32
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_32
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_0
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_0
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_0
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_0
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_5
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_5
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_5
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_5
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_15
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_15
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_15
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_15
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_30
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_30
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_30
+KHR-GL45.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_30
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_0
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_1
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_4
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_8
+KHR-GL45.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_8
 KHR-GL45.draw_elements_base_vertex_tests.basevertex_behavior1
 KHR-GL45.draw_elements_base_vertex_tests.basevertex_behavior2
 KHR-GL45.draw_elements_base_vertex_tests.AEP_shader_stages
diff --git a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl46-master.txt b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl46-master.txt
index 2b3eb4a..6365c2e 100644
--- a/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl46-master.txt
+++ b/external/openglcts/data/mustpass/gl/khronos_mustpass/4.6.1.x/gl46-master.txt
@@ -3071,6 +3071,904 @@
 KHR-GL46.texture_swizzle.intial_state
 KHR-GL46.texture_swizzle.smoke
 KHR-GL46.texture_swizzle.functional
+KHR-GL46.nearest_edge.offset_left
+KHR-GL46.nearest_edge.offset_right
+KHR-GL46.pixelstoragemodes.teximage2d.r8.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.r8.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.r8.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.r8.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.r8.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.r8.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.r8snorm.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.r8snorm.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.r8snorm.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.r8snorm.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.r8snorm.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.r8snorm.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.r16f.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.r16f.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.r16f.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.r16f.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.r16f.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.r16f.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.r32f.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.r32f.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.r32f.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.r32f.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.r32f.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.r32f.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.r8ui.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.r8ui.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.r8ui.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.r8ui.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.r8ui.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.r8ui.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.r8i.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.r8i.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.r8i.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.r8i.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.r8i.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.r8i.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.r16ui.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.r16ui.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.r16ui.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.r16ui.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.r16ui.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.r16ui.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.r16i.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.r16i.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.r16i.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.r16i.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.r16i.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.r16i.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.r32ui.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.r32ui.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.r32ui.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.r32ui.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.r32ui.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.r32ui.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.r32i.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.r32i.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.r32i.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.r32i.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.r32i.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.r32i.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rg8.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rg8.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rg8.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rg8.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rg8.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rg8.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rg8snorm.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rg8snorm.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rg8snorm.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rg8snorm.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rg8snorm.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rg8snorm.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rg16f.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rg16f.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rg16f.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rg16f.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rg16f.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rg16f.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rg32f.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rg32f.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rg32f.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rg32f.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rg32f.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rg32f.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rg8ui.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rg8ui.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rg8ui.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rg8ui.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rg8ui.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rg8ui.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rg8i.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rg8i.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rg8i.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rg8i.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rg8i.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rg8i.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rg16ui.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rg16ui.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rg16ui.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rg16ui.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rg16ui.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rg16ui.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rg16i.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rg16i.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rg16i.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rg16i.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rg16i.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rg16i.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rg32ui.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rg32ui.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rg32ui.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rg32ui.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rg32ui.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rg32ui.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rg32i.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rg32i.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rg32i.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rg32i.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rg32i.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rg32i.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rgb8.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb8.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb8.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb8.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgb8.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgb8.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rgb565.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb565.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb565.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb565.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgb565.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgb565.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rgb8snorm.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb8snorm.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb8snorm.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb8snorm.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgb8snorm.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgb8snorm.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.r11g11b10f.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.r11g11b10f.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.r11g11b10f.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.r11g11b10f.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.r11g11b10f.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.r11g11b10f.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rgb16f.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb16f.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb16f.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb16f.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgb16f.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgb16f.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rgb32f.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb32f.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb32f.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb32f.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgb32f.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgb32f.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rgb8ui.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb8ui.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb8ui.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb8ui.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgb8ui.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgb8ui.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rgb8i.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb8i.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb8i.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb8i.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgb8i.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgb8i.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rgb16ui.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb16ui.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb16ui.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb16ui.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgb16ui.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgb16ui.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rgb16i.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb16i.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb16i.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb16i.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgb16i.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgb16i.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rgb32ui.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb32ui.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb32ui.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb32ui.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgb32ui.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgb32ui.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rgb32i.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb32i.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb32i.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb32i.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgb32i.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgb32i.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rgba8.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba8.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba8.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba8.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgba8.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgba8.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rgba8snorm.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba8snorm.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba8snorm.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba8snorm.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgba8snorm.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgba8snorm.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rgb5a1.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb5a1.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb5a1.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb5a1.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgb5a1.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgb5a1.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rgba4.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba4.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba4.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba4.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgba4.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgba4.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rgb10a2.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb10a2.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb10a2.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb10a2.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgb10a2.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgb10a2.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rgba16f.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba16f.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba16f.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba16f.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgba16f.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgba16f.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rgba32f.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba32f.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba32f.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba32f.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgba32f.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgba32f.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rgba8ui.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba8ui.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba8ui.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba8ui.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgba8ui.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgba8ui.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rgba8i.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba8i.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba8i.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba8i.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgba8i.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgba8i.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rgb10a2ui.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb10a2ui.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb10a2ui.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgb10a2ui.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgb10a2ui.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgb10a2ui.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rgba16ui.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba16ui.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba16ui.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba16ui.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgba16ui.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgba16ui.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rgba16i.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba16i.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba16i.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba16i.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgba16i.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgba16i.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rgba32i.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba32i.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba32i.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba32i.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgba32i.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgba32i.16_16
+KHR-GL46.pixelstoragemodes.teximage2d.rgba32ui.0_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba32ui.1_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba32ui.16_0
+KHR-GL46.pixelstoragemodes.teximage2d.rgba32ui.1_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgba32ui.16_1
+KHR-GL46.pixelstoragemodes.teximage2d.rgba32ui.16_16
+KHR-GL46.pixelstoragemodes.teximage3d.r8.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r8.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r8.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r8.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.r8.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.r8.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.r8.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.r8.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.r8.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.r8.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.r8snorm.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r8snorm.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r8snorm.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r8snorm.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.r8snorm.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.r8snorm.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.r8snorm.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.r8snorm.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.r8snorm.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.r8snorm.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.r16f.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r16f.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r16f.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r16f.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.r16f.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.r16f.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.r16f.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.r16f.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.r16f.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.r16f.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.r32f.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r32f.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r32f.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r32f.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.r32f.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.r32f.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.r32f.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.r32f.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.r32f.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.r32f.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.r8ui.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r8ui.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r8ui.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r8ui.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.r8ui.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.r8ui.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.r8ui.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.r8ui.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.r8ui.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.r8ui.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.r8i.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r8i.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r8i.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r8i.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.r8i.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.r8i.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.r8i.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.r8i.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.r8i.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.r8i.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.r16ui.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r16ui.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r16ui.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r16ui.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.r16ui.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.r16ui.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.r16ui.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.r16ui.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.r16ui.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.r16ui.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.r16i.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r16i.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r16i.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r16i.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.r16i.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.r16i.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.r16i.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.r16i.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.r16i.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.r16i.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.r32ui.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r32ui.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r32ui.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r32ui.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.r32ui.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.r32ui.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.r32ui.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.r32ui.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.r32ui.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.r32ui.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.r32i.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r32i.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r32i.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r32i.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.r32i.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.r32i.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.r32i.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.r32i.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.r32i.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.r32i.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rg8.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg8.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg8.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg8.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg8.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg8.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg8.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rg8.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rg8.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rg8.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rg8snorm.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg8snorm.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg8snorm.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg8snorm.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg8snorm.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg8snorm.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg8snorm.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rg8snorm.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rg8snorm.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rg8snorm.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rg16f.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg16f.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg16f.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg16f.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg16f.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg16f.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg16f.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rg16f.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rg16f.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rg16f.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rg32f.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg32f.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg32f.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg32f.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg32f.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg32f.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg32f.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rg32f.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rg32f.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rg32f.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rg8ui.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg8ui.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg8ui.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg8ui.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg8ui.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg8ui.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg8ui.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rg8ui.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rg8ui.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rg8ui.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rg8i.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg8i.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg8i.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg8i.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg8i.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg8i.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg8i.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rg8i.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rg8i.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rg8i.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rg16ui.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg16ui.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg16ui.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg16ui.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg16ui.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg16ui.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg16ui.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rg16ui.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rg16ui.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rg16ui.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rg16i.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg16i.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg16i.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg16i.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg16i.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg16i.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg16i.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rg16i.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rg16i.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rg16i.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rg32ui.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg32ui.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg32ui.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg32ui.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg32ui.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg32ui.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg32ui.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rg32ui.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rg32ui.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rg32ui.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rg32i.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg32i.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg32i.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg32i.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg32i.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg32i.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rg32i.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rg32i.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rg32i.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rg32i.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rgb565.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb565.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb565.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb565.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb565.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb565.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb565.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb565.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb565.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb565.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8snorm.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8snorm.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8snorm.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8snorm.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8snorm.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8snorm.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8snorm.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8snorm.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8snorm.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8snorm.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.r11g11b10f.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r11g11b10f.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r11g11b10f.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.r11g11b10f.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.r11g11b10f.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.r11g11b10f.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.r11g11b10f.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.r11g11b10f.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.r11g11b10f.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.r11g11b10f.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rgb16f.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb16f.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb16f.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb16f.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb16f.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb16f.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb16f.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb16f.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb16f.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb16f.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rgb32f.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb32f.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb32f.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb32f.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb32f.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb32f.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb32f.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb32f.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb32f.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb32f.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8ui.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8ui.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8ui.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8ui.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8ui.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8ui.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8ui.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8ui.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8ui.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8ui.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8i.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8i.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8i.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8i.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8i.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8i.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8i.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8i.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8i.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb8i.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rgb16ui.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb16ui.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb16ui.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb16ui.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb16ui.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb16ui.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb16ui.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb16ui.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb16ui.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb16ui.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rgb16i.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb16i.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb16i.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb16i.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb16i.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb16i.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb16i.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb16i.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb16i.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb16i.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rgb32ui.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb32ui.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb32ui.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb32ui.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb32ui.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb32ui.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb32ui.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb32ui.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb32ui.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb32ui.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rgb32i.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb32i.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb32i.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb32i.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb32i.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb32i.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb32i.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb32i.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb32i.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb32i.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8snorm.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8snorm.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8snorm.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8snorm.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8snorm.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8snorm.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8snorm.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8snorm.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8snorm.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8snorm.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rgb5a1.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb5a1.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb5a1.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb5a1.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb5a1.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb5a1.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb5a1.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb5a1.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb5a1.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb5a1.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rgba4.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba4.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba4.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba4.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba4.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba4.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba4.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba4.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba4.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba4.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rgb10a2.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb10a2.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb10a2.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb10a2.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb10a2.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb10a2.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb10a2.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb10a2.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb10a2.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb10a2.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rgba16f.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba16f.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba16f.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba16f.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba16f.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba16f.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba16f.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba16f.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba16f.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba16f.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rgba32f.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba32f.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba32f.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba32f.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba32f.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba32f.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba32f.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba32f.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba32f.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba32f.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8ui.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8ui.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8ui.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8ui.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8ui.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8ui.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8ui.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8ui.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8ui.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8ui.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8i.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8i.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8i.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8i.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8i.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8i.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8i.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8i.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8i.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba8i.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rgb10a2ui.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb10a2ui.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb10a2ui.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb10a2ui.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb10a2ui.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgb10a2ui.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb10a2ui.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rgba16ui.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba16ui.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba16ui.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba16ui.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba16ui.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba16ui.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba16ui.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba16ui.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba16ui.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba16ui.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rgba16i.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba16i.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba16i.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba16i.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba16i.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba16i.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba16i.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba16i.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba16i.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba16i.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rgba32i.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba32i.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba32i.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba32i.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba32i.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba32i.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba32i.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba32i.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba32i.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba32i.16_16_4
+KHR-GL46.pixelstoragemodes.teximage3d.rgba32ui.0_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba32ui.1_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba32ui.16_0_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba32ui.1_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba32ui.16_1_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba32ui.16_16_0
+KHR-GL46.pixelstoragemodes.teximage3d.rgba32ui.1_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba32ui.16_1_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba32ui.16_16_1
+KHR-GL46.pixelstoragemodes.teximage3d.rgba32ui.16_16_4
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_0
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_0
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_0
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_0
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_4
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_4
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_4
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_4
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_16
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_16
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_16
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_16
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.0_32
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.4_32
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.16_32
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgb_s3tc_dxt1.32_32
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_0
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_0
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_0
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_0
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_5
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_5
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_5
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_5
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_15
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_15
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_15
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_15
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.0_30
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.8_30
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.16_30
+KHR-GL46.pixelstoragemodes.compressedteximage2d.rgba_astc_8x5.32_30
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_0_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_0_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_0_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_0_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_4_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_4_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_4_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_4_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_16_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_16_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_16_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_16_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.0_32_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.4_32_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.16_32_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgb_s3tc_dxt1.32_32_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_0
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_1
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_4
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_0_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_0_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_0_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_0_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_5_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_5_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_5_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_5_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_15_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_15_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_15_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_15_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.0_30_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.8_30_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.16_30_8
+KHR-GL46.pixelstoragemodes.compressedteximage3d.rgba_astc_8x5.32_30_8
 KHR-GL46.draw_elements_base_vertex_tests.basevertex_behavior1
 KHR-GL46.draw_elements_base_vertex_tests.basevertex_behavior2
 KHR-GL46.draw_elements_base_vertex_tests.AEP_shader_stages
diff --git a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.2.x/mustpass.xml b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.2.x/mustpass.xml
index edf72af..27eaf5d 100644
--- a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.2.x/mustpass.xml
+++ b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.2.x/mustpass.xml
@@ -25,13 +25,13 @@
 		<Configuration caseListFile="gles3-rotate-reverse-portrait.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=180 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-reverse-portrait" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles3-rotate-reverse-landscape.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=270 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-reverse-landscape" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles3-multisample.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms4 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="multisample" os="any" useForFirstEGLConfig="True"/>
-		<Configuration caseListFile="gles3-565-no-depth-no-stencil.txt" commandLine="--deqp-gl-config-name=rgb565d0s0ms0 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="565-no-depth-no-stencil" os="any" useForFirstEGLConfig="True"/>
+		<Configuration caseListFile="gles3-565-no-depth-no-stencil.txt" commandLine="--deqp-gl-config-name=rgb565d0s0ms0 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="565-no-depth-no-stencil" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-master.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="master" os="any" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-rotate-portrait.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=0 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-portrait" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-rotate-landscape.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=90 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-landscape" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-rotate-reverse-portrait.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=180 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-reverse-portrait" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-rotate-reverse-landscape.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=270 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-reverse-landscape" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-multisample.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms4 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="multisample" os="any" useForFirstEGLConfig="True"/>
-		<Configuration caseListFile="gles31-565-no-depth-no-stencil.txt" commandLine="--deqp-gl-config-name=rgb565d0s0ms0 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="565-no-depth-no-stencil" os="any" useForFirstEGLConfig="True"/>
+		<Configuration caseListFile="gles31-565-no-depth-no-stencil.txt" commandLine="--deqp-gl-config-name=rgb565d0s0ms0 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="565-no-depth-no-stencil" os="android" useForFirstEGLConfig="True"/>
 	</TestPackage>
 </Mustpass>
diff --git a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.3.x/mustpass.xml b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.3.x/mustpass.xml
index 1de5351..b4864fb 100644
--- a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.3.x/mustpass.xml
+++ b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.3.x/mustpass.xml
@@ -25,13 +25,13 @@
 		<Configuration caseListFile="gles3-rotate-reverse-portrait.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=180 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-reverse-portrait" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles3-rotate-reverse-landscape.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=270 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-reverse-landscape" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles3-multisample.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms4 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="multisample" os="any" useForFirstEGLConfig="True"/>
-		<Configuration caseListFile="gles3-565-no-depth-no-stencil.txt" commandLine="--deqp-gl-config-name=rgb565d0s0ms0 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="565-no-depth-no-stencil" os="any" useForFirstEGLConfig="True"/>
+		<Configuration caseListFile="gles3-565-no-depth-no-stencil.txt" commandLine="--deqp-gl-config-name=rgb565d0s0ms0 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="565-no-depth-no-stencil" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-master.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="master" os="any" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-rotate-portrait.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=0 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-portrait" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-rotate-landscape.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=90 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-landscape" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-rotate-reverse-portrait.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=180 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-reverse-portrait" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-rotate-reverse-landscape.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=270 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-reverse-landscape" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-multisample.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms4 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="multisample" os="any" useForFirstEGLConfig="True"/>
-		<Configuration caseListFile="gles31-565-no-depth-no-stencil.txt" commandLine="--deqp-gl-config-name=rgb565d0s0ms0 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="565-no-depth-no-stencil" os="any" useForFirstEGLConfig="True"/>
+		<Configuration caseListFile="gles31-565-no-depth-no-stencil.txt" commandLine="--deqp-gl-config-name=rgb565d0s0ms0 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="565-no-depth-no-stencil" os="android" useForFirstEGLConfig="True"/>
 	</TestPackage>
 </Mustpass>
diff --git a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.4.x/mustpass.xml b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.4.x/mustpass.xml
index 59e97aa..fde291f 100644
--- a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.4.x/mustpass.xml
+++ b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.4.x/mustpass.xml
@@ -25,13 +25,13 @@
 		<Configuration caseListFile="gles3-rotate-reverse-portrait.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=180 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-reverse-portrait" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles3-rotate-reverse-landscape.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=270 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-reverse-landscape" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles3-multisample.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms4 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="multisample" os="any" useForFirstEGLConfig="True"/>
-		<Configuration caseListFile="gles3-565-no-depth-no-stencil.txt" commandLine="--deqp-gl-config-name=rgb565d0s0ms0 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="565-no-depth-no-stencil" os="any" useForFirstEGLConfig="True"/>
+		<Configuration caseListFile="gles3-565-no-depth-no-stencil.txt" commandLine="--deqp-gl-config-name=rgb565d0s0ms0 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="565-no-depth-no-stencil" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-master.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="master" os="any" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-rotate-portrait.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=0 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-portrait" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-rotate-landscape.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=90 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-landscape" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-rotate-reverse-portrait.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=180 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-reverse-portrait" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-rotate-reverse-landscape.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=270 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-reverse-landscape" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-multisample.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms4 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="multisample" os="any" useForFirstEGLConfig="True"/>
-		<Configuration caseListFile="gles31-565-no-depth-no-stencil.txt" commandLine="--deqp-gl-config-name=rgb565d0s0ms0 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="565-no-depth-no-stencil" os="any" useForFirstEGLConfig="True"/>
+		<Configuration caseListFile="gles31-565-no-depth-no-stencil.txt" commandLine="--deqp-gl-config-name=rgb565d0s0ms0 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="565-no-depth-no-stencil" os="android" useForFirstEGLConfig="True"/>
 	</TestPackage>
 </Mustpass>
diff --git a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.5.x/mustpass.xml b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.5.x/mustpass.xml
index 267cdbe..44fa0fc 100644
--- a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.5.x/mustpass.xml
+++ b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.5.x/mustpass.xml
@@ -25,13 +25,13 @@
 		<Configuration caseListFile="gles3-rotate-reverse-portrait.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=180 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-reverse-portrait" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles3-rotate-reverse-landscape.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=270 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-reverse-landscape" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles3-multisample.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms4 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="multisample" os="any" useForFirstEGLConfig="True"/>
-		<Configuration caseListFile="gles3-565-no-depth-no-stencil.txt" commandLine="--deqp-gl-config-name=rgb565d0s0ms0 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="565-no-depth-no-stencil" os="any" useForFirstEGLConfig="True"/>
+		<Configuration caseListFile="gles3-565-no-depth-no-stencil.txt" commandLine="--deqp-gl-config-name=rgb565d0s0ms0 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="565-no-depth-no-stencil" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-master.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="master" os="any" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-rotate-portrait.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=0 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-portrait" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-rotate-landscape.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=90 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-landscape" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-rotate-reverse-portrait.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=180 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-reverse-portrait" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-rotate-reverse-landscape.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=270 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-reverse-landscape" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-multisample.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms4 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="multisample" os="any" useForFirstEGLConfig="True"/>
-		<Configuration caseListFile="gles31-565-no-depth-no-stencil.txt" commandLine="--deqp-gl-config-name=rgb565d0s0ms0 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="565-no-depth-no-stencil" os="any" useForFirstEGLConfig="True"/>
+		<Configuration caseListFile="gles31-565-no-depth-no-stencil.txt" commandLine="--deqp-gl-config-name=rgb565d0s0ms0 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="565-no-depth-no-stencil" os="android" useForFirstEGLConfig="True"/>
 	</TestPackage>
 </Mustpass>
diff --git a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.6.x/mustpass.xml b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.6.x/mustpass.xml
index 9f8518a..ef81694 100644
--- a/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.6.x/mustpass.xml
+++ b/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.6.x/mustpass.xml
@@ -25,13 +25,13 @@
 		<Configuration caseListFile="gles3-rotate-reverse-portrait.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=180 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-reverse-portrait" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles3-rotate-reverse-landscape.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=270 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-reverse-landscape" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles3-multisample.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms4 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="multisample" os="any" useForFirstEGLConfig="True"/>
-		<Configuration caseListFile="gles3-565-no-depth-no-stencil.txt" commandLine="--deqp-gl-config-name=rgb565d0s0ms0 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="565-no-depth-no-stencil" os="any" useForFirstEGLConfig="True"/>
+		<Configuration caseListFile="gles3-565-no-depth-no-stencil.txt" commandLine="--deqp-gl-config-name=rgb565d0s0ms0 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="565-no-depth-no-stencil" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-master.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="master" os="any" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-rotate-portrait.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=0 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-portrait" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-rotate-landscape.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=90 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-landscape" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-rotate-reverse-portrait.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=180 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-reverse-portrait" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-rotate-reverse-landscape.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=270 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-reverse-landscape" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-multisample.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms4 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="multisample" os="any" useForFirstEGLConfig="True"/>
-		<Configuration caseListFile="gles31-565-no-depth-no-stencil.txt" commandLine="--deqp-gl-config-name=rgb565d0s0ms0 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="565-no-depth-no-stencil" os="any" useForFirstEGLConfig="True"/>
+		<Configuration caseListFile="gles31-565-no-depth-no-stencil.txt" commandLine="--deqp-gl-config-name=rgb565d0s0ms0 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="565-no-depth-no-stencil" os="android" useForFirstEGLConfig="True"/>
 	</TestPackage>
 </Mustpass>
diff --git a/external/openglcts/data/mustpass/gles/aosp_mustpass/master/mustpass.xml b/external/openglcts/data/mustpass/gles/aosp_mustpass/master/mustpass.xml
index 60d679d..ae63c30 100644
--- a/external/openglcts/data/mustpass/gles/aosp_mustpass/master/mustpass.xml
+++ b/external/openglcts/data/mustpass/gles/aosp_mustpass/master/mustpass.xml
@@ -25,13 +25,13 @@
 		<Configuration caseListFile="gles3-rotate-reverse-portrait.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=180 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-reverse-portrait" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles3-rotate-reverse-landscape.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=270 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-reverse-landscape" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles3-multisample.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms4 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="multisample" os="any" useForFirstEGLConfig="True"/>
-		<Configuration caseListFile="gles3-565-no-depth-no-stencil.txt" commandLine="--deqp-gl-config-name=rgb565d0s0ms0 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="565-no-depth-no-stencil" os="any" useForFirstEGLConfig="True"/>
+		<Configuration caseListFile="gles3-565-no-depth-no-stencil.txt" commandLine="--deqp-gl-config-name=rgb565d0s0ms0 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="565-no-depth-no-stencil" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-master.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="master" os="any" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-rotate-portrait.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=0 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-portrait" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-rotate-landscape.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=90 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-landscape" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-rotate-reverse-portrait.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=180 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-reverse-portrait" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-rotate-reverse-landscape.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms0 --deqp-screen-rotation=270 --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="rotate-reverse-landscape" os="android" useForFirstEGLConfig="True"/>
 		<Configuration caseListFile="gles31-multisample.txt" commandLine="--deqp-gl-config-name=rgba8888d24s8ms4 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="multisample" os="any" useForFirstEGLConfig="True"/>
-		<Configuration caseListFile="gles31-565-no-depth-no-stencil.txt" commandLine="--deqp-gl-config-name=rgb565d0s0ms0 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="565-no-depth-no-stencil" os="any" useForFirstEGLConfig="True"/>
+		<Configuration caseListFile="gles31-565-no-depth-no-stencil.txt" commandLine="--deqp-gl-config-name=rgb565d0s0ms0 --deqp-screen-rotation=unspecified --deqp-surface-width=256 --deqp-surface-height=256 --deqp-watchdog=disable" name="565-no-depth-no-stencil" os="android" useForFirstEGLConfig="True"/>
 	</TestPackage>
 </Mustpass>
diff --git a/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.5.x/gles3-khr-master.txt b/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.5.x/gles3-khr-master.txt
index 5a6f76f..abf2826 100644
--- a/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.5.x/gles3-khr-master.txt
+++ b/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.5.x/gles3-khr-master.txt
@@ -3278,6 +3278,8 @@
 KHR-GLES3.core.internalformat.renderbuffer.rgba8
 KHR-GLES3.core.internalformat.renderbuffer.rgb8
 KHR-GLES3.core.internalformat.renderbuffer.rgb5_a1
+KHR-GLES3.core.nearest_edge.offset_left
+KHR-GLES3.core.nearest_edge.offset_right
 KHR-GLES3.parallel_shader_compile.simple_queries
 KHR-GLES3.parallel_shader_compile.max_shader_compile_threads
 KHR-GLES3.parallel_shader_compile.compilation_completion_parallel
diff --git a/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.5.x/gles31-khr-master.txt b/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.5.x/gles31-khr-master.txt
index 2f0b28e..f12de09 100644
--- a/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.5.x/gles31-khr-master.txt
+++ b/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.5.x/gles31-khr-master.txt
@@ -2307,6 +2307,8 @@
 KHR-GLES31.core.internalformat.renderbuffer.rgba8
 KHR-GLES31.core.internalformat.renderbuffer.rgb8
 KHR-GLES31.core.internalformat.renderbuffer.rgb5_a1
+KHR-GLES31.core.nearest_edge.offset_left
+KHR-GLES31.core.nearest_edge.offset_right
 KHR-GLES31.core.geometry_shader.adjacency.adjacency_non_indiced_lines
 KHR-GLES31.core.geometry_shader.adjacency.adjacency_indiced_lines
 KHR-GLES31.core.geometry_shader.adjacency.adjacency_non_indiced_line_strip
@@ -2619,6 +2621,742 @@
 KHR-GLES31.core.viewport_array.depth_range
 KHR-GLES31.core.viewport_array.depth_range_depth_test
 KHR-GLES31.core.viewport_array.provoking_vertex
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8snorm.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8snorm.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8snorm.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8snorm.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8snorm.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8snorm.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16f.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16f.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16f.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16f.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16f.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16f.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32f.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32f.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32f.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32f.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32f.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32f.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8snorm.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8snorm.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8snorm.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8snorm.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8snorm.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8snorm.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16f.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16f.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16f.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16f.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16f.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16f.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32f.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32f.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32f.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32f.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32f.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32f.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb565.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb565.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb565.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb565.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb565.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb565.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8snorm.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8snorm.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8snorm.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8snorm.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8snorm.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8snorm.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r11g11b10f.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r11g11b10f.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r11g11b10f.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r11g11b10f.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r11g11b10f.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r11g11b10f.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16f.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16f.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16f.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16f.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16f.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16f.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32f.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32f.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32f.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32f.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32f.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32f.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8snorm.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8snorm.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8snorm.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8snorm.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8snorm.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8snorm.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb5a1.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb5a1.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb5a1.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb5a1.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb5a1.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb5a1.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba4.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba4.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba4.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba4.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba4.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba4.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16f.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16f.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16f.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16f.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16f.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16f.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32f.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32f.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32f.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32f.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32f.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32f.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8snorm.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8snorm.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8snorm.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8snorm.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8snorm.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8snorm.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8snorm.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8snorm.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8snorm.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8snorm.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16f.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16f.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16f.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16f.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16f.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16f.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16f.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16f.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16f.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16f.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32f.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32f.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32f.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32f.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32f.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32f.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32f.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32f.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32f.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32f.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8snorm.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8snorm.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8snorm.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8snorm.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8snorm.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8snorm.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8snorm.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8snorm.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8snorm.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8snorm.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16f.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16f.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16f.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16f.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16f.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16f.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16f.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16f.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16f.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16f.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32f.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32f.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32f.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32f.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32f.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32f.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32f.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32f.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32f.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32f.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb565.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb565.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb565.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb565.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb565.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb565.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb565.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb565.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb565.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb565.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8snorm.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8snorm.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8snorm.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8snorm.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8snorm.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8snorm.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8snorm.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8snorm.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8snorm.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8snorm.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r11g11b10f.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r11g11b10f.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r11g11b10f.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r11g11b10f.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r11g11b10f.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r11g11b10f.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r11g11b10f.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r11g11b10f.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r11g11b10f.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r11g11b10f.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16f.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16f.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16f.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16f.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16f.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16f.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16f.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16f.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16f.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16f.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32f.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32f.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32f.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32f.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32f.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32f.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32f.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32f.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32f.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32f.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8snorm.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8snorm.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8snorm.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8snorm.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8snorm.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8snorm.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8snorm.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8snorm.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8snorm.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8snorm.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb5a1.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb5a1.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb5a1.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb5a1.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb5a1.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb5a1.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb5a1.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb5a1.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb5a1.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb5a1.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba4.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba4.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba4.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba4.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba4.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba4.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba4.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba4.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba4.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba4.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16f.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16f.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16f.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16f.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16f.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16f.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16f.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16f.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16f.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16f.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32f.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32f.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32f.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32f.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32f.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32f.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32f.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32f.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32f.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32f.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32ui.16_16_4
 KHR-GLES31.shaders.negative.initialize
 KHR-GLES31.shaders.negative.constant_sequence
 KHR-GLES31.shaders.aggressive_optimizations.sin_float_vert
diff --git a/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.5.x/gles32-khr-master.txt b/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.5.x/gles32-khr-master.txt
index 788b602..aeda3ad 100644
--- a/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.5.x/gles32-khr-master.txt
+++ b/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.5.x/gles32-khr-master.txt
@@ -1089,3 +1089,5 @@
 KHR-GLES32.core.ext_texture_shadow_lod.texturelod.samplercubearrayshadow_fragment
 KHR-GLES32.core.ext_texture_shadow_lod.texturelodoffset.sampler2darrayshadow_vertex
 KHR-GLES32.core.ext_texture_shadow_lod.texturelodoffset.sampler2darrayshadow_fragment
+KHR-GLES32.core.nearest_edge.offset_left
+KHR-GLES32.core.nearest_edge.offset_right
diff --git a/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.6.x/gles3-khr-master.txt b/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.6.x/gles3-khr-master.txt
index 5a6f76f..abf2826 100644
--- a/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.6.x/gles3-khr-master.txt
+++ b/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.6.x/gles3-khr-master.txt
@@ -3278,6 +3278,8 @@
 KHR-GLES3.core.internalformat.renderbuffer.rgba8
 KHR-GLES3.core.internalformat.renderbuffer.rgb8
 KHR-GLES3.core.internalformat.renderbuffer.rgb5_a1
+KHR-GLES3.core.nearest_edge.offset_left
+KHR-GLES3.core.nearest_edge.offset_right
 KHR-GLES3.parallel_shader_compile.simple_queries
 KHR-GLES3.parallel_shader_compile.max_shader_compile_threads
 KHR-GLES3.parallel_shader_compile.compilation_completion_parallel
diff --git a/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.6.x/gles31-khr-master.txt b/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.6.x/gles31-khr-master.txt
index 2f0b28e..f12de09 100644
--- a/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.6.x/gles31-khr-master.txt
+++ b/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.6.x/gles31-khr-master.txt
@@ -2307,6 +2307,8 @@
 KHR-GLES31.core.internalformat.renderbuffer.rgba8
 KHR-GLES31.core.internalformat.renderbuffer.rgb8
 KHR-GLES31.core.internalformat.renderbuffer.rgb5_a1
+KHR-GLES31.core.nearest_edge.offset_left
+KHR-GLES31.core.nearest_edge.offset_right
 KHR-GLES31.core.geometry_shader.adjacency.adjacency_non_indiced_lines
 KHR-GLES31.core.geometry_shader.adjacency.adjacency_indiced_lines
 KHR-GLES31.core.geometry_shader.adjacency.adjacency_non_indiced_line_strip
@@ -2619,6 +2621,742 @@
 KHR-GLES31.core.viewport_array.depth_range
 KHR-GLES31.core.viewport_array.depth_range_depth_test
 KHR-GLES31.core.viewport_array.provoking_vertex
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8snorm.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8snorm.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8snorm.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8snorm.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8snorm.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8snorm.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16f.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16f.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16f.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16f.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16f.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16f.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32f.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32f.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32f.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32f.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32f.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32f.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8snorm.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8snorm.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8snorm.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8snorm.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8snorm.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8snorm.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16f.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16f.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16f.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16f.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16f.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16f.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32f.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32f.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32f.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32f.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32f.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32f.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb565.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb565.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb565.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb565.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb565.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb565.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8snorm.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8snorm.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8snorm.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8snorm.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8snorm.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8snorm.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r11g11b10f.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r11g11b10f.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r11g11b10f.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r11g11b10f.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r11g11b10f.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r11g11b10f.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16f.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16f.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16f.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16f.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16f.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16f.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32f.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32f.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32f.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32f.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32f.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32f.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8snorm.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8snorm.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8snorm.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8snorm.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8snorm.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8snorm.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb5a1.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb5a1.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb5a1.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb5a1.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb5a1.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb5a1.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba4.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba4.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba4.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba4.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba4.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba4.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16f.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16f.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16f.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16f.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16f.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16f.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32f.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32f.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32f.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32f.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32f.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32f.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8snorm.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8snorm.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8snorm.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8snorm.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8snorm.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8snorm.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8snorm.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8snorm.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8snorm.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8snorm.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16f.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16f.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16f.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16f.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16f.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16f.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16f.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16f.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16f.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16f.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32f.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32f.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32f.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32f.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32f.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32f.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32f.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32f.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32f.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32f.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8snorm.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8snorm.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8snorm.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8snorm.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8snorm.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8snorm.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8snorm.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8snorm.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8snorm.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8snorm.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16f.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16f.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16f.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16f.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16f.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16f.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16f.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16f.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16f.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16f.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32f.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32f.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32f.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32f.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32f.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32f.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32f.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32f.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32f.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32f.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb565.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb565.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb565.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb565.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb565.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb565.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb565.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb565.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb565.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb565.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8snorm.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8snorm.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8snorm.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8snorm.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8snorm.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8snorm.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8snorm.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8snorm.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8snorm.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8snorm.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r11g11b10f.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r11g11b10f.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r11g11b10f.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r11g11b10f.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r11g11b10f.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r11g11b10f.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r11g11b10f.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r11g11b10f.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r11g11b10f.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r11g11b10f.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16f.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16f.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16f.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16f.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16f.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16f.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16f.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16f.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16f.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16f.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32f.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32f.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32f.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32f.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32f.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32f.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32f.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32f.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32f.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32f.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8snorm.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8snorm.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8snorm.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8snorm.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8snorm.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8snorm.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8snorm.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8snorm.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8snorm.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8snorm.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb5a1.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb5a1.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb5a1.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb5a1.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb5a1.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb5a1.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb5a1.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb5a1.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb5a1.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb5a1.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba4.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba4.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba4.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba4.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba4.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba4.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba4.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba4.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba4.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba4.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16f.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16f.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16f.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16f.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16f.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16f.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16f.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16f.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16f.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16f.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32f.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32f.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32f.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32f.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32f.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32f.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32f.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32f.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32f.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32f.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32ui.16_16_4
 KHR-GLES31.shaders.negative.initialize
 KHR-GLES31.shaders.negative.constant_sequence
 KHR-GLES31.shaders.aggressive_optimizations.sin_float_vert
diff --git a/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.6.x/gles32-khr-master.txt b/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.6.x/gles32-khr-master.txt
index 788b602..aeda3ad 100644
--- a/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.6.x/gles32-khr-master.txt
+++ b/external/openglcts/data/mustpass/gles/khronos_mustpass/3.2.6.x/gles32-khr-master.txt
@@ -1089,3 +1089,5 @@
 KHR-GLES32.core.ext_texture_shadow_lod.texturelod.samplercubearrayshadow_fragment
 KHR-GLES32.core.ext_texture_shadow_lod.texturelodoffset.sampler2darrayshadow_vertex
 KHR-GLES32.core.ext_texture_shadow_lod.texturelodoffset.sampler2darrayshadow_fragment
+KHR-GLES32.core.nearest_edge.offset_left
+KHR-GLES32.core.nearest_edge.offset_right
diff --git a/external/openglcts/data/mustpass/gles/khronos_mustpass/master/gles3-khr-master.txt b/external/openglcts/data/mustpass/gles/khronos_mustpass/master/gles3-khr-master.txt
index 5a6f76f..abf2826 100644
--- a/external/openglcts/data/mustpass/gles/khronos_mustpass/master/gles3-khr-master.txt
+++ b/external/openglcts/data/mustpass/gles/khronos_mustpass/master/gles3-khr-master.txt
@@ -3278,6 +3278,8 @@
 KHR-GLES3.core.internalformat.renderbuffer.rgba8
 KHR-GLES3.core.internalformat.renderbuffer.rgb8
 KHR-GLES3.core.internalformat.renderbuffer.rgb5_a1
+KHR-GLES3.core.nearest_edge.offset_left
+KHR-GLES3.core.nearest_edge.offset_right
 KHR-GLES3.parallel_shader_compile.simple_queries
 KHR-GLES3.parallel_shader_compile.max_shader_compile_threads
 KHR-GLES3.parallel_shader_compile.compilation_completion_parallel
diff --git a/external/openglcts/data/mustpass/gles/khronos_mustpass/master/gles31-khr-master.txt b/external/openglcts/data/mustpass/gles/khronos_mustpass/master/gles31-khr-master.txt
index 2f0b28e..f12de09 100644
--- a/external/openglcts/data/mustpass/gles/khronos_mustpass/master/gles31-khr-master.txt
+++ b/external/openglcts/data/mustpass/gles/khronos_mustpass/master/gles31-khr-master.txt
@@ -2307,6 +2307,8 @@
 KHR-GLES31.core.internalformat.renderbuffer.rgba8
 KHR-GLES31.core.internalformat.renderbuffer.rgb8
 KHR-GLES31.core.internalformat.renderbuffer.rgb5_a1
+KHR-GLES31.core.nearest_edge.offset_left
+KHR-GLES31.core.nearest_edge.offset_right
 KHR-GLES31.core.geometry_shader.adjacency.adjacency_non_indiced_lines
 KHR-GLES31.core.geometry_shader.adjacency.adjacency_indiced_lines
 KHR-GLES31.core.geometry_shader.adjacency.adjacency_non_indiced_line_strip
@@ -2619,6 +2621,742 @@
 KHR-GLES31.core.viewport_array.depth_range
 KHR-GLES31.core.viewport_array.depth_range_depth_test
 KHR-GLES31.core.viewport_array.provoking_vertex
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8snorm.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8snorm.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8snorm.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8snorm.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8snorm.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8snorm.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16f.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16f.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16f.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16f.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16f.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16f.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32f.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32f.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32f.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32f.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32f.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32f.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r8i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r16i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r32i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8snorm.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8snorm.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8snorm.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8snorm.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8snorm.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8snorm.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16f.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16f.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16f.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16f.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16f.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16f.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32f.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32f.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32f.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32f.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32f.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32f.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg8i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg16i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rg32i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb565.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb565.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb565.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb565.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb565.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb565.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8snorm.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8snorm.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8snorm.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8snorm.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8snorm.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8snorm.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r11g11b10f.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r11g11b10f.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r11g11b10f.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r11g11b10f.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r11g11b10f.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.r11g11b10f.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16f.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16f.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16f.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16f.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16f.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16f.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32f.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32f.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32f.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32f.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32f.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32f.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb8i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb16i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb32i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8snorm.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8snorm.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8snorm.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8snorm.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8snorm.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8snorm.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb5a1.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb5a1.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb5a1.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb5a1.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb5a1.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb5a1.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba4.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba4.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba4.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba4.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba4.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba4.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16f.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16f.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16f.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16f.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16f.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16f.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32f.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32f.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32f.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32f.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32f.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32f.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba8i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgb10a2ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba16i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32i.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32i.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32i.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32i.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32i.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32i.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32ui.0_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32ui.1_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32ui.16_0
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32ui.1_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32ui.16_1
+KHR-GLES31.core.pixelstoragemodes.teximage2d.rgba32ui.16_16
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8snorm.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8snorm.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8snorm.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8snorm.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8snorm.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8snorm.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8snorm.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8snorm.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8snorm.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8snorm.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16f.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16f.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16f.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16f.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16f.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16f.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16f.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16f.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16f.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16f.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32f.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32f.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32f.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32f.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32f.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32f.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32f.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32f.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32f.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32f.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r8i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r16i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r32i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8snorm.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8snorm.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8snorm.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8snorm.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8snorm.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8snorm.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8snorm.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8snorm.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8snorm.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8snorm.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16f.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16f.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16f.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16f.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16f.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16f.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16f.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16f.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16f.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16f.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32f.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32f.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32f.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32f.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32f.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32f.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32f.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32f.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32f.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32f.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg8i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg16i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rg32i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb565.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb565.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb565.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb565.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb565.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb565.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb565.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb565.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb565.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb565.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8snorm.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8snorm.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8snorm.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8snorm.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8snorm.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8snorm.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8snorm.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8snorm.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8snorm.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8snorm.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r11g11b10f.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r11g11b10f.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r11g11b10f.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r11g11b10f.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r11g11b10f.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r11g11b10f.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r11g11b10f.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r11g11b10f.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r11g11b10f.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.r11g11b10f.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16f.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16f.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16f.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16f.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16f.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16f.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16f.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16f.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16f.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16f.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32f.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32f.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32f.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32f.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32f.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32f.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32f.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32f.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32f.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32f.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb8i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb16i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb32i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8snorm.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8snorm.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8snorm.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8snorm.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8snorm.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8snorm.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8snorm.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8snorm.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8snorm.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8snorm.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb5a1.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb5a1.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb5a1.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb5a1.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb5a1.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb5a1.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb5a1.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb5a1.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb5a1.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb5a1.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba4.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba4.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba4.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba4.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba4.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba4.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba4.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba4.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba4.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba4.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16f.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16f.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16f.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16f.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16f.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16f.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16f.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16f.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16f.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16f.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32f.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32f.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32f.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32f.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32f.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32f.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32f.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32f.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32f.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32f.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba8i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgb10a2ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16ui.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba16i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32i.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32i.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32i.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32i.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32i.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32i.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32i.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32i.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32i.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32i.16_16_4
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32ui.0_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32ui.1_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32ui.16_0_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32ui.1_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32ui.16_1_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32ui.16_16_0
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32ui.1_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32ui.16_1_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32ui.16_16_1
+KHR-GLES31.core.pixelstoragemodes.teximage3d.rgba32ui.16_16_4
 KHR-GLES31.shaders.negative.initialize
 KHR-GLES31.shaders.negative.constant_sequence
 KHR-GLES31.shaders.aggressive_optimizations.sin_float_vert
diff --git a/external/openglcts/data/mustpass/gles/khronos_mustpass/master/gles32-khr-master.txt b/external/openglcts/data/mustpass/gles/khronos_mustpass/master/gles32-khr-master.txt
index 788b602..aeda3ad 100644
--- a/external/openglcts/data/mustpass/gles/khronos_mustpass/master/gles32-khr-master.txt
+++ b/external/openglcts/data/mustpass/gles/khronos_mustpass/master/gles32-khr-master.txt
@@ -1089,3 +1089,5 @@
 KHR-GLES32.core.ext_texture_shadow_lod.texturelod.samplercubearrayshadow_fragment
 KHR-GLES32.core.ext_texture_shadow_lod.texturelodoffset.sampler2darrayshadow_vertex
 KHR-GLES32.core.ext_texture_shadow_lod.texturelodoffset.sampler2darrayshadow_fragment
+KHR-GLES32.core.nearest_edge.offset_left
+KHR-GLES32.core.nearest_edge.offset_right
diff --git a/external/openglcts/data/mustpass/gles/khronos_mustpass/master/waivers.xml b/external/openglcts/data/mustpass/gles/khronos_mustpass/master/waivers.xml
new file mode 100644
index 0000000..460b067
--- /dev/null
+++ b/external/openglcts/data/mustpass/gles/khronos_mustpass/master/waivers.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8"?>
+<waiver_list>
+
+	<!--/*     Copyright (C) 2020 The Khronos Group Inc
+ *
+ *     Licensed under the Apache License, Version 2.0 (the "License");
+ *     you may not use this file except in compliance with the License.
+ *     You may obtain a copy of the License at
+ *
+ *          http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *     Unless required by applicable law or agreed to in writing, software
+ *     distributed under the License is distributed on an "AS IS" BASIS,
+ *     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *     See the License for the specific language governing permissions and
+ *     limitations under the License.
+*/-->
+	<!--/*
+	Each <waiver> entry must contain vendor and url string attributes.
+	Url should be a full path to gitlab issue(s).
+	Waiver tag should contain one <description> child that describes issue.
+	Waiver tag should containing one <renderer_list> child.
+	Renderer list should have one or more <r> elements containing renderer names for which this waiver was created.
+	String in <r> tags can use wildcard *.
+	Waiver tag should contain one or more <t> elements containing test paths that should be waived.
+	String in <t> tags can use wildcard *.
+
+	<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+	<xs:element name="waiver_list">
+	<xs:complexType>
+		<xs:sequence>
+			<xs:element name="waiver" maxOccurs="unbounded">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="description" type="xs:string"/>
+					<xs:element name="renderer_list">
+					<xs:complexType>
+						<xs:sequence>
+							<xs:element name="r" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
+						</xs:sequence>
+					</xs:complexType>
+					</xs:element>
+					<xs:element name="t" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
+				</xs:sequence>
+				<xs:attribute name="vendor" type="xs:string" use="required"/>
+				<xs:attribute name="url" type="xs:string" use="required"/>
+			</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	</xs:element>
+	</xs:schema>
+*/-->
+
+	<waiver vendor="ATI Technologies Inc." url="https://gitlab.khronos.org/Tracker/vk-gl-cts/issues/1141 , https://gitlab.khronos.org/Tracker/vk-gl-cts/issues/1190">
+		<description></description>
+		<!--TODO: plase let me know for which renderers this waiver should be defined -->
+		<renderer_list>
+			<r>???</r>
+		</renderer_list>
+		<t>KHR-GL42.texture_view.view_classes</t>
+		<t>KHR-GL43.texture_view.view_classes</t>
+		<t>KHR-GL44.texture_view.view_classes</t>
+		<t>KHR-GL45.texture_view.view_classes</t>
+		<t>KHR-GL46.texture_view.view_classes</t>
+	</waiver>
+
+</waiver_list>
\ No newline at end of file
diff --git a/external/openglcts/modules/common/CMakeLists.txt b/external/openglcts/modules/common/CMakeLists.txt
index fa919fc..fb9c37d 100644
--- a/external/openglcts/modules/common/CMakeLists.txt
+++ b/external/openglcts/modules/common/CMakeLists.txt
@@ -40,6 +40,8 @@
 	glcKHRDebugTests.hpp
 	glcMultipleContextsTests.cpp
 	glcMultipleContextsTests.hpp
+	glcNearestEdgeTests.cpp
+	glcNearestEdgeTests.hpp
 	glcNoErrorTests.cpp
 	glcNoErrorTests.hpp
 	glcRobustnessTests.cpp
@@ -52,6 +54,8 @@
 	glcPackedDepthStencilTests.hpp
 	glcParallelShaderCompileTests.cpp
 	glcParallelShaderCompileTests.hpp
+	glcPixelStorageModesTests.cpp
+	glcPixelStorageModesTests.hpp
 	glcRobustBufferAccessBehaviorTests.cpp
 	glcRobustBufferAccessBehaviorTests.hpp
 	glcSeparableProgramsTransformFeedbackTests.cpp
diff --git a/external/openglcts/modules/common/glcConfigListWGL.cpp b/external/openglcts/modules/common/glcConfigListWGL.cpp
index 2990605..b3250f0 100644
--- a/external/openglcts/modules/common/glcConfigListWGL.cpp
+++ b/external/openglcts/modules/common/glcConfigListWGL.cpp
@@ -59,6 +59,21 @@
 						fmtInfo.pixelType == tcu::wgl::PixelFormatInfo::PIXELTYPE_RGBA;
 		bool isOk = isAOSPOk && (fmtInfo.sampleBuffers == 0);
 
+		if (isOk && (type.getProfile() == glu::PROFILE_ES) &&
+			(fmtInfo.redBits > 8 || fmtInfo.greenBits > 8 || fmtInfo.blueBits > 8 || fmtInfo.alphaBits > 8))
+		{
+			// The OpenGL ES tests use of glReadPixels is not compatible with default framebufer pixel
+			// formats with more than 8-bits per pixel component.
+			isOk = false;
+		}
+
+		if (isOk && (type.getProfile() == glu::PROFILE_ES) && fmtInfo.sRGB)
+		{
+			// The OpenGL ES tests don't interact correctly with a default framebuffer
+			// in the sRGB color space.
+			isOk = false;
+		}
+
 		if (isAOSPOk)
 		{
 			configList.aospConfigs.push_back(AOSPConfig(
diff --git a/external/openglcts/modules/common/glcInternalformatTests.cpp b/external/openglcts/modules/common/glcInternalformatTests.cpp
index 4304985..5798f47 100644
--- a/external/openglcts/modules/common/glcInternalformatTests.cpp
+++ b/external/openglcts/modules/common/glcInternalformatTests.cpp
@@ -1067,7 +1067,7 @@
 		GLU_EXPECT_NO_ERROR(gl.getError(), "glUseProgram");
 
 		float mvpMatrix[16];
-		constructOrthoProjMatrix(mvpMatrix, 0.0, m_renderWidth, 0.0f, m_renderHeight, 1.0f, -1.0f);
+		constructOrthoProjMatrix(mvpMatrix, 0.0, w, 0.0f, h, 1.0f, -1.0f);
 		GLint mvpUniformLocation = gl.getUniformLocation(programs[loop]->getProgram(), "mvpMatrix");
 		gl.uniformMatrix4fv(mvpUniformLocation, 1, 0, mvpMatrix);
 
diff --git a/external/openglcts/modules/common/glcNearestEdgeTests.cpp b/external/openglcts/modules/common/glcNearestEdgeTests.cpp
new file mode 100644
index 0000000..acf241e
--- /dev/null
+++ b/external/openglcts/modules/common/glcNearestEdgeTests.cpp
@@ -0,0 +1,419 @@
+/*-------------------------------------------------------------------------
+ * OpenGL Conformance Test Suite
+ * -----------------------------
+ *
+ * Copyright (c) 2020 Valve Coporation.
+ * Copyright (c) 2020 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */ /*!
+ * \file  glcNearestEdgeTests.cpp
+ * \brief
+ */ /*-------------------------------------------------------------------*/
+
+#include "glcNearestEdgeTests.hpp"
+
+#include "gluDefs.hpp"
+#include "gluTextureUtil.hpp"
+#include "gluDrawUtil.hpp"
+#include "gluShaderProgram.hpp"
+
+#include "glwDefs.hpp"
+#include "glwFunctions.hpp"
+#include "glwEnums.hpp"
+
+#include "tcuTestLog.hpp"
+#include "tcuRenderTarget.hpp"
+#include "tcuStringTemplate.hpp"
+#include "tcuTextureUtil.hpp"
+
+#include <utility>
+#include <map>
+#include <algorithm>
+#include <memory>
+
+namespace glcts
+{
+
+namespace
+{
+
+enum class OffsetDirection
+{
+	LEFT	= 0,
+	RIGHT	= 1,
+};
+
+// Test sampling at the edge of texels. This test is equivalent to:
+//  1) Creating a texture using the same format and size as the frame buffer.
+//  2) Drawing a full screen quad with GL_NEAREST using the texture.
+//  3) Verifying the frame buffer image and the texture match pixel-by-pixel.
+//
+// However, texture coodinates are not located in the exact frame buffer corners. A small offset is applied instead so sampling
+// happens near a texel border instead of in the middle of the texel.
+class NearestEdgeTestCase : public deqp::TestCase
+{
+public:
+	NearestEdgeTestCase(deqp::Context& context, OffsetDirection direction);
+
+	void							deinit();
+	void							init();
+	tcu::TestNode::IterateResult	iterate();
+
+	static std::string				getName			(OffsetDirection direction);
+	static std::string				getDesc			(OffsetDirection direction);
+	static tcu::TextureFormat		toTextureFormat	(const tcu::PixelFormat& pixelFmt);
+
+private:
+	static const glw::GLenum kTextureType	= GL_TEXTURE_2D;
+
+	void createTexture	();
+	void deleteTexture	();
+	void fillTexture	();
+	void renderQuad		();
+	bool verifyResults	();
+
+	const float						m_offsetSign;
+	const int						m_width;
+	const int						m_height;
+	const tcu::PixelFormat&			m_format;
+	const tcu::TextureFormat		m_texFormat;
+	const tcu::TextureFormatInfo	m_texFormatInfo;
+	const glu::TransferFormat		m_transFormat;
+	std::string						m_vertShaderText;
+	std::string						m_fragShaderText;
+	glw::GLuint						m_texture;
+	std::vector<deUint8>			m_texData;
+};
+
+std::string NearestEdgeTestCase::getName (OffsetDirection direction)
+{
+	switch (direction)
+	{
+	case OffsetDirection::LEFT:		return "offset_left";
+	case OffsetDirection::RIGHT:	return "offset_right";
+	default: DE_ASSERT(false); break;
+	}
+	// Unreachable.
+	return "";
+}
+
+std::string NearestEdgeTestCase::getDesc (OffsetDirection direction)
+{
+	switch (direction)
+	{
+	case OffsetDirection::LEFT:		return "Sampling point near the left edge";
+	case OffsetDirection::RIGHT:	return "Sampling point near the right edge";
+	default: DE_ASSERT(false); break;
+	}
+	// Unreachable.
+	return "";
+}
+
+// Translate pixel format in the frame buffer to texture format.
+// Copied from sglrReferenceContext.cpp.
+tcu::TextureFormat NearestEdgeTestCase::toTextureFormat (const tcu::PixelFormat& pixelFmt)
+{
+	static const struct
+	{
+		tcu::PixelFormat	pixelFmt;
+		tcu::TextureFormat	texFmt;
+	} pixelFormatMap[] =
+	{
+		{ tcu::PixelFormat(8,8,8,8),	tcu::TextureFormat(tcu::TextureFormat::RGBA,	tcu::TextureFormat::UNORM_INT8)			},
+		{ tcu::PixelFormat(8,8,8,0),	tcu::TextureFormat(tcu::TextureFormat::RGB,		tcu::TextureFormat::UNORM_INT8)			},
+		{ tcu::PixelFormat(4,4,4,4),	tcu::TextureFormat(tcu::TextureFormat::RGBA,	tcu::TextureFormat::UNORM_SHORT_4444)	},
+		{ tcu::PixelFormat(5,5,5,1),	tcu::TextureFormat(tcu::TextureFormat::RGBA,	tcu::TextureFormat::UNORM_SHORT_5551)	},
+		{ tcu::PixelFormat(5,6,5,0),	tcu::TextureFormat(tcu::TextureFormat::RGB,		tcu::TextureFormat::UNORM_SHORT_565)	}
+	};
+
+	for (int ndx = 0; ndx < DE_LENGTH_OF_ARRAY(pixelFormatMap); ndx++)
+	{
+		if (pixelFormatMap[ndx].pixelFmt == pixelFmt)
+			return pixelFormatMap[ndx].texFmt;
+	}
+
+	TCU_FAIL("Unable to map pixel format to texture format");
+}
+
+NearestEdgeTestCase::NearestEdgeTestCase (deqp::Context& context, OffsetDirection direction)
+	: TestCase(context, getName(direction).c_str(), getDesc(direction).c_str())
+	, m_offsetSign		{(direction == OffsetDirection::LEFT) ? -1.0f : 1.0f}
+	, m_width			{context.getRenderTarget().getWidth()}
+	, m_height			{context.getRenderTarget().getHeight()}
+	, m_format			{context.getRenderTarget().getPixelFormat()}
+	, m_texFormat		{toTextureFormat(m_format)}
+	, m_texFormatInfo	{tcu::getTextureFormatInfo(m_texFormat)}
+	, m_transFormat		{glu::getTransferFormat(m_texFormat)}
+{
+}
+
+void NearestEdgeTestCase::deinit()
+{
+}
+
+void NearestEdgeTestCase::init()
+{
+	if (m_width < 2 || m_height < 2)
+		TCU_THROW(NotSupportedError, "Render target size too small");
+
+	m_vertShaderText =
+		"#version ${VERSION}\n"
+		"\n"
+		"in highp vec2 position;\n"
+		"in highp vec2 inTexCoord;\n"
+		"out highp vec2 commonTexCoord;\n"
+		"\n"
+		"void main()\n"
+		"{\n"
+		"    commonTexCoord = inTexCoord;\n"
+		"    gl_Position = vec4(position, 0.0, 1.0);\n"
+		"}\n"
+		;
+
+	m_fragShaderText =
+		"#version ${VERSION}\n"
+		"\n"
+		"in highp vec2 commonTexCoord;\n"
+		"out highp vec4 fragColor;\n"
+		"\n"
+		"uniform highp sampler2D texSampler;\n"
+		"\n"
+		"void main()\n"
+		"{\n"
+		"    fragColor = texture(texSampler, commonTexCoord);\n"
+		"}\n"
+		"\n";
+
+	tcu::StringTemplate vertShaderTemplate{m_vertShaderText};
+	tcu::StringTemplate fragShaderTemplate{m_fragShaderText};
+	std::map<std::string, std::string> replacements;
+
+	if (glu::isContextTypeGLCore(m_context.getRenderContext().getType()))
+		replacements["VERSION"] = "130";
+	else
+		replacements["VERSION"] = "300 es";
+
+	m_vertShaderText = vertShaderTemplate.specialize(replacements);
+	m_fragShaderText = fragShaderTemplate.specialize(replacements);
+}
+
+void NearestEdgeTestCase::createTexture ()
+{
+	const auto& gl = m_context.getRenderContext().getFunctions();
+
+	gl.genTextures(1, &m_texture);
+	GLU_EXPECT_NO_ERROR(gl.getError(), "glGenTextures");
+	gl.bindTexture(kTextureType, m_texture);
+	GLU_EXPECT_NO_ERROR(gl.getError(), "glBindTexture");
+
+	gl.texParameteri(kTextureType, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+	GLU_EXPECT_NO_ERROR(gl.getError(), "glTexParameteri");
+	gl.texParameteri(kTextureType, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+	GLU_EXPECT_NO_ERROR(gl.getError(), "glTexParameteri");
+	gl.texParameteri(kTextureType, GL_TEXTURE_WRAP_S, GL_REPEAT);
+	GLU_EXPECT_NO_ERROR(gl.getError(), "glTexParameteri");
+	gl.texParameteri(kTextureType, GL_TEXTURE_WRAP_T, GL_REPEAT);
+	GLU_EXPECT_NO_ERROR(gl.getError(), "glTexParameteri");
+	gl.texParameteri(kTextureType, GL_TEXTURE_MAX_LEVEL, 0);
+	GLU_EXPECT_NO_ERROR(gl.getError(), "glTexParameteri");
+}
+
+void NearestEdgeTestCase::deleteTexture ()
+{
+	const auto& gl = m_context.getRenderContext().getFunctions();
+
+	gl.deleteTextures(1, &m_texture);
+	GLU_EXPECT_NO_ERROR(gl.getError(), "glDeleteTextures");
+}
+
+void NearestEdgeTestCase::fillTexture ()
+{
+	const auto& gl = m_context.getRenderContext().getFunctions();
+
+	m_texData.resize(m_width * m_height * tcu::getPixelSize(m_texFormat));
+	tcu::PixelBufferAccess texAccess{m_texFormat, m_width, m_height, 1, m_texData.data()};
+
+	// Create gradient over the whole texture.
+	DE_ASSERT(m_width > 1);
+	DE_ASSERT(m_height > 1);
+
+	const float divX = static_cast<float>(m_width - 1);
+	const float divY = static_cast<float>(m_height - 1);
+
+	for (int x = 0; x < m_width; ++x)
+	for (int y = 0; y < m_height; ++y)
+	{
+		const float colorX = static_cast<float>(x) / divX;
+		const float colorY = static_cast<float>(y) / divY;
+		const float colorZ = std::min(colorX, colorY);
+
+		tcu::Vec4 color{colorX, colorY, colorZ, 1.0f};
+		tcu::Vec4 finalColor = (color - m_texFormatInfo.lookupBias) / m_texFormatInfo.lookupScale;
+		texAccess.setPixel(finalColor, x, y);
+	}
+
+	const auto internalFormat = glu::getInternalFormat(m_texFormat);
+	gl.texImage2D(kTextureType, 0, internalFormat, m_width,  m_height, 0 /* border */, m_transFormat.format, m_transFormat.dataType, m_texData.data());
+	GLU_EXPECT_NO_ERROR(gl.getError(), "glTexImage2D");
+}
+
+// Draw full screen quad with the texture and an offset of almost half a texel in one direction, so sampling happens near the texel
+// border and verifies truncation is happening properly.
+void NearestEdgeTestCase::renderQuad ()
+{
+	const auto& renderContext	= m_context.getRenderContext();
+	const auto& gl				= renderContext.getFunctions();
+
+	float minU = 0.0f;
+	float maxU = 1.0f;
+	float minV = 0.0f;
+	float maxV = 1.0f;
+
+	// Apply offset of almost half a texel to the texture coordinates.
+	DE_ASSERT(m_offsetSign == 1.0f || m_offsetSign == -1.0f);
+	const float offsetWidth		= 0.499f / static_cast<float>(m_width);
+	const float offsetHeight	= 0.499f / static_cast<float>(m_height);
+
+	minU += m_offsetSign * offsetWidth;
+	maxU += m_offsetSign * offsetWidth;
+	minV += m_offsetSign * offsetHeight;
+	maxV += m_offsetSign * offsetHeight;
+
+	const std::vector<float>	positions	= { -1.0f, -1.0f, -1.0f, 1.0f, 1.0f, -1.0f, 1.0f, 1.0f };
+	const std::vector<float>	texCoords	= { minU, minV, minU, maxV, maxU, minV, maxU, maxV };
+	const std::vector<deUint16>	quadIndices	= { 0, 1, 2, 2, 1, 3 };
+
+	const std::vector<glu::VertexArrayBinding> vertexArrays =
+	{
+		glu::va::Float("position", 2, 4, 0, positions.data()),
+		glu::va::Float("inTexCoord", 2, 4, 0, texCoords.data())
+	};
+
+	glu::ShaderProgram program(m_context.getRenderContext(), glu::makeVtxFragSources(m_vertShaderText, m_fragShaderText));
+	if (!program.isOk())
+		TCU_FAIL("Shader compilation failed");
+
+	gl.useProgram(program.getProgram());
+	GLU_EXPECT_NO_ERROR(gl.getError(), "glUseProgram failed");
+
+	gl.uniform1i(gl.getUniformLocation(program.getProgram(), "texSampler"), 0);
+	GLU_EXPECT_NO_ERROR(gl.getError(), "glUniform1i failed");
+
+	gl.clear(GL_COLOR_BUFFER_BIT);
+
+	glu::draw(renderContext, program.getProgram(),
+			  static_cast<int>(vertexArrays.size()), vertexArrays.data(),
+			  glu::pr::TriangleStrip(static_cast<int>(quadIndices.size()), quadIndices.data()));
+}
+
+bool NearestEdgeTestCase::verifyResults ()
+{
+	const auto& gl = m_context.getRenderContext().getFunctions();
+
+	std::vector<deUint8> fbData(m_width * m_height * tcu::getPixelSize(m_texFormat));
+	gl.readPixels(0, 0, m_width, m_height, m_transFormat.format, m_transFormat.dataType, fbData.data());
+	GLU_EXPECT_NO_ERROR(gl.getError(), "glReadPixels");
+
+	tcu::ConstPixelBufferAccess texAccess	{m_texFormat, m_width, m_height, 1, m_texData.data()};
+	tcu::ConstPixelBufferAccess fbAccess	{m_texFormat, m_width, m_height, 1, fbData.data()};
+
+	// Difference image to ease spotting problems.
+	const tcu::TextureFormat		diffFormat	{tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8};
+	const auto						diffBytes	= tcu::getPixelSize(diffFormat) * m_width * m_height;
+	std::unique_ptr<deUint8[]>		diffData	{new deUint8[diffBytes]};
+	const tcu::PixelBufferAccess	diffAccess	{diffFormat, m_width, m_height, 1, diffData.get()};
+
+	const tcu::Vec4					colorRed	{1.0f, 0.0f, 0.0f, 1.0f};
+	const tcu::Vec4					colorGreen	{0.0f, 1.0f, 0.0f, 1.0f};
+
+	bool pass = true;
+	for (int x = 0; x < m_width; ++x)
+	for (int y = 0; y < m_height; ++y)
+	{
+		const auto texPixel	= texAccess.getPixel(x, y);
+		const auto fbPixel	= fbAccess.getPixel(x, y);
+
+		// Require perfect pixel match.
+		if (texPixel != fbPixel)
+		{
+			pass = false;
+			diffAccess.setPixel(colorRed, x, y);
+		}
+		else
+		{
+			diffAccess.setPixel(colorGreen, x, y);
+		}
+	}
+
+	if (!pass)
+	{
+		auto& log = m_testCtx.getLog();
+		log
+			<< tcu::TestLog::Message << "\n"
+			<< "Width:       " << m_width << "\n"
+			<< "Height:      " << m_height << "\n"
+			<< tcu::TestLog::EndMessage;
+
+		log << tcu::TestLog::Image("texture", "Generated Texture", texAccess);
+		log << tcu::TestLog::Image("fb", "Frame Buffer Contents", fbAccess);
+		log << tcu::TestLog::Image("diff", "Mismatched pixels in red", diffAccess);
+	}
+
+	return pass;
+}
+
+tcu::TestNode::IterateResult NearestEdgeTestCase::iterate ()
+{
+	// Populate and configure m_texture.
+	createTexture();
+
+	// Fill m_texture with data.
+	fillTexture();
+
+	// Draw full screen quad using the texture and a slight offset left or right.
+	renderQuad();
+
+	// Verify results.
+	bool pass = verifyResults();
+
+	// Destroy texture.
+	deleteTexture();
+
+	const qpTestResult	result	= (pass ? QP_TEST_RESULT_PASS : QP_TEST_RESULT_FAIL);
+	const char*			desc	= (pass ? "Pass" : "Pixel mismatch; check the generated images");
+
+	m_testCtx.setTestResult(result, desc);
+	return STOP;
+}
+
+} /* anonymous namespace */
+
+NearestEdgeCases::NearestEdgeCases(deqp::Context& context)
+	: TestCaseGroup(context, "nearest_edge", "GL_NEAREST edge cases")
+{
+}
+
+NearestEdgeCases::~NearestEdgeCases(void)
+{
+}
+
+void NearestEdgeCases::init(void)
+{
+	static const std::vector<OffsetDirection> kDirections = { OffsetDirection::LEFT, OffsetDirection::RIGHT };
+	for (const auto direction : kDirections)
+		addChild(new NearestEdgeTestCase{m_context, direction});
+}
+
+} /* glcts namespace */
diff --git a/external/openglcts/modules/common/glcNearestEdgeTests.hpp b/external/openglcts/modules/common/glcNearestEdgeTests.hpp
new file mode 100644
index 0000000..e4de04a
--- /dev/null
+++ b/external/openglcts/modules/common/glcNearestEdgeTests.hpp
@@ -0,0 +1,49 @@
+#ifndef _GLCNEARESTEDGETESTS_HPP
+#define _GLCNEARESTEDGETESTS_HPP
+/*-------------------------------------------------------------------------
+ * OpenGL Conformance Test Suite
+ * -----------------------------
+ *
+ * Copyright (c) 2020 Valve Coporation.
+ * Copyright (c) 2020 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */ /*!
+ * \file  glcNearestEdgeTests.hpp
+ * \brief
+ */ /*-------------------------------------------------------------------*/
+
+#include "glcTestCase.hpp"
+
+namespace glcts
+{
+
+class NearestEdgeCases : public deqp::TestCaseGroup
+{
+public:
+	/* Public methods */
+	NearestEdgeCases(deqp::Context& context);
+	virtual ~NearestEdgeCases(void);
+
+	void init(void);
+
+private:
+	/* Private methods */
+	NearestEdgeCases(const NearestEdgeCases& other);
+	NearestEdgeCases& operator=(const NearestEdgeCases& other);
+};
+
+} /* glcts namespace */
+
+#endif // _GLCNEARESTEDGETESTS_HPP
diff --git a/external/openglcts/modules/common/glcPackedPixelsTests.cpp b/external/openglcts/modules/common/glcPackedPixelsTests.cpp
index f86038e..08119f9 100644
--- a/external/openglcts/modules/common/glcPackedPixelsTests.cpp
+++ b/external/openglcts/modules/common/glcPackedPixelsTests.cpp
@@ -948,7 +948,7 @@
 
 void RectangleTest::swapBytes(int typeSize, std::vector<GLbyte>& dataBuffer)
 {
-	int bufferSize = dataBuffer.size();
+	int bufferSize = static_cast<int>(dataBuffer.size());
 	switch (typeSize)
 	{
 	case 1:
diff --git a/external/openglcts/modules/common/glcPixelStorageModesTests.cpp b/external/openglcts/modules/common/glcPixelStorageModesTests.cpp
new file mode 100644
index 0000000..29c79aa
--- /dev/null
+++ b/external/openglcts/modules/common/glcPixelStorageModesTests.cpp
@@ -0,0 +1,2302 @@
+/*-------------------------------------------------------------------------
+* OpenGL Conformance Test Suite
+* -----------------------------
+*
+* Copyright (c) 2020 The Khronos Group Inc.
+* Copyright (c) 2020 Intel Corporation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*      http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/ /*!
+* \file  glcPixelStorageModesTests.cpp
+* \brief Conformance tests for usage of pixel storage modes.
+*/ /*-------------------------------------------------------------------*/
+
+#include "stdlib.h"
+#include "tcuRenderTarget.hpp"
+#include "tcuSurface.hpp"
+#include "tcuTextureUtil.hpp"
+#include "tcuTestCase.hpp"
+#include "tcuTestLog.hpp"
+#include "tcuDefs.hpp"
+#include "tcuFloat.hpp"
+#include "tcuStringTemplate.hpp"
+#include "gluRenderContext.hpp"
+#include "gluShaderProgram.hpp"
+#include "gluShaderUtil.hpp"
+#include "gluContextInfo.hpp"
+#include "gluObjectWrapper.hpp"
+#include "gluCallLogWrapper.hpp"
+#include "gluPixelTransfer.hpp"
+#include "gluTexture.hpp"
+#include "gluTextureUtil.hpp"
+#include "gluDrawUtil.hpp"
+#include "gluDefs.hpp"
+#include "sglrGLContext.hpp"
+#include "sglrContextWrapper.hpp"
+#include "sglrContextUtil.hpp"
+#include "glwFunctions.hpp"
+#include "glwEnums.hpp"
+#include "deStringUtil.hpp"
+#include "deUniquePtr.hpp"
+#include "glsTextureTestUtil.hpp"
+#include "glcPixelStorageModesTests.hpp"
+
+#include <algorithm>
+
+namespace glcts
+{
+
+static const char* const vs_template_src =
+	"${GLSL_VERSION}\n"
+	"in highp vec4 pos;\n"
+	"out highp ${TEXCOORDS_TYPE} texcoords;\n"
+	"${LAYER}\n"
+	"void main (void)\n"
+	"{\n"
+	"	 texcoords = ${TEXCOORDS};\n"
+	"	 gl_Position = pos;\n"
+	"}\n";
+
+static const char* const fs_template_src =
+	"${GLSL_VERSION}\n"
+	"precision highp float;\n"
+	"precision highp int;\n"
+	"out vec4 fragColour;\n"
+	"in ${TEXCOORDS_TYPE} texcoords;\n"
+	"uniform highp ${SAMPLER_TYPE} sampler;\n"
+	"uniform ${COL_TYPE} refcolour;\n"
+	"void main (void)\n"
+	"{\n"
+	"	 ${COL_TYPE} colour = texelFetch(sampler, i${TEXCOORDS_TYPE}(texcoords), 0);\n"
+	"	 if (${CONDITION})\n"
+	"		 fragColour = vec4(0.0, 1.0, 0.0, 1.0);\n"
+	"	 else\n"
+	"		 fragColour = vec4(colour);\n"
+	"}\n";
+
+double getEps(deUint32 internalFormat)
+{
+	double eps = 0.0;
+	switch (internalFormat)
+	{
+	case GL_RGBA4:
+		eps = 1.0 / (double)(1 << 4);
+		break;
+	case GL_RGB565:
+	case GL_RGB5_A1:
+	case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
+		eps = 1.0 / (double)(1 << 5);
+		break;
+	case GL_R8:
+	case GL_R8_SNORM:
+	case GL_RG8:
+	case GL_RG8_SNORM:
+	case GL_RGB8:
+	case GL_SRGB8:
+	case GL_RGB8_SNORM:
+	case GL_RGBA8:
+	case GL_SRGB8_ALPHA8:
+	case GL_RGBA8_SNORM:
+		eps = 1.0 / (double)(1 << 8);
+		break;
+	case GL_RGB9_E5:
+		eps = 1.0 / (double)(1 << 9);
+		break;
+	case GL_R11F_G11F_B10F:
+	case GL_RGB10_A2:
+		eps = 1.0 / (double)(1 << 10);
+		break;
+	case GL_R16F:
+	case GL_RG16F:
+	case GL_RGB16F:
+	case GL_RGBA16F:
+	case GL_COMPRESSED_RGBA_ASTC_8x5_KHR:
+		eps = 1.0 / (double)(1 << 16);
+		break;
+	case GL_R32F:
+	case GL_RG32F:
+	case GL_RGB32F:
+	case GL_RGBA32F:
+		eps = 1.0 / (double)(1 << 31);
+		break;
+	default:
+		TCU_FAIL("Invalid internal format");
+		break;
+	}
+
+	return std::max(0.01, eps);
+}
+
+bool inrange(int x, int left, int right)
+{
+	return (x >= left && x < right);
+}
+
+class TexImageUtils
+{
+public:
+	TexImageUtils(deUint32 internalFormat,
+				  int cuboid_w, int cuboid_h, int cuboid_d,
+				  int subcuboid_x0, int subcuboid_y0, int subcuboid_z0,
+				  int subcuboid_w, int subcuboid_h, int subcuboid_d,
+				  glu::GLSLVersion glsl_version);
+	~TexImageUtils (void);
+protected:
+	void writePixel(glw::GLubyte *p, glw::GLdouble col);
+	void writeChannel(glw::GLubyte *p, int channel, glw::GLdouble col);
+	template <typename T>
+	void writeToUnsignedChannel(glw::GLubyte *p, int channel, glw::GLdouble col);
+	template <typename T>
+	void writeToSignedChannel(glw::GLubyte *p, int channel, glw::GLdouble col);
+	void writeToFloatChannel(glw::GLubyte *p, int channel, glw::GLdouble col);
+	void writeToHalfFloatChannel(glw::GLubyte *p, int channel, glw::GLdouble col);
+	template <typename T,
+				 unsigned int size_1, unsigned int size_2, unsigned int size_3,
+				 unsigned int off_1, unsigned int off_2, unsigned int off_3>
+	void write3Channel(glw::GLubyte *p, int channel, glw::GLdouble col);
+	template <typename T,
+				 unsigned int size_1, unsigned int size_2,
+				 unsigned int size_3, unsigned int size_4,
+				 unsigned int off_1, unsigned int off_2,
+				 unsigned int off_3, unsigned int off_4>
+	void write4Channel(glw::GLubyte *p, int channel, glw::GLdouble col);
+	void write11F_11F_10F_Channel(glw::GLubyte *p, int channel, glw::GLdouble col);
+	void setRefcolour (glu::CallLogWrapper gl, glw::GLdouble col);
+	template <typename T>
+	void setUnsignedRefcolour(glu::CallLogWrapper gl, glw::GLdouble col);
+	template <typename T>
+	void setSignedRefcolour(glu::CallLogWrapper gl, glw::GLdouble col);
+	void setRGB10A2Refcolour (glu::CallLogWrapper gl, glw::GLdouble col);
+	bool verify(tcu::Surface dst, tcu::Surface *errMask);
+
+	glw::GLubyte *m_src_data;
+	deUint32 tex;
+	glu::ShaderProgram* prog;
+
+	deUint32 m_internalFormat;
+	deUint32 m_format;
+	deUint32 m_type;
+	int m_pixelsize;
+	int m_num_channels;
+	int m_cuboid_w;
+	int m_cuboid_h;
+	int m_cuboid_d;
+	int m_subcuboid_x0;
+	int m_subcuboid_y0;
+	int m_subcuboid_z0;
+	int m_subcuboid_w;
+	int m_subcuboid_h;
+	int m_subcuboid_d;
+
+	glu::GLSLVersion m_glsl_version;
+};
+
+TexImageUtils::TexImageUtils (deUint32 internalFormat,
+							  int cuboid_w,
+							  int cuboid_h,
+							  int cuboid_d,
+							  int subcuboid_x0,
+							  int subcuboid_y0,
+							  int subcuboid_z0,
+							  int subcuboid_w,
+							  int subcuboid_h,
+							  int subcuboid_d,
+							  glu::GLSLVersion glsl_version)
+	: m_internalFormat(internalFormat)
+	, m_format(glu::getTransferFormat(glu::mapGLInternalFormat(internalFormat)).format)
+	, m_type(glu::getTransferFormat(glu::mapGLInternalFormat(internalFormat)).dataType)
+	, m_pixelsize(tcu::getPixelSize(glu::mapGLInternalFormat(internalFormat)))
+	, m_num_channels(tcu::getNumUsedChannels(glu::mapGLInternalFormat(internalFormat).order))
+	, m_cuboid_w(cuboid_w)
+	, m_cuboid_h(cuboid_h)
+	, m_cuboid_d(cuboid_d)
+	, m_subcuboid_x0(subcuboid_x0)
+	, m_subcuboid_y0(subcuboid_y0)
+	, m_subcuboid_z0(subcuboid_z0)
+	, m_subcuboid_w(subcuboid_w)
+	, m_subcuboid_h(subcuboid_h)
+	, m_subcuboid_d(subcuboid_d)
+	, m_glsl_version(glsl_version)
+{
+}
+
+TexImageUtils::~TexImageUtils (void)
+{
+}
+
+void TexImageUtils::writePixel(glw::GLubyte *p, glw::GLdouble col)
+{
+	for (int ch = 0; ch < m_num_channels; ch++)
+		writeChannel(p, ch, (ch == 3) ? 1.0 : col);
+}
+
+void TexImageUtils::writeChannel(glw::GLubyte *p, int channel, glw::GLdouble col)
+{
+	switch (m_type)
+	{
+	case GL_UNSIGNED_BYTE:
+		writeToUnsignedChannel<glw::GLubyte>(p, channel, col);
+		break;
+	case GL_BYTE:
+		writeToSignedChannel<glw::GLbyte>(p, channel, col);
+		break;
+	case GL_UNSIGNED_SHORT:
+		writeToUnsignedChannel<glw::GLushort>(p, channel, col);
+		break;
+	case GL_UNSIGNED_SHORT_5_6_5:
+		write3Channel<glw::GLushort, 5, 6, 5, 11, 5, 0>(p, channel, col);
+		break;
+	case GL_SHORT:
+		writeToSignedChannel<glw::GLshort>(p, channel, col);
+		break;
+	case GL_UNSIGNED_INT:
+		writeToUnsignedChannel<glw::GLuint>(p, channel, col);
+		break;
+	case GL_UNSIGNED_INT_2_10_10_10_REV:
+		write4Channel<glw::GLuint, 2, 10, 10, 10, 30, 20, 10, 0>(p, 3 - channel, col);
+		break;
+	case GL_UNSIGNED_INT_10F_11F_11F_REV:
+		write11F_11F_10F_Channel(p, channel, col);
+		break;
+	case GL_UNSIGNED_SHORT_4_4_4_4:
+		write4Channel<glw::GLushort, 4, 4, 4, 4, 12, 8, 4, 0>(p, channel, col);
+		break;
+	case GL_UNSIGNED_SHORT_5_5_5_1:
+		write4Channel<glw::GLushort, 5, 5, 5, 1, 11, 6, 1, 0>(p, channel, col);
+		break;
+	case GL_INT:
+		writeToSignedChannel<glw::GLint>(p, channel, col);
+		break;
+	case GL_HALF_FLOAT:
+		writeToHalfFloatChannel(p, channel, col);
+		break;
+	case GL_FLOAT:
+		writeToFloatChannel(p, channel, col);
+		break;
+	default:
+		TCU_FAIL("Invalid type");
+		break;
+	}
+}
+
+template <typename T>
+void TexImageUtils::writeToUnsignedChannel(glw::GLubyte *p, int channel, glw::GLdouble col)
+{
+	static const T max = -1;
+
+	const glw::GLdouble d_max = (glw::GLdouble)max;
+	const glw::GLdouble d_value = col * d_max;
+	const T t_value = (T)d_value;
+
+	T* ptr = (T*)p;
+
+	ptr[channel] = t_value;
+}
+
+template <typename T>
+void TexImageUtils::writeToSignedChannel(glw::GLubyte *p, int channel, glw::GLdouble col)
+{
+	static const T max = (T)((1u << (sizeof(T) * 8u - 1u)) - 1u);
+
+	const glw::GLdouble d_max = (glw::GLdouble)max;
+	const glw::GLdouble d_value = col * d_max;
+	const T t_value = (T)d_value;
+
+	T* ptr = (T*)p;
+
+	ptr[channel] = t_value;
+}
+
+void TexImageUtils::writeToFloatChannel(glw::GLubyte *p, int channel, glw::GLdouble col)
+{
+	const glw::GLfloat t_value = (glw::GLfloat)col;
+
+	glw::GLfloat *ptr = (glw::GLfloat*)p;
+
+	ptr[channel] = t_value;
+}
+
+void TexImageUtils::writeToHalfFloatChannel(glw::GLubyte *p, int channel, glw::GLdouble col)
+{
+	deUint16* ptr = (deUint16*)p;
+
+	tcu::Float16 val(col);
+
+	ptr[channel] = val.bits();
+}
+
+template <typename T,
+			 unsigned int size_1, unsigned int size_2, unsigned int size_3,
+			 unsigned int off_1, unsigned int off_2, unsigned int off_3>
+void TexImageUtils::write3Channel(glw::GLubyte *p, int channel, glw::GLdouble col)
+{
+	T mask = 0;
+	T max = 0;
+	T off = 0;
+	T* ptr = (T*)p;
+	T result = 0;
+
+	const T max_1 = (1 << size_1) - 1;
+	const T max_2 = (1 << size_2) - 1;
+	const T max_3 = (1 << size_3) - 1;
+
+	switch (channel)
+	{
+	case 0:
+		mask = max_1;
+		max  = max_1;
+		off  = off_1;
+		break;
+	case 1:
+		mask = max_2;
+		max  = max_2;
+		off  = off_2;
+		break;
+	case 2:
+		mask = max_3;
+		max  = max_3;
+		off  = off_3;
+		break;
+	default:
+		TCU_FAIL("Invalid channel");
+		break;
+	}
+
+	const glw::GLdouble d_max	 = (glw::GLdouble)max;
+	const glw::GLdouble d_value  = col * d_max;
+	const T t_value = (T)d_value;
+
+	result = (T)((t_value & mask) << off);
+
+	*ptr |= result;
+}
+
+template <typename T,
+			 unsigned int size_1, unsigned int size_2,
+			 unsigned int size_3, unsigned int size_4,
+			 unsigned int off_1, unsigned int off_2,
+			 unsigned int off_3, unsigned int off_4>
+void TexImageUtils::write4Channel(glw::GLubyte *p, int channel, glw::GLdouble col)
+{
+	T mask	 = 0;
+	T max	 = 0;
+	T off	 = 0;
+	T* ptr	 = (T*)p;
+	T result = 0;
+
+	T max_1 = (1 << size_1) - 1;
+	T max_2 = (1 << size_2) - 1;
+	T max_3 = (1 << size_3) - 1;
+	T max_4 = (1 << size_4) - 1;
+
+	switch (channel)
+	{
+	case 0:
+		mask = max_1;
+		max  = max_1;
+		off  = off_1;
+		break;
+	case 1:
+		mask = max_2;
+		max  = max_2;
+		off  = off_2;
+		break;
+	case 2:
+		mask = max_3;
+		max  = max_3;
+		off  = off_3;
+		break;
+	case 3:
+		mask = max_4;
+		max  = max_4;
+		off  = off_4;
+		break;
+	default:
+		TCU_FAIL("Invalid channel");
+		break;
+	}
+
+	const glw::GLdouble d_max	 = (glw::GLdouble)max;
+	const glw::GLdouble d_value  = col * d_max;
+	const T t_value = (T)d_value;
+
+	result = (T)((t_value & mask) << off);
+
+	*ptr |= result;
+}
+
+void TexImageUtils::write11F_11F_10F_Channel(glw::GLubyte *p, int channel, glw::GLdouble col)
+{
+	deUint32* ptr = (deUint32*)p;
+
+	switch (channel)
+	{
+	case 0:
+	{
+		tcu::Float<deUint32, 5, 6, 15, tcu::FLOAT_SUPPORT_DENORM> val(col);
+		deUint32 bits = val.bits();
+
+		*ptr |= bits;
+	}
+	break;
+	case 1:
+	{
+		tcu::Float<deUint32, 5, 6, 15, tcu::FLOAT_SUPPORT_DENORM> val(col);
+		deUint32 bits = val.bits();
+
+		*ptr |= (bits << 11);
+	}
+	break;
+	case 2:
+	{
+		tcu::Float<deUint32, 5, 5, 15, tcu::FLOAT_SUPPORT_DENORM> val(col);
+		deUint32 bits = val.bits();
+
+		*ptr |= (bits << 22);
+	}
+	break;
+	default:
+		TCU_FAIL("Invalid channel");
+		break;
+	}
+}
+
+void TexImageUtils::setRefcolour (glu::CallLogWrapper gl, glw::GLdouble col)
+{
+	switch (m_format)
+	{
+	case GL_RED:
+	case GL_RG:
+	case GL_RGB:
+	case GL_RGBA:
+		gl.glUniform4f(gl.glGetUniformLocation(prog->getProgram(), "refcolour"),
+					   m_num_channels > 0 ? col : 0.0f,
+					   m_num_channels > 1 ? col : 0.0f,
+					   m_num_channels > 2 ? col : 0.0f,
+					   1.0f);
+		break;
+	default:
+		switch (m_type)
+		{
+		case GL_UNSIGNED_BYTE:
+			setUnsignedRefcolour<glw::GLubyte>(gl, col);
+			break;
+		case GL_BYTE:
+			setSignedRefcolour<glw::GLubyte>(gl, col);
+			break;
+		case GL_UNSIGNED_SHORT:
+		case GL_UNSIGNED_SHORT_5_6_5:
+		case GL_UNSIGNED_SHORT_4_4_4_4:
+		case GL_UNSIGNED_SHORT_5_5_5_1:
+			setUnsignedRefcolour<glw::GLushort>(gl, col);
+			break;
+		case GL_SHORT:
+			setSignedRefcolour<glw::GLushort>(gl, col);
+			break;
+		case GL_UNSIGNED_INT:
+			setUnsignedRefcolour<glw::GLuint>(gl, col);
+			break;
+		case GL_UNSIGNED_INT_2_10_10_10_REV:
+			setRGB10A2Refcolour(gl, col);
+			break;
+		case GL_INT:
+			setSignedRefcolour<glw::GLuint>(gl, col);
+			break;
+		default:
+			TCU_FAIL("Invalid type");
+			break;
+		}
+	}
+}
+
+template <typename T>
+void TexImageUtils::setUnsignedRefcolour (glu::CallLogWrapper gl, glw::GLdouble col)
+{
+	static const T max = -1;
+	const glw::GLdouble d_max   = (glw::GLdouble)max;
+	const glw::GLdouble d_value = d_max * col;
+	const T t_value = (T)d_value;
+
+	unsigned int refcol[4] =
+	{
+		m_num_channels > 0 ? t_value : 0u,
+		m_num_channels > 1 ? t_value : 0u,
+		m_num_channels > 2 ? t_value : 0u,
+		255u,
+	};
+
+	gl.glUniform4uiv(gl.glGetUniformLocation(prog->getProgram(), "refcolour"), 1,
+					 refcol);
+}
+
+template <typename T>
+void TexImageUtils::setSignedRefcolour (glu::CallLogWrapper gl, glw::GLdouble col)
+{
+	static const T umax = -1;
+	static const T max  = umax >> 1;
+
+	const glw::GLdouble d_max   = (glw::GLdouble)max;
+	const glw::GLdouble d_value = d_max * col;
+	const T t_value = (T)d_value;
+
+	unsigned int refcol[4] =
+	{
+		(m_num_channels > 0 ? t_value : 0u),
+		(m_num_channels > 1 ? t_value : 0u),
+		(m_num_channels > 2 ? t_value : 0u),
+		255u,
+	};
+
+	gl.glUniform4uiv(gl.glGetUniformLocation(prog->getProgram(), "refcolour"), 1,
+					 refcol);
+}
+
+void TexImageUtils::setRGB10A2Refcolour (glu::CallLogWrapper gl, glw::GLdouble col)
+{
+	unsigned int max_channel_value = 1023u;
+
+	const glw::GLdouble d_max_channel_value = (glw::GLdouble)max_channel_value;
+	const glw::GLdouble d_value = (glw::GLdouble)d_max_channel_value * col;
+	unsigned int t_value = (unsigned int)d_value;
+
+	unsigned int refcol[4] =
+	{
+		(m_num_channels > 0 ? t_value : 0u),
+		(m_num_channels > 1 ? t_value : 0u),
+		(m_num_channels > 2 ? t_value : 0u),
+		255u,
+	};
+
+	gl.glUniform4uiv(gl.glGetUniformLocation(prog->getProgram(), "refcolour"), 1,
+					 refcol);
+}
+
+bool TexImageUtils::verify(tcu::Surface dst, tcu::Surface *errMask)
+{
+	*errMask = tcu::Surface (dst.getWidth(), dst.getHeight());
+	tcu::clear(errMask->getAccess(), tcu::Vec4(0.0f, 1.0f, 0.0f, 1.0f));
+	bool pass = true;
+
+	for (int y = 0; y < dst.getHeight(); y++)
+	{
+		for (int x = 0; x < dst.getWidth(); x++)
+		{
+			if (dst.getPixel(x, y) != tcu::RGBA::green())
+			{
+				pass = false;
+				errMask->setPixel(x, y, tcu::RGBA::red());
+			}
+		}
+	}
+
+	return pass;
+}
+
+class TexImage2DCase : public deqp::TestCase
+					 , public sglr::ContextWrapper
+					 , public TexImageUtils
+{
+public:
+	TexImage2DCase (deqp::Context& context, const char* name, const char* desc,
+					deUint32 internalFormat,
+					int rect_w, int rect_h,
+					int subrect_x0, int subrect_y0,
+					int subrect_w, int subrect_h,
+					glu::GLSLVersion glsl_version);
+	~TexImage2DCase (void);
+	IterateResult iterate (void);
+protected:
+	void generateSrcData();
+	void createTexture (void);
+	void createShader (void);
+	tcu::Surface renderToSurf (void);
+	void cleanup (void);
+};
+
+TexImage2DCase::TexImage2DCase (deqp::Context& context,
+								const char* name,
+								const char* desc,
+								deUint32 internalFormat,
+								int rect_w,
+								int rect_h,
+								int subrect_x0,
+								int subrect_y0,
+								int subrect_w,
+								int subrect_h,
+								glu::GLSLVersion glsl_version)
+	: TestCase(context, name, desc)
+	, TexImageUtils(internalFormat,
+					rect_w, rect_h, 1,
+					subrect_x0, subrect_y0, 0,
+					subrect_w, subrect_h, 1,
+					glsl_version)
+{
+}
+
+TexImage2DCase::~TexImage2DCase(void)
+{
+}
+
+TexImage2DCase::IterateResult TexImage2DCase::iterate(void)
+{
+	glu::RenderContext& renderCtx = TestCase::m_context.getRenderContext();
+	tcu::TestLog& log = m_testCtx.getLog();
+	tcu::Surface dst, errMask;
+
+	bool pass = true;
+
+	sglr::GLContext gl_ctx (renderCtx,
+							log,
+							sglr::GLCONTEXT_LOG_CALLS,
+							tcu::IVec4(0, 0, m_subcuboid_w, m_subcuboid_h));
+
+	setContext((sglr::Context*)&gl_ctx);
+
+	generateSrcData();
+	createTexture();
+	createShader();
+	dst = renderToSurf();
+
+	pass = verify(dst, &errMask);
+
+	cleanup();
+
+	if (pass)
+	{
+		m_testCtx.getLog()
+		<< tcu::TestLog::Message << "Image is valid" << tcu::TestLog::EndMessage
+		<< tcu::TestLog::ImageSet("ImageVerification", "Image verification")
+		<< tcu::TestLog::Image("Result", "Rendered result", dst.getAccess())
+		<< tcu::TestLog::EndImageSet;
+	}
+	else
+	{
+		m_testCtx.getLog()
+		<< tcu::TestLog::Message << "Image is invalid" << tcu::TestLog::EndMessage
+		<< tcu::TestLog::ImageSet("ErrorVerification", "Image verification")
+		<< tcu::TestLog::Image("Result", "Rendered result", dst.getAccess())
+		<< tcu::TestLog::Image("ErrorMask", "Error mask", errMask.getAccess())
+		<< tcu::TestLog::EndImageSet;
+	}
+
+	m_testCtx.setTestResult(pass ? QP_TEST_RESULT_PASS : QP_TEST_RESULT_FAIL,
+							pass ? "Pass" : "Fail");
+
+	return STOP;
+}
+
+void TexImage2DCase::generateSrcData()
+{
+	m_src_data = new glw::GLubyte[m_cuboid_w * m_cuboid_h * m_pixelsize]();
+
+	glw::GLdouble col = 0.0;
+
+	for (int y = 0; y < m_cuboid_h; y++)
+	{
+		for (int x = 0; x < m_cuboid_w; x++)
+		{
+			if (inrange(y, m_subcuboid_y0, m_subcuboid_y0 + m_subcuboid_h) &&
+				inrange(x, m_subcuboid_x0, m_subcuboid_x0 + m_subcuboid_w))
+				col = 1.0;
+			else
+				col = 0.0;
+			int offset = y * m_cuboid_w * m_pixelsize +
+						 x * m_pixelsize;
+			writePixel(m_src_data + offset, col);
+		}
+	}
+}
+
+void TexImage2DCase::createTexture (void)
+{
+	glu::CallLogWrapper gl (m_context.getRenderContext().getFunctions(),
+							m_testCtx.getLog());
+
+	gl.glGenTextures(1, &tex);
+	gl.glBindTexture(GL_TEXTURE_2D, tex);
+	gl.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+	gl.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+
+	gl.glPixelStorei(GL_UNPACK_ROW_LENGTH,	m_cuboid_w);
+	gl.glPixelStorei(GL_UNPACK_SKIP_ROWS,   m_subcuboid_y0);
+	gl.glPixelStorei(GL_UNPACK_SKIP_PIXELS, m_subcuboid_x0);
+
+	gl.glTexImage2D(GL_TEXTURE_2D,
+					0,
+					m_internalFormat,
+					m_subcuboid_w,
+					m_subcuboid_h,
+					0,
+					m_format,
+					m_type,
+					m_src_data);
+
+	gl.glPixelStorei(GL_UNPACK_ROW_LENGTH,	 0);
+	gl.glPixelStorei(GL_UNPACK_SKIP_PIXELS, 0);
+	gl.glPixelStorei(GL_UNPACK_SKIP_ROWS,	 0);
+}
+
+void TexImage2DCase::createShader (void)
+{
+	glu::CallLogWrapper gl (m_context.getRenderContext().getFunctions(),
+							m_testCtx.getLog());
+
+	const tcu::StringTemplate vs_src (vs_template_src);
+	const tcu::StringTemplate fs_src (fs_template_src);
+
+	std::map<std::string,std::string> params;
+	params["GLSL_VERSION"]	 = getGLSLVersionDeclaration(m_glsl_version);
+	params["TEXCOORDS_TYPE"] = "vec2";
+	params["LAYER"]			 = "";
+	params["TEXCOORDS"]		 = "pos.xy";
+	params["CONDITION"]		 = "colour.rgb == refcolour.rgb";
+
+	switch (m_format)
+	{
+	case GL_RED_INTEGER:
+	case GL_RG_INTEGER:
+	case GL_RGB_INTEGER:
+	case GL_RGBA_INTEGER:
+		params["SAMPLER_TYPE"] = "usampler2D";
+		params["COL_TYPE"]	   = "uvec4";
+		break;
+	default:
+		params["SAMPLER_TYPE"] = "sampler2D";
+		params["COL_TYPE"]	   = "vec4";
+		break;
+	}
+
+	prog = new glu::ShaderProgram(m_context.getRenderContext(),
+								  glu::ProgramSources() <<
+								  glu::VertexSource(vs_src.specialize(params)) <<
+								  glu::FragmentSource(fs_src.specialize(params)));
+
+	if (!prog->isOk())
+	{
+		m_testCtx.getLog()
+			<< tcu::TestLog::Message << ""
+			<< tcu::TestLog::EndMessage
+			<< tcu::TestLog::ShaderProgram(false, "")
+			<< tcu::TestLog::Shader(QP_SHADER_TYPE_VERTEX,
+									prog->getShaderInfo(glu::SHADERTYPE_VERTEX,
+														0).source,
+									false,
+									prog->getShaderInfo(glu::SHADERTYPE_VERTEX,
+														0).infoLog)
+
+			<< tcu::TestLog::Shader(QP_SHADER_TYPE_FRAGMENT,
+									prog->getShaderInfo(glu::SHADERTYPE_FRAGMENT,
+														0).source,
+									false,
+									prog->getShaderInfo(glu::SHADERTYPE_FRAGMENT,
+														0).infoLog)
+			<< tcu::TestLog::EndShaderProgram;
+		TCU_FAIL("Shader creation failed");
+	}
+
+	gl.glUseProgram(prog->getProgram());
+	gl.glUniform1i(gl.glGetUniformLocation(prog->getProgram(), "sampler"), 0);
+}
+
+tcu::Surface TexImage2DCase::renderToSurf (void)
+{
+	glu::CallLogWrapper gl (m_context.getRenderContext().getFunctions(),
+							m_testCtx.getLog());
+	gl.glClearColor(0.3f, 0.3f, 0.3f, 1.0f);
+	gl.glClear(GL_COLOR_BUFFER_BIT);
+
+	static const float vertexPositions[4*3] =
+	{
+		-1.0, -1.0, -1.0f,
+		 1.0, -1.0,  0.0f,
+		-1.0,  1.0,  0.0f,
+		 1.0,  1.0,  1.0f,
+	};
+
+	static const deUint16 indices[6] = { 0, 1, 2, 2, 1, 3 };
+
+	const glu::VertexArrayBinding attrBindings[] =
+	{
+		glu::va::Float("pos", 3, 4, 0, &vertexPositions[0])
+	};
+
+	gl.glViewport(0, 0, m_subcuboid_w, m_subcuboid_h);
+	setRefcolour(gl, 1.0);
+	glu::draw(m_context.getRenderContext(),
+			  prog->getProgram(),
+			  DE_LENGTH_OF_ARRAY(attrBindings),
+			  &attrBindings[0],
+			  glu::pr::Triangles(DE_LENGTH_OF_ARRAY(indices), &indices[0]));
+
+	tcu::Surface dst;
+	dst.setSize(m_subcuboid_w, m_subcuboid_h);
+
+	glu::readPixels(m_context.getRenderContext(), 0, 0, dst.getAccess());
+
+	return dst;
+}
+
+void TexImage2DCase::cleanup (void)
+{
+	glu::CallLogWrapper gl (m_context.getRenderContext().getFunctions(),
+							m_testCtx.getLog());
+
+	gl.glDeleteTextures(1, &tex);
+	delete[] m_src_data;
+	delete prog;
+}
+
+class TexImage3DCase : public deqp::TestCase
+					 , public sglr::ContextWrapper
+					 , public TexImageUtils
+{
+public:
+	TexImage3DCase (deqp::Context& context, const char* name, const char* desc,
+					deUint32 internalFormat,
+					int cuboid_w, int cuboid_h, int cuboid_d,
+					int subcuboid_x0, int subrect_y0, int subcuboid_z0,
+					int subcuboid_w, int subcuboid_h, int subcuboid_d,
+					glu::GLSLVersion glsl_version);
+	~TexImage3DCase (void);
+	IterateResult iterate (void);
+protected:
+	void generateSrcData();
+	void createTexture (void);
+	void createShader (void);
+	tcu::Surface renderToSurf (int layer);
+	void cleanup (void);
+};
+
+TexImage3DCase::TexImage3DCase (deqp::Context& context,
+								const char* name,
+								const char* desc,
+								deUint32 internalFormat,
+								int cuboid_w,
+								int cuboid_h,
+								int cuboid_d,
+								int subcuboid_x0,
+								int subcuboid_y0,
+								int subcuboid_z0,
+								int subcuboid_w,
+								int subcuboid_h,
+								int subcuboid_d,
+								glu::GLSLVersion glsl_version)
+	: TestCase(context, name, desc)
+	, TexImageUtils(internalFormat,
+					cuboid_w, cuboid_h, cuboid_d,
+					subcuboid_x0, subcuboid_y0, subcuboid_z0,
+					subcuboid_w, subcuboid_h, subcuboid_d,
+					glsl_version)
+{
+}
+
+TexImage3DCase::~TexImage3DCase(void)
+{
+}
+
+TexImage3DCase::IterateResult TexImage3DCase::iterate(void)
+{
+	glu::RenderContext& renderCtx = TestCase::m_context.getRenderContext();
+	tcu::TestLog& log = m_testCtx.getLog();
+	tcu::Surface dst, errMask;
+
+	bool pass = true;
+
+	sglr::GLContext gl_ctx (renderCtx,
+							log,
+							sglr::GLCONTEXT_LOG_CALLS,
+							tcu::IVec4(0, 0, m_subcuboid_w, m_subcuboid_h));
+
+	setContext((sglr::Context*)&gl_ctx);
+
+	generateSrcData();
+	createTexture();
+	createShader();
+
+	for (int z = 0; z < m_subcuboid_d; z++)
+	{
+		dst = renderToSurf(z);
+
+		bool layer_pass = verify(dst, &errMask);
+
+		if (layer_pass)
+		{
+			m_testCtx.getLog()
+				<< tcu::TestLog::Message << "Layer " << z	 << " is valid"
+				<< tcu::TestLog::EndMessage
+				<< tcu::TestLog::ImageSet("LayerVerification", "Layer verification")
+				<< tcu::TestLog::Image("Result", "Rendered result", dst.getAccess())
+				<< tcu::TestLog::EndImageSet;
+		}
+		else
+		{
+			m_testCtx.getLog()
+				<< tcu::TestLog::Message << "Layer " << z << " is invalid"
+				<< tcu::TestLog::EndMessage
+				<< tcu::TestLog::ImageSet("ErrorVerification", "Layer verification")
+				<< tcu::TestLog::Image("Result", "Rendered result", dst.getAccess())
+				<< tcu::TestLog::Image("ErrorMask", "Error mask", errMask.getAccess())
+				<< tcu::TestLog::EndImageSet;
+		}
+
+		pass &= layer_pass;
+	}
+
+	cleanup();
+
+	if (pass)
+	{
+		m_testCtx.getLog()
+			<< tcu::TestLog::Message << "Image is valid" << tcu::TestLog::EndMessage;
+	}
+	else
+	{
+		m_testCtx.getLog()
+			<< tcu::TestLog::Message << "Image is invalid" << tcu::TestLog::EndMessage;
+	}
+
+	m_testCtx.setTestResult(pass ? QP_TEST_RESULT_PASS : QP_TEST_RESULT_FAIL,
+									pass ? "Pass" : "Fail");
+
+	return STOP;
+}
+
+void TexImage3DCase::generateSrcData()
+{
+	m_src_data = new glw::GLubyte[m_cuboid_w *
+								  m_cuboid_h *
+								  m_cuboid_d *
+								  m_pixelsize]();
+
+	glw::GLdouble col = 0.0;
+
+	for (int z = 0; z < m_cuboid_d; z++)
+	{
+		for (int y = 0; y < m_cuboid_h; y++)
+		{
+			for (int x = 0; x < m_cuboid_w; x++)
+			{
+				if (inrange(z, m_subcuboid_z0, m_subcuboid_z0 + m_subcuboid_d) &&
+					inrange(y, m_subcuboid_y0, m_subcuboid_y0 + m_subcuboid_h) &&
+					inrange(x, m_subcuboid_x0, m_subcuboid_x0 + m_subcuboid_w))
+					col = 0.125 + (z - m_subcuboid_z0) * 0.125; /* [0.125, 0.250..1.0] */
+				else
+					col = 0.0;
+				int offset = z * m_cuboid_h * m_cuboid_w * m_pixelsize +
+							 y * m_cuboid_w * m_pixelsize +
+							 x * m_pixelsize;
+				writePixel(m_src_data + offset, col);
+			}
+		}
+	}
+}
+
+void TexImage3DCase::createTexture (void)
+{
+	glu::CallLogWrapper gl (m_context.getRenderContext().getFunctions(),
+							m_testCtx.getLog());
+
+	gl.glGenTextures(1, &tex);
+	gl.glBindTexture(GL_TEXTURE_2D_ARRAY, tex);
+	gl.glTexParameteri(GL_TEXTURE_2D_ARRAY, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+	gl.glTexParameteri(GL_TEXTURE_2D_ARRAY, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+
+	gl.glPixelStorei(GL_UNPACK_IMAGE_HEIGHT, m_cuboid_h);
+	gl.glPixelStorei(GL_UNPACK_ROW_LENGTH,	 m_cuboid_w);
+	gl.glPixelStorei(GL_UNPACK_SKIP_IMAGES,	 m_subcuboid_z0);
+	gl.glPixelStorei(GL_UNPACK_SKIP_ROWS,	 m_subcuboid_y0);
+	gl.glPixelStorei(GL_UNPACK_SKIP_PIXELS,	 m_subcuboid_x0);
+
+	gl.glTexImage3D(GL_TEXTURE_2D_ARRAY,
+					0,
+					m_internalFormat,
+					m_subcuboid_w,
+					m_subcuboid_h,
+					m_subcuboid_d,
+					0,
+					m_format,
+					m_type,
+					m_src_data);
+
+	gl.glPixelStorei(GL_UNPACK_IMAGE_HEIGHT, 0);
+	gl.glPixelStorei(GL_UNPACK_ROW_LENGTH,	 0);
+	gl.glPixelStorei(GL_UNPACK_SKIP_IMAGES,  0);
+	gl.glPixelStorei(GL_UNPACK_SKIP_ROWS,	 0);
+	gl.glPixelStorei(GL_UNPACK_SKIP_PIXELS,  0);
+}
+
+void TexImage3DCase::createShader (void)
+{
+	glu::CallLogWrapper gl (m_context.getRenderContext().getFunctions(),
+							m_testCtx.getLog());
+
+	const tcu::StringTemplate vs_src (vs_template_src);
+	const tcu::StringTemplate fs_src (fs_template_src);
+
+	std::map<std::string,std::string> params;
+	params["GLSL_VERSION"]	 = getGLSLVersionDeclaration(m_glsl_version);
+	params["TEXCOORDS_TYPE"] = "vec3";
+	params["LAYER"]			 = "uniform int layer;";
+	params["TEXCOORDS"]		 = "vec3(pos.xy, layer)";
+
+	switch (m_format)
+	{
+	case GL_RED_INTEGER:
+	case GL_RG_INTEGER:
+	case GL_RGB_INTEGER:
+	case GL_RGBA_INTEGER:
+		params["SAMPLER_TYPE"] = "usampler2DArray";
+		params["COL_TYPE"]	   = "uvec4";
+		params["CONDITION"]	   = "all(lessThan(uvec4(abs(ivec4(colour) - ivec4(refcolour))).rgb, uvec3(2u)))";
+		break;
+	default:
+		const tcu::StringTemplate fs_condition ("all(lessThan((abs(colour - refcolour)).rgb, vec3(${EPS})))");
+		std::map<std::string, std::string> fs_condition_params;
+		fs_condition_params["EPS"] = std::to_string(getEps(m_internalFormat));
+		params["SAMPLER_TYPE"] = "sampler2DArray";
+		params["COL_TYPE"]	  = "vec4";
+		params["CONDITION"]	  = fs_condition.specialize(fs_condition_params);
+		break;
+	}
+
+	prog = new glu::ShaderProgram(m_context.getRenderContext(),
+								  glu::ProgramSources() <<
+								  glu::VertexSource(vs_src.specialize(params)) <<
+								  glu::FragmentSource(fs_src.specialize(params)));
+
+	if (!prog->isOk())
+	{
+		m_testCtx.getLog()
+			<< tcu::TestLog::Message << ""
+			<< tcu::TestLog::EndMessage
+			<< tcu::TestLog::ShaderProgram(false, "")
+			<< tcu::TestLog::Shader(QP_SHADER_TYPE_VERTEX,
+									prog->getShaderInfo(glu::SHADERTYPE_VERTEX,
+														0).source,
+									false,
+									prog->getShaderInfo(glu::SHADERTYPE_VERTEX,
+														0).infoLog)
+
+			<< tcu::TestLog::Shader(QP_SHADER_TYPE_FRAGMENT,
+									prog->getShaderInfo(glu::SHADERTYPE_FRAGMENT,
+														0).source,
+									false,
+									prog->getShaderInfo(glu::SHADERTYPE_FRAGMENT,
+														0).infoLog)
+			<< tcu::TestLog::EndShaderProgram;
+		TCU_FAIL("Shader creation failed");
+	}
+
+	gl.glUseProgram(prog->getProgram());
+	gl.glUniform1i(gl.glGetUniformLocation(prog->getProgram(), "sampler"), 0);
+}
+
+tcu::Surface TexImage3DCase::renderToSurf (int layer)
+{
+	glu::CallLogWrapper gl (m_context.getRenderContext().getFunctions(),
+							m_testCtx.getLog());
+	gl.glClearColor(0.3f, 0.3f, 0.3f, 1.0f);
+	gl.glClear(GL_COLOR_BUFFER_BIT);
+
+	static const float vertexPositions[4*3] =
+	{
+		-1.0, -1.0, -1.0f,
+		 1.0, -1.0,	 0.0f,
+		-1.0,  1.0,	 0.0f,
+		1.0,   1.0,	 1.0f,
+	};
+
+	static const deUint16 indices[6] = { 0, 1, 2, 2, 1, 3 };
+
+	const glu::VertexArrayBinding attrBindings[] =
+	{
+		glu::va::Float("pos", 3, 4, 0, &vertexPositions[0])
+	};
+
+	gl.glViewport(0, 0, m_subcuboid_w, m_subcuboid_h);
+
+	gl.glUniform1i(gl.glGetUniformLocation(prog->getProgram(), "layer"), layer);
+	glw::GLfloat refcol = 0.125 + layer * 0.125;
+	setRefcolour(gl, refcol);
+	glu::draw(m_context.getRenderContext(),
+			  prog->getProgram(),
+			  DE_LENGTH_OF_ARRAY(attrBindings),
+			  &attrBindings[0],
+			  glu::pr::Triangles(DE_LENGTH_OF_ARRAY(indices), &indices[0]));
+
+	tcu::Surface dst;
+	dst.setSize(m_subcuboid_w, m_subcuboid_h);
+
+	glu::readPixels(m_context.getRenderContext(), 0, 0, dst.getAccess());
+
+	return dst;
+}
+
+void TexImage3DCase::cleanup (void)
+{
+	glu::CallLogWrapper gl (m_context.getRenderContext().getFunctions(),
+							m_testCtx.getLog());
+
+	gl.glDeleteTextures(1, &tex);
+	delete[] m_src_data;
+	delete prog;
+}
+
+class CompressedTexImageUtils
+{
+public:
+	CompressedTexImageUtils (deUint32 internalFormat,
+							 int cuboid_w, int cuboid_h, int cuboid_d,
+							 int subcuboid_x0, int subcuboid_y0, int subcuboid_z0,
+							 int subcuboid_w, int subcuboid_h, int subcuboid_d,
+							 glu::GLSLVersion glsl_version);
+	~CompressedTexImageUtils (void);
+protected:
+	int getImageSize (int width, int height, int depth);
+	bool verify(tcu::Surface dst, tcu::Surface *errMask);
+
+	glw::GLubyte *m_src_data;
+	deUint32 tex;
+	glu::ShaderProgram *prog;
+
+	int m_bw;					/* block width */
+	int m_bh;					/* block height */
+	int m_bd;					/* block depth */
+	int m_bs;					/* block size */
+
+	deUint32 m_internalFormat;
+	int m_cuboid_w;
+	int m_cuboid_h;
+	int m_cuboid_d;
+	int m_subcuboid_x0;
+	int m_subcuboid_y0;
+	int m_subcuboid_z0;
+	int m_subcuboid_w;
+	int m_subcuboid_h;
+	int m_subcuboid_d;
+
+	glu::GLSLVersion m_glsl_version;
+};
+
+CompressedTexImageUtils::CompressedTexImageUtils (deUint32 internalFormat,
+												  int cuboid_w,
+												  int cuboid_h,
+												  int cuboid_d,
+												  int subcuboid_x0,
+												  int subcuboid_y0,
+												  int subcuboid_z0,
+												  int subcuboid_w,
+												  int subcuboid_h,
+												  int subcuboid_d,
+												  glu::GLSLVersion glsl_version)
+	: m_internalFormat(internalFormat)
+	, m_cuboid_w(cuboid_w)
+	, m_cuboid_h(cuboid_h)
+	, m_cuboid_d(cuboid_d)
+	, m_subcuboid_x0(subcuboid_x0)
+	, m_subcuboid_y0(subcuboid_y0)
+	, m_subcuboid_z0(subcuboid_z0)
+	, m_subcuboid_w(subcuboid_w)
+	, m_subcuboid_h(subcuboid_h)
+	, m_subcuboid_d(subcuboid_d)
+	, m_glsl_version(glsl_version)
+{
+}
+
+CompressedTexImageUtils::~CompressedTexImageUtils(void)
+{
+}
+
+int CompressedTexImageUtils::getImageSize (int width, int height, int depth)
+{
+	return (width / m_bw + (width % m_bw > 0)) *
+		   (height / m_bh + (height % m_bh > 0)) *
+		   (depth / m_bd + (depth % m_bd > 0)) *
+		   m_bs;
+}
+
+bool CompressedTexImageUtils::verify(tcu::Surface dst, tcu::Surface *errMask)
+{
+	*errMask = tcu::Surface (dst.getWidth(), dst.getHeight());
+	tcu::clear(errMask->getAccess(), tcu::Vec4(0.0f, 1.0f, 0.0f, 1.0f));
+	bool pass = true;
+
+	for (int y = 0; y < dst.getHeight(); y++)
+	{
+		for (int x = 0; x < dst.getWidth(); x++)
+		{
+			if (dst.getPixel(x, y) != tcu::RGBA::green())
+			{
+				pass = false;
+				errMask->setPixel(x, y, tcu::RGBA::red());
+			}
+		}
+	}
+
+	return pass;
+}
+
+class CompressedTexImage2DCase : public deqp::TestCase
+							   , public sglr::ContextWrapper
+							   , public CompressedTexImageUtils
+{
+public:
+	CompressedTexImage2DCase (deqp::Context& context, const char *name, const char *desc,
+							  deUint32 internalFormat,
+							  int cuboid_w, int cuboid_h,
+							  int subcuboid_x0, int subcuboid_y0,
+							  int subcuboid_w, int subcuboid_h,
+							  glu::GLSLVersion glsl_version);
+	~CompressedTexImage2DCase (void);
+	IterateResult iterate (void);
+protected:
+	void generateSrcData_s3tc (void);
+	void generateSrcData_astc (void);
+	void createTexture (void);
+	void createShader (void);
+	tcu::Surface renderToSurf (void);
+	void cleanup (void);
+};
+
+CompressedTexImage2DCase::CompressedTexImage2DCase (deqp::Context& context,
+													const char *name,
+													const char *desc,
+													deUint32 internalFormat,
+													int cuboid_w,
+													int cuboid_h,
+													int subcuboid_x0,
+													int subcuboid_y0,
+													int subcuboid_w,
+													int subcuboid_h,
+													glu::GLSLVersion glsl_version)
+	: TestCase(context, name, desc)
+	, CompressedTexImageUtils(internalFormat,
+							  cuboid_w,
+							  cuboid_h,
+							  1,
+							  subcuboid_x0,
+							  subcuboid_y0,
+							  0,
+							  subcuboid_w,
+							  subcuboid_h,
+							  1,
+							  glsl_version)
+{
+}
+
+CompressedTexImage2DCase::~CompressedTexImage2DCase (void)
+{
+}
+
+CompressedTexImage2DCase::IterateResult CompressedTexImage2DCase::iterate (void)
+{
+	glu::RenderContext& renderCtx = TestCase::m_context.getRenderContext();
+	const glu::ContextInfo& ctxInfo = m_context.getContextInfo();
+	tcu::TestLog& log = m_testCtx.getLog();
+	tcu::Surface dst, errMask;
+
+	bool pass = true;
+
+	sglr::GLContext gl_ctx (renderCtx,
+							log,
+							sglr::GLCONTEXT_LOG_CALLS,
+							tcu::IVec4(0, 0, m_subcuboid_w, m_subcuboid_h));
+
+	setContext((sglr::Context*)&gl_ctx);
+
+	switch (m_internalFormat)
+	{
+	case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
+		if (!ctxInfo.isExtensionSupported("GL_EXT_texture_compression_s3tc"))
+		{
+			m_testCtx.setTestResult(QP_TEST_RESULT_NOT_SUPPORTED,
+									"GL_EXT_texture_compression_s3tc extension is not supported");
+			return STOP;
+		}
+
+		m_bw = 4;
+		m_bh = 4;
+		m_bd = 1;
+		m_bs = 8;
+
+		generateSrcData_s3tc();
+		break;
+	case GL_COMPRESSED_RGBA_ASTC_8x5_KHR:
+		if (!ctxInfo.isExtensionSupported("GL_KHR_texture_compression_astc_ldr"))
+		{
+			m_testCtx.setTestResult(QP_TEST_RESULT_NOT_SUPPORTED,
+									"GL_KHR_texture_compression_astc_ldr extension is not supported");
+			return STOP;
+		}
+		m_bw = 8;
+		m_bh = 5;
+		m_bd = 1;
+		m_bs = 16;
+
+		generateSrcData_astc();
+		break;
+	default:
+		TCU_FAIL("Invalid internal format");
+		break;
+	}
+
+	createTexture();
+	createShader();
+
+	dst = renderToSurf();
+	pass = verify(dst, &errMask);
+
+	cleanup();
+
+	if (pass)
+	{
+		m_testCtx.getLog()
+		<< tcu::TestLog::Message << "Image is valid" << tcu::TestLog::EndMessage
+		<< tcu::TestLog::ImageSet("ImageVerification", "Image verification")
+		<< tcu::TestLog::Image("Result", "Rendered result", dst.getAccess())
+		<< tcu::TestLog::EndImageSet;
+	}
+	else
+	{
+		m_testCtx.getLog()
+		<< tcu::TestLog::Message << "Image is invalid" << tcu::TestLog::EndMessage
+		<< tcu::TestLog::ImageSet("ErrorVerification", "Image verification")
+		<< tcu::TestLog::Image("Result", "Rendered result", dst.getAccess())
+		<< tcu::TestLog::Image("ErrorMask", "Error mask", errMask.getAccess())
+		<< tcu::TestLog::EndImageSet;
+	}
+
+	m_testCtx.setTestResult(pass ? QP_TEST_RESULT_PASS : QP_TEST_RESULT_FAIL,
+							pass ? "Pass" : "Fail");
+
+	return STOP;
+}
+
+void CompressedTexImage2DCase::generateSrcData_s3tc (void)
+{
+	deUint64 *src = new deUint64[m_cuboid_w / m_bw * m_cuboid_h / m_bh];
+
+	deUint64 col = 0x0;
+
+	for (int y = 0; y < m_cuboid_h; y += m_bh)
+	{
+		for (int x = 0; x < m_cuboid_w; x += m_bw)
+		{
+			if (inrange(x, m_subcuboid_x0, m_subcuboid_x0 + m_subcuboid_w) &&
+				inrange(y, m_subcuboid_y0, m_subcuboid_y0 + m_subcuboid_h))
+			{
+				col = 0xffff;
+			}
+			else
+			{
+				col = 0x0;
+			}
+			int index = (y / m_bh) * (m_cuboid_w / m_bw) +
+							(x / m_bw);
+			src[index] = col;
+		}
+	}
+
+	m_src_data = (glw::GLubyte*)src;
+}
+
+void CompressedTexImage2DCase::generateSrcData_astc (void)
+{
+	deUint64 col = 0x0;
+	deUint64 mask = 0xfffffffffffffdfc;
+
+	int img_size = 2 * (m_cuboid_w / m_bw + (m_cuboid_w % m_bw > 0)) *
+				   (m_cuboid_h / m_bh + (m_cuboid_h % m_bh > 0));
+
+	deUint64 *src = new deUint64[img_size];
+
+	for (int y = 0; y < m_cuboid_h; y += m_bh)
+	{
+		for (int x = 0; x < m_cuboid_w; x += m_bw)
+		{
+			if (inrange(x, m_subcuboid_x0, m_subcuboid_x0 + m_subcuboid_w) &&
+				inrange(y, m_subcuboid_y0, m_subcuboid_y0 + m_subcuboid_h))
+			{
+				col = 0xffffffffffffffff; /* (1.0, 1.0, 1.0) */
+			}
+			else
+			{
+				col = 0x0; /* (0.0, 0.0, 0.0) */
+			}
+			int index = (y / m_bh) * (m_cuboid_w / m_bw + (m_cuboid_w % m_bw > 0)) +
+						(x / m_bw);
+			src[2 * index] = mask;
+			src[2 * index + 1] = col;
+		}
+	}
+
+	m_src_data = (glw::GLubyte*)src;
+}
+
+void CompressedTexImage2DCase::createTexture (void)
+{
+	glu::CallLogWrapper gl (m_context.getRenderContext().getFunctions(),
+							m_testCtx.getLog());
+
+	gl.glGenTextures(1, &tex);
+	gl.glBindTexture(GL_TEXTURE_2D, tex);
+	gl.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+	gl.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+
+	gl.glPixelStorei(GL_UNPACK_COMPRESSED_BLOCK_SIZE,	 m_bs);
+	gl.glPixelStorei(GL_UNPACK_COMPRESSED_BLOCK_WIDTH,	 m_bw);
+	gl.glPixelStorei(GL_UNPACK_COMPRESSED_BLOCK_HEIGHT, m_bh);
+
+	gl.glPixelStorei(GL_UNPACK_ROW_LENGTH,	 m_cuboid_w);
+	gl.glPixelStorei(GL_UNPACK_SKIP_ROWS,	 m_subcuboid_y0);
+	gl.glPixelStorei(GL_UNPACK_SKIP_PIXELS, m_subcuboid_x0);
+
+	gl.glCompressedTexImage2D(GL_TEXTURE_2D,
+							  0,
+							  m_internalFormat,
+							  m_subcuboid_w,
+							  m_subcuboid_h,
+							  0,
+							  getImageSize(m_subcuboid_w,
+										   m_subcuboid_h,
+										   m_subcuboid_d),
+							  m_src_data);
+
+	gl.glPixelStorei(GL_UNPACK_COMPRESSED_BLOCK_SIZE,	 0);
+	gl.glPixelStorei(GL_UNPACK_COMPRESSED_BLOCK_WIDTH,	 0);
+	gl.glPixelStorei(GL_UNPACK_COMPRESSED_BLOCK_HEIGHT,  0);
+
+	gl.glPixelStorei(GL_UNPACK_ROW_LENGTH,	 0);
+	gl.glPixelStorei(GL_UNPACK_SKIP_ROWS,	 0);
+	gl.glPixelStorei(GL_UNPACK_SKIP_PIXELS,  0);
+}
+
+void CompressedTexImage2DCase::createShader (void)
+{
+	glu::CallLogWrapper gl (m_context.getRenderContext().getFunctions(),
+							m_testCtx.getLog());
+
+	const tcu::StringTemplate vs_src (vs_template_src);
+	const tcu::StringTemplate fs_src (fs_template_src);
+
+	std::map<std::string,std::string> params;
+	params["GLSL_VERSION"]	 = getGLSLVersionDeclaration(m_glsl_version);
+	params["TEXCOORDS_TYPE"] = "vec2";
+	params["LAYER"]			 = "";
+	params["TEXCOORDS"]		 = "pos.xy";
+	params["SAMPLER_TYPE"]	 = "sampler2D";
+	params["COL_TYPE"]		 = "vec4";
+	params["CONDITION"]		 = "colour.rgb == refcolour.rgb";
+
+	prog = new glu::ShaderProgram(m_context.getRenderContext(),
+								  glu::ProgramSources() <<
+								  glu::VertexSource(vs_src.specialize(params)) <<
+								  glu::FragmentSource(fs_src.specialize(params)));
+
+	if (!prog->isOk())
+	{
+		m_testCtx.getLog()
+			<< tcu::TestLog::Message << ""
+			<< tcu::TestLog::EndMessage
+			<< tcu::TestLog::ShaderProgram(false, "")
+			<< tcu::TestLog::Shader(QP_SHADER_TYPE_VERTEX,
+									prog->getShaderInfo(glu::SHADERTYPE_VERTEX,
+														0).source,
+									false,
+									prog->getShaderInfo(glu::SHADERTYPE_VERTEX,
+														0).infoLog)
+
+			<< tcu::TestLog::Shader(QP_SHADER_TYPE_FRAGMENT,
+									prog->getShaderInfo(glu::SHADERTYPE_FRAGMENT,
+														0).source,
+									false,
+									prog->getShaderInfo(glu::SHADERTYPE_FRAGMENT,
+														0).infoLog)
+			<< tcu::TestLog::EndShaderProgram;
+		TCU_FAIL("Shader creation failed");
+	}
+
+	gl.glUseProgram(prog->getProgram());
+	gl.glUniform1i(gl.glGetUniformLocation(prog->getProgram(), "sampler"), 0);
+}
+
+tcu::Surface CompressedTexImage2DCase::renderToSurf (void)
+{
+	glu::CallLogWrapper gl (m_context.getRenderContext().getFunctions(),
+							m_testCtx.getLog());
+
+	gl.glClearColor(0.3f, 0.3f, 0.3f, 1.0f);
+	gl.glClear(GL_COLOR_BUFFER_BIT);
+
+	static const float vertexPositions[4*3] =
+	{
+		-1.0, -1.0, -1.0f,
+		 1.0, -1.0,	 0.0f,
+		-1.0,  1.0,	 0.0f,
+		 1.0,  1.0,	 1.0f,
+	};
+
+	static const deUint16 indices[6] = { 0, 1, 2, 2, 1, 3 };
+
+	const glu::VertexArrayBinding attrBindings[] =
+	{
+		glu::va::Float("pos", 3, 4, 0, &vertexPositions[0])
+	};
+
+	gl.glViewport(0, 0, m_subcuboid_w, m_subcuboid_h);
+
+	glw::GLfloat refcol = 1.0f;
+
+	gl.glUniform4f(gl.glGetUniformLocation(prog->getProgram(), "refcolour"),
+				   refcol, refcol, refcol, 1.0f);
+
+	glu::draw(m_context.getRenderContext(),
+			  prog->getProgram(),
+			  DE_LENGTH_OF_ARRAY(attrBindings),
+			  &attrBindings[0],
+			  glu::pr::Triangles(DE_LENGTH_OF_ARRAY(indices), &indices[0]));
+
+	tcu::Surface dst;
+	dst.setSize(m_subcuboid_w, m_subcuboid_h);
+
+	glu::readPixels(m_context.getRenderContext(), 0, 0, dst.getAccess());
+
+	return dst;
+}
+
+void CompressedTexImage2DCase::cleanup (void)
+{
+	glu::CallLogWrapper gl (m_context.getRenderContext().getFunctions(),
+							m_testCtx.getLog());
+
+	gl.glDeleteTextures(1, &tex);
+	delete[] m_src_data;
+	delete prog;
+}
+
+class CompressedTexImage3DCase : public deqp::TestCase
+							   , public sglr::ContextWrapper
+							   , public CompressedTexImageUtils
+{
+public:
+	CompressedTexImage3DCase (deqp::Context& context, const char *name, const char *desc,
+							  deUint32 internalFormat,
+							  int cuboid_w, int cuboid_h, int cuboid_d,
+							  int subcuboid_x0, int subcuboid_y0, int subcuboid_z0,
+							  int subcuboid_w, int subcuboid_h, int subcuboid_d,
+							  glu::GLSLVersion glsl_version);
+	~CompressedTexImage3DCase (void);
+	IterateResult iterate (void);
+protected:
+	void generateSrcData_s3tc (void);
+	void generateSrcData_astc (void);
+	void createTexture (void);
+	void createShader (void);
+	tcu::Surface renderToSurf (int layer);
+	void cleanup (void);
+};
+
+CompressedTexImage3DCase::CompressedTexImage3DCase (deqp::Context& context,
+													const char *name,
+													const char *desc,
+													deUint32 internalFormat,
+													int cuboid_w,
+													int cuboid_h,
+													int cuboid_d,
+													int subcuboid_x0,
+													int subcuboid_y0,
+													int subcuboid_z0,
+													int subcuboid_w,
+													int subcuboid_h,
+													int subcuboid_d,
+													glu::GLSLVersion glsl_version)
+	: TestCase(context, name, desc)
+	, CompressedTexImageUtils(internalFormat,
+							  cuboid_w,
+							  cuboid_h,
+							  cuboid_d,
+							  subcuboid_x0,
+							  subcuboid_y0,
+							  subcuboid_z0,
+							  subcuboid_w,
+							  subcuboid_h,
+							  subcuboid_d,
+							  glsl_version)
+{
+}
+
+CompressedTexImage3DCase::~CompressedTexImage3DCase (void)
+{
+}
+
+CompressedTexImage3DCase::IterateResult CompressedTexImage3DCase::iterate (void)
+{
+	glu::RenderContext& renderCtx = TestCase::m_context.getRenderContext();
+	const glu::ContextInfo& ctxInfo = m_context.getContextInfo();
+	tcu::TestLog& log = m_testCtx.getLog();
+	tcu::Surface dst, errMask;
+
+	bool pass = true;
+
+	sglr::GLContext gl_ctx (renderCtx,
+							log,
+							sglr::GLCONTEXT_LOG_CALLS,
+							tcu::IVec4(0, 0, m_subcuboid_w, m_subcuboid_h));
+
+	setContext((sglr::Context*)&gl_ctx);
+
+	switch (m_internalFormat)
+	{
+	case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
+		if (!ctxInfo.isExtensionSupported("GL_EXT_texture_compression_s3tc"))
+		{
+			m_testCtx.setTestResult(QP_TEST_RESULT_NOT_SUPPORTED,
+									"GL_EXT_texture_compression_s3tc extension is not supported");
+			return STOP;
+		}
+
+		m_bw = 4;
+		m_bh = 4;
+		m_bd = 1;
+		m_bs = 8;
+
+		generateSrcData_s3tc();
+		break;
+	case GL_COMPRESSED_RGBA_ASTC_8x5_KHR:
+		if (!ctxInfo.isExtensionSupported("GL_KHR_texture_compression_astc_ldr"))
+		{
+			m_testCtx.setTestResult(QP_TEST_RESULT_NOT_SUPPORTED,
+									"GL_KHR_texture_compression_astc_ldr extension is not supported");
+			return STOP;
+		}
+		m_bw = 8;
+		m_bh = 5;
+		m_bd = 1;
+		m_bs = 16;
+
+		generateSrcData_astc();
+		break;
+	default:
+		TCU_FAIL("Invalid internal format");
+		break;
+	}
+
+	createTexture();
+	createShader();
+
+	for (int z = 0; z < m_subcuboid_d; z++)
+	{
+		dst = renderToSurf(z);
+
+		bool layer_pass = verify(dst, &errMask);
+
+		if (layer_pass)
+		{
+			m_testCtx.getLog()
+				<< tcu::TestLog::Message << "Layer " << z	 << " is valid"
+				<< tcu::TestLog::EndMessage
+				<< tcu::TestLog::ImageSet("LayerVerification", "Layer verification")
+				<< tcu::TestLog::Image("Result", "Rendered result", dst.getAccess())
+				<< tcu::TestLog::EndImageSet;
+		}
+		else
+		{
+			m_testCtx.getLog()
+				<< tcu::TestLog::Message << "Layer " << z << " is invalid"
+				<< tcu::TestLog::EndMessage
+				<< tcu::TestLog::ImageSet("ErrorVerification", "Layer verification")
+				<< tcu::TestLog::Image("Result", "Rendered result", dst.getAccess())
+				<< tcu::TestLog::Image("ErrorMask", "Error mask", errMask.getAccess())
+				<< tcu::TestLog::EndImageSet;
+		}
+
+		pass &= layer_pass;
+	}
+
+	cleanup();
+
+	if (pass)
+	{
+		m_testCtx.getLog()
+			<< tcu::TestLog::Message << "Image is valid" << tcu::TestLog::EndMessage;
+	}
+	else
+	{
+		m_testCtx.getLog()
+			<< tcu::TestLog::Message << "Image is invalid" << tcu::TestLog::EndMessage;
+	}
+
+	m_testCtx.setTestResult(pass ? QP_TEST_RESULT_PASS : QP_TEST_RESULT_FAIL,
+							pass ? "Pass" : "Fail");
+
+	return STOP;
+}
+
+void CompressedTexImage3DCase::generateSrcData_s3tc()
+{
+	deUint64 *src = new deUint64[m_cuboid_w / m_bw *
+								 m_cuboid_h / m_bh *
+								 m_cuboid_d / m_bd];
+
+	deUint64 col_list[] =
+	{
+		0x18E3,					/* (0.125, 0.125, 0.125) */
+		0x39E7,					/* (0.250, 0.250, 0.250) */
+		0x5AEB,					/* (0.375, 0.375, 0.375) */
+		0x7BEF,					/* (0.500, 0.500, 0.500) */
+		0x9CF3,					/* (0.625, 0.625, 0.625) */
+		0xBDF7,					/* (0.750, 0.750, 0.750) */
+		0xDEFB,					/* (0.875, 0.875, 0.875) */
+		0xffff,					/* (1.000, 1.000, 1.000) */
+	};
+
+	deUint64 col = 0x0;
+
+	for (int z = 0; z < m_cuboid_d; z += m_bd)
+	{
+		for (int y = 0; y < m_cuboid_h; y += m_bh)
+		{
+			for (int x = 0; x < m_cuboid_w; x += m_bw)
+			{
+				if (inrange(x, m_subcuboid_x0, m_subcuboid_x0 + m_subcuboid_w) &&
+					inrange(y, m_subcuboid_y0, m_subcuboid_y0 + m_subcuboid_h) &&
+					inrange(z, m_subcuboid_z0, m_subcuboid_z0 + m_subcuboid_d))
+					col = col_list[z % 8];
+				else
+					col = 0x0;
+
+				int index = (z / m_bd) * (m_cuboid_h / m_bh) * (m_cuboid_w / m_bw) +
+							(y / m_bh) * (m_cuboid_w / m_bw) +
+							(x / m_bw);
+				src[index] = col;
+			}
+		}
+	}
+
+	m_src_data = (glw::GLubyte*)src;
+}
+
+void CompressedTexImage3DCase::generateSrcData_astc (void)
+{
+	deUint64 col_list[] =
+	{
+		0xffff1fff1fff1fff,		/* (0.125, 0.125, 0.125) */
+		0xffff3fff3fff3fff,		/* (0.250, 0.250, 0.250) */
+		0xffff5fff5fff5fff,		/* (0.375, 0.375, 0.375) */
+		0xffff7fff7fff7fff,		/* (0.500, 0.500, 0.500) */
+		0xffff9fff9fff9fff,		/* (0.625, 0.625, 0.625) */
+		0xffffbfffbfffbfff,		/* (0.750, 0.750, 0.750) */
+		0xffffdfffdfffdfff,		/* (0.875, 0.875, 0.875) */
+		0xffffffffffffffff,		/* (1.000, 1.000, 1.000) */
+	};
+	deUint64 col = 0x0;
+	deUint64 mask = 0xFFFFFFFFFFFFFDFC;
+
+	int img_size = 2 * (m_cuboid_w / m_bw + (m_cuboid_w % m_bw > 0)) *
+					   (m_cuboid_h / m_bh + (m_cuboid_h % m_bh > 0)) *
+					   (m_cuboid_d / m_bd + (m_cuboid_d % m_bd > 0));
+
+	deUint64 *src = new deUint64[img_size];
+
+	for (int z = 0; z < m_cuboid_d; z += m_bd)
+	{
+		for (int y = 0; y < m_cuboid_h; y += m_bh)
+		{
+			for (int x = 0; x < m_cuboid_w; x += m_bw)
+			{
+				if (inrange(x, m_subcuboid_x0, m_subcuboid_x0 + m_subcuboid_w) &&
+					inrange(y, m_subcuboid_y0, m_subcuboid_y0 + m_subcuboid_h) &&
+					inrange(z, m_subcuboid_z0, m_subcuboid_z0 + m_subcuboid_d))
+					col = col_list[z % 8];
+				else
+					col = 0x0;
+
+				int index = (z / m_bd) * (m_cuboid_h / m_bh + (m_cuboid_h % m_bh > 0)) *
+										 (m_cuboid_w / m_bw + (m_cuboid_w % m_bw > 0)) +
+							(y / m_bh) * (m_cuboid_w / m_bw + (m_cuboid_w % m_bw > 0)) +
+							(x / m_bw);
+				src[2 * index] = mask;
+				src[2 * index + 1] = col;
+			}
+		}
+	}
+
+	m_src_data = (glw::GLubyte*)src;
+}
+
+void CompressedTexImage3DCase::createTexture (void)
+{
+	glu::CallLogWrapper gl (m_context.getRenderContext().getFunctions(),
+							m_testCtx.getLog());
+
+	gl.glGenTextures(1, &tex);
+	gl.glBindTexture(GL_TEXTURE_2D_ARRAY, tex);
+	gl.glTexParameteri(GL_TEXTURE_2D_ARRAY, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+	gl.glTexParameteri(GL_TEXTURE_2D_ARRAY, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+
+	gl.glPixelStorei(GL_UNPACK_COMPRESSED_BLOCK_SIZE,	 m_bs);
+	gl.glPixelStorei(GL_UNPACK_COMPRESSED_BLOCK_WIDTH,	 m_bw);
+	gl.glPixelStorei(GL_UNPACK_COMPRESSED_BLOCK_HEIGHT,  m_bh);
+	gl.glPixelStorei(GL_UNPACK_COMPRESSED_BLOCK_DEPTH,	 m_bd);
+
+	gl.glPixelStorei(GL_UNPACK_IMAGE_HEIGHT, m_cuboid_h);
+	gl.glPixelStorei(GL_UNPACK_ROW_LENGTH,	 m_cuboid_w);
+	gl.glPixelStorei(GL_UNPACK_SKIP_IMAGES,  m_subcuboid_z0);
+	gl.glPixelStorei(GL_UNPACK_SKIP_ROWS,	 m_subcuboid_y0);
+	gl.glPixelStorei(GL_UNPACK_SKIP_PIXELS,  m_subcuboid_x0);
+
+	gl.glCompressedTexImage3D(GL_TEXTURE_2D_ARRAY,
+							  0,
+							  m_internalFormat,
+							  m_subcuboid_w,
+							  m_subcuboid_h,
+							  m_subcuboid_d,
+							  0,
+							  getImageSize(m_subcuboid_w,
+										   m_subcuboid_h,
+										   m_subcuboid_d),
+							  m_src_data);
+
+	gl.glPixelStorei(GL_UNPACK_COMPRESSED_BLOCK_SIZE,	 0);
+	gl.glPixelStorei(GL_UNPACK_COMPRESSED_BLOCK_WIDTH,	 0);
+	gl.glPixelStorei(GL_UNPACK_COMPRESSED_BLOCK_HEIGHT,  0);
+	gl.glPixelStorei(GL_UNPACK_COMPRESSED_BLOCK_DEPTH,	 0);
+
+	gl.glPixelStorei(GL_UNPACK_IMAGE_HEIGHT, 0);
+	gl.glPixelStorei(GL_UNPACK_ROW_LENGTH,	 0);
+	gl.glPixelStorei(GL_UNPACK_SKIP_IMAGES,  0);
+	gl.glPixelStorei(GL_UNPACK_SKIP_ROWS,	 0);
+	gl.glPixelStorei(GL_UNPACK_SKIP_PIXELS,  0);
+}
+
+void CompressedTexImage3DCase::createShader (void)
+{
+	glu::CallLogWrapper gl (m_context.getRenderContext().getFunctions(),
+							m_testCtx.getLog());
+
+	const tcu::StringTemplate vs_src (vs_template_src);
+	const tcu::StringTemplate fs_src (fs_template_src);
+
+	std::map<std::string,std::string> params;
+	params["GLSL_VERSION"]	 = getGLSLVersionDeclaration(m_glsl_version);
+	params["TEXCOORDS_TYPE"] = "vec3";
+	params["LAYER"]			 = "uniform int layer;";
+	params["TEXCOORDS"]		 = "vec3(pos.xy, layer)";
+	params["SAMPLER_TYPE"]	 = "sampler2DArray";
+	params["COL_TYPE"]		 = "vec4";
+
+	const tcu::StringTemplate fs_condition ("all(lessThan((abs(colour - refcolour)).rgb, vec3(${EPS})))");
+	std::map<std::string,std::string> fs_condition_params;
+	fs_condition_params["EPS"] = std::to_string(getEps(m_internalFormat));
+	params["CONDITION"] = fs_condition.specialize(fs_condition_params);
+
+	prog = new glu::ShaderProgram(m_context.getRenderContext(),
+								  glu::ProgramSources() <<
+								  glu::VertexSource(vs_src.specialize(params)) <<
+								  glu::FragmentSource(fs_src.specialize(params)));
+
+	if (!prog->isOk())
+	{
+		m_testCtx.getLog()
+			<< tcu::TestLog::Message << ""
+			<< tcu::TestLog::EndMessage
+			<< tcu::TestLog::ShaderProgram(false, "")
+			<< tcu::TestLog::Shader(QP_SHADER_TYPE_VERTEX,
+									prog->getShaderInfo(glu::SHADERTYPE_VERTEX,
+														0).source,
+									false,
+									prog->getShaderInfo(glu::SHADERTYPE_VERTEX,
+														0).infoLog)
+
+			<< tcu::TestLog::Shader(QP_SHADER_TYPE_FRAGMENT,
+									prog->getShaderInfo(glu::SHADERTYPE_FRAGMENT,
+														0).source,
+									false,
+									prog->getShaderInfo(glu::SHADERTYPE_FRAGMENT,
+														0).infoLog)
+			<< tcu::TestLog::EndShaderProgram;
+		TCU_FAIL("Shader creation failed");
+	}
+
+	gl.glUseProgram(prog->getProgram());
+	gl.glUniform1i(gl.glGetUniformLocation(prog->getProgram(), "sampler"), 0);
+}
+
+tcu::Surface CompressedTexImage3DCase::renderToSurf (int layer)
+{
+	glu::CallLogWrapper gl (m_context.getRenderContext().getFunctions(),
+							m_testCtx.getLog());
+
+	gl.glClearColor(0.3f, 0.3f, 0.3f, 1.0f);
+	gl.glClear(GL_COLOR_BUFFER_BIT);
+
+	static const float vertexPositions[4*3] =
+	{
+		-1.0, -1.0, -1.0f,
+		 1.0, -1.0,	 0.0f,
+		-1.0,  1.0,	 0.0f,
+		 1.0,  1.0,	 1.0f,
+	};
+
+	static const deUint16 indices[6] = { 0, 1, 2, 2, 1, 3 };
+
+	const glu::VertexArrayBinding attrBindings[] =
+	{
+		glu::va::Float("pos", 3, 4, 0, &vertexPositions[0])
+	};
+
+	gl.glViewport(0, 0, m_subcuboid_w, m_subcuboid_h);
+
+	gl.glUniform1i(gl.glGetUniformLocation(prog->getProgram(), "layer"), layer);
+
+	glw::GLfloat refcols[8] = { 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875, 1.0 };
+	glw::GLfloat refcol = refcols[(layer + m_subcuboid_z0 % 8) % 8];
+
+	gl.glUniform4f(gl.glGetUniformLocation(prog->getProgram(), "refcolour"),
+				   refcol, refcol, refcol, 1.0f);
+
+	glu::draw(m_context.getRenderContext(),
+			  prog->getProgram(),
+			  DE_LENGTH_OF_ARRAY(attrBindings),
+			  &attrBindings[0],
+			  glu::pr::Triangles(DE_LENGTH_OF_ARRAY(indices), &indices[0]));
+
+	tcu::Surface dst;
+	dst.setSize(m_subcuboid_w, m_subcuboid_h);
+
+	glu::readPixels(m_context.getRenderContext(), 0, 0, dst.getAccess());
+
+	return dst;
+}
+
+void CompressedTexImage3DCase::cleanup (void)
+{
+	glu::CallLogWrapper gl (m_context.getRenderContext().getFunctions(),
+							m_testCtx.getLog());
+
+	gl.glDeleteTextures(1, &tex);
+	delete[] m_src_data;
+	delete prog;
+}
+
+PixelStorageModesTests::PixelStorageModesTests (deqp::Context& context,
+												glu::GLSLVersion glsl_version)
+	: TestCaseGroup(context, "pixelstoragemodes", "Pixel Storage Modes Tests")
+	, m_glsl_version(glsl_version)
+{
+}
+
+PixelStorageModesTests::~PixelStorageModesTests (void)
+{
+}
+
+void PixelStorageModesTests::init(void)
+{
+	const int cuboid_w = 64;
+	const int cuboid_h = 64;
+	const int cuboid_d = 64;
+	const int subcuboid_w = 32;
+	const int subcuboid_h = 32;
+	const int subcuboid_d = 8;
+
+	struct
+	{
+		const char *name;
+		deUint32 internalFmt;
+	} internalFmts[] =
+	{
+		{ "r8",			 GL_R8,				  },
+		{ "r8snorm",	 GL_R8_SNORM,		  },
+		{ "r16f",		 GL_R16F,			  },
+		{ "r32f",		 GL_R32F,			  },
+		{ "r8ui",		 GL_R8UI,			  },
+		{ "r8i",		 GL_R8I,			  },
+		{ "r16ui",		 GL_R16UI,			  },
+		{ "r16i",		 GL_R16I,			  },
+		{ "r32ui",		 GL_R32UI,			  },
+		{ "r32i",		 GL_R32I,			  },
+		{ "rg8",		 GL_RG8,			  },
+		{ "rg8snorm",	 GL_RG8_SNORM,		  },
+		{ "rg16f",		 GL_RG16F,			  },
+		{ "rg32f",		 GL_RG32F,			  },
+		{ "rg8ui",		 GL_RG8UI,			  },
+		{ "rg8i",		 GL_RG8I,			  },
+		{ "rg16ui",		 GL_RG16UI,			  },
+		{ "rg16i",		 GL_RG16I,			  },
+		{ "rg32ui",		 GL_RG32UI,			  },
+		{ "rg32i",		 GL_RG32I,			  },
+		{ "rgb8",		 GL_RGB8,			  },
+		{ "rgb565",		 GL_RGB565,			  },
+		{ "rgb8snorm",	 GL_RGB8_SNORM,		  },
+		{ "r11g11b10f",	 GL_R11F_G11F_B10F,	  },
+		{ "rgb16f",		 GL_RGB16F,			  },
+		{ "rgb32f",		 GL_RGB32F,			  },
+		{ "rgb8ui",		 GL_RGB8UI,			  },
+		{ "rgb8i",		 GL_RGB8I,			  },
+		{ "rgb16ui",	 GL_RGB16UI,		  },
+		{ "rgb16i",		 GL_RGB16I,			  },
+		{ "rgb32ui",	 GL_RGB32UI,		  },
+		{ "rgb32i",		 GL_RGB32I,			  },
+		{ "rgba8",		 GL_RGBA8,			  },
+		{ "rgba8snorm",	 GL_RGBA8_SNORM,	  },
+		{ "rgb5a1",		 GL_RGB5_A1,		  },
+		{ "rgba4",		 GL_RGBA4,			  },
+		{ "rgb10a2",	 GL_RGB10_A2,		  },
+		{ "rgba16f",	 GL_RGBA16F,		  },
+		{ "rgba32f",	 GL_RGBA32F,		  },
+		{ "rgba8ui",	 GL_RGBA8UI,		  },
+		{ "rgba8i",		 GL_RGBA8I,			  },
+		{ "rgb10a2ui",	 GL_RGB10_A2UI,		  },
+		{ "rgba16ui",	 GL_RGBA16UI,		  },
+		{ "rgba16i",	 GL_RGBA16I,		  },
+		{ "rgba32i",	 GL_RGBA32I,		  },
+		{ "rgba32ui",	 GL_RGBA32UI,		  },
+	};
+
+	struct
+	{
+		const char *name;
+		deUint32 internalFmt;
+		int bw;
+		int bh;
+		int bd;
+	} internalFmts_compressed[] =
+	{
+		{ "rgb_s3tc_dxt1", GL_COMPRESSED_RGB_S3TC_DXT1_EXT, 4, 4, 1 },
+		{ "rgba_astc_8x5", GL_COMPRESSED_RGBA_ASTC_8x5_KHR, 8, 5, 1 },
+	};
+
+	tcu::TestCaseGroup* texImage2DGroup = new tcu::TestCaseGroup(m_testCtx,
+																 "teximage2d",
+																 "glTexImage2D cases");
+	addChild(texImage2DGroup);
+
+	for (int fmts = 0; fmts < DE_LENGTH_OF_ARRAY(internalFmts); fmts++)
+	{
+		tcu::TestCaseGroup* formatsGroup = new tcu::TestCaseGroup(m_testCtx,
+																  internalFmts[fmts].name,
+																  "");
+		texImage2DGroup->addChild(formatsGroup);
+		int bw = 1;
+		int bh = 1;
+		int skip_pixels[3] =
+			{ 0, bw, bw * (subcuboid_w / (2 * bw)) };
+		int skip_rows[3] =
+			{ 0, bh, bh * (subcuboid_h / (2 * bh)) };
+
+		for (int r = 0; r < 3; r++)
+		{
+			for (int p = r; p < 3; p++)
+			{
+				std::string skip_name =
+					std::to_string(skip_pixels[p]) +
+					"_" +
+					std::to_string(skip_rows[r]);
+				std::string skip_desc =
+					"Skip " +
+					std::to_string(skip_pixels[p]) +
+					" pixels and " +
+					std::to_string(skip_rows[r]) +
+					" rows";
+				formatsGroup->addChild(new TexImage2DCase(m_context,
+														  skip_name.c_str(),
+														  skip_desc.c_str(),
+														  internalFmts[fmts].internalFmt,
+														  cuboid_w,
+														  cuboid_h,
+														  skip_pixels[p],
+														  skip_rows[r],
+														  subcuboid_w,
+														  subcuboid_h,
+														  m_glsl_version));
+			}
+		}
+	}
+
+	tcu::TestCaseGroup* texImage3DGroup = new tcu::TestCaseGroup(m_testCtx,
+																 "teximage3d",
+																 "glTexImage3D cases");
+	addChild(texImage3DGroup);
+
+	for (int fmts = 0; fmts < DE_LENGTH_OF_ARRAY(internalFmts); fmts++)
+	{
+		tcu::TestCaseGroup* formatsGroup = new tcu::TestCaseGroup(m_testCtx,
+																  internalFmts[fmts].name,
+																  "");
+		texImage3DGroup->addChild(formatsGroup);
+		int bw = 1;
+		int bh = 1;
+		int bd = 1;
+		int skip_pixels[3] =
+			{ 0, bw, bw * (subcuboid_w / (2 * bw)) };
+		int skip_rows[3] =
+			{ 0, bh, bh * (subcuboid_h / (2 * bh)) };
+		int skip_images[3] =
+			{ 0, bd, bd * (subcuboid_d / (2 * bd)) };
+
+		for (int i = 0; i < 3; i++)
+		{
+			for (int r = i; r < 3; r++)
+			{
+				for (int p = r; p < 3; p++)
+				{
+					std::string skip_name =
+						std::to_string(skip_pixels[p]) +
+						"_" +
+						std::to_string(skip_rows[r]) +
+						"_" +
+						std::to_string(skip_images[i]);
+					std::string skip_desc =
+						"Skip " +
+						std::to_string(skip_pixels[p]) +
+						" pixels, " +
+						std::to_string(skip_rows[r]) +
+						" rows, and " +
+						std::to_string(skip_images[i]) +
+						" images";
+					formatsGroup->addChild(new TexImage3DCase(m_context,
+															  skip_name.c_str(),
+															  skip_desc.c_str(),
+															  internalFmts[fmts].internalFmt,
+															  cuboid_w,
+															  cuboid_h,
+															  cuboid_d,
+															  skip_pixels[p],
+															  skip_rows[r],
+															  skip_images[i],
+															  subcuboid_w,
+															  subcuboid_h,
+															  subcuboid_d,
+															  m_glsl_version));
+				}
+			}
+		}
+	}
+
+	if (!glu::isContextTypeES(m_context.getRenderContext().getType()))
+	{
+		tcu::TestCaseGroup* compressedTexImage2DGroup =
+			new tcu::TestCaseGroup(m_testCtx,
+								   "compressedteximage2d",
+								   "glCompressedTexImage2D cases");
+		addChild(compressedTexImage2DGroup);
+
+		for (int fmts = 0; fmts < DE_LENGTH_OF_ARRAY(internalFmts_compressed); fmts++)
+		{
+			tcu::TestCaseGroup* formatsGroup
+				= new tcu::TestCaseGroup(m_testCtx,
+										 internalFmts_compressed[fmts].name,
+										 "");
+			compressedTexImage2DGroup->addChild(formatsGroup);
+			int bw = internalFmts_compressed[fmts].bw;
+			int bh = internalFmts_compressed[fmts].bh;
+			int skip_pixels[4] =
+				{ 0, bw, bw * (subcuboid_w / (2 * bw)), bw * (subcuboid_w / bw) };
+			int skip_rows[4] =
+				{ 0, bh, bh * (subcuboid_h / (2 * bh)), bh * (subcuboid_h / bh) };
+			for (int r = 0; r < 4; r++)
+			{
+				for (int p = 0; p < 4; p++)
+				{
+					std::string skip_name =
+						std::to_string(skip_pixels[p]) +
+						"_" +
+						std::to_string(skip_rows[r]);
+					std::string skip_desc =
+						"Skip " +
+						std::to_string(skip_pixels[p]) +
+						" pixels and " +
+						std::to_string(skip_rows[r]) +
+						" rows";
+					formatsGroup->addChild(new CompressedTexImage2DCase(
+											  m_context,
+											  skip_name.c_str(),
+											  skip_desc.c_str(),
+											  internalFmts_compressed[fmts].internalFmt,
+											  cuboid_w,
+											  cuboid_h,
+											  skip_pixels[p],
+											  skip_rows[r],
+											  subcuboid_w,
+											  subcuboid_h,
+											  m_glsl_version));
+				}
+			}
+		}
+
+		tcu::TestCaseGroup* compressedTexImage3DGroup =
+			new tcu::TestCaseGroup(m_testCtx,
+								   "compressedteximage3d",
+								   "glCompressedTexImage3D cases");
+		addChild(compressedTexImage3DGroup);
+
+		for (int fmts = 0; fmts < DE_LENGTH_OF_ARRAY(internalFmts_compressed); fmts++)
+		{
+			tcu::TestCaseGroup* formatsGroup
+				= new tcu::TestCaseGroup(m_testCtx,
+										 internalFmts_compressed[fmts].name,
+										 "");
+			compressedTexImage3DGroup->addChild(formatsGroup);
+			int bw = internalFmts_compressed[fmts].bw;
+			int bh = internalFmts_compressed[fmts].bh;
+			int bd = internalFmts_compressed[fmts].bd;
+			int skip_pixels[4] =
+				{ 0, bw, bw * (subcuboid_w / (2 * bw)), bw * (subcuboid_w / bw) };
+			int skip_rows[4] =
+				{ 0, bh, bh * (subcuboid_h / (2 * bh)), bh * (subcuboid_h / bh) };
+			int skip_images[4] =
+				{ 0, bd, bd * (subcuboid_d / (2 * bd)), bd * (subcuboid_d / bd) };
+			for (int i = 0; i < 4; i++)
+			{
+				for (int r = 0; r < 4; r++)
+				{
+					for (int p = 0; p < 4; p++)
+					{
+						std::string skip_name =
+							std::to_string(skip_pixels[p]) +
+							"_" +
+							std::to_string(skip_rows[r]) +
+							"_" +
+							std::to_string(skip_images[i]);
+						std::string skip_desc =
+							"Skip " +
+							std::to_string(skip_pixels[p]) +
+							" pixels, " +
+							std::to_string(skip_rows[r]) +
+							" rows, and " +
+							std::to_string(skip_images[i]) +
+							" images";
+						formatsGroup->addChild(new CompressedTexImage3DCase(
+												  m_context,
+												  skip_name.c_str(),
+												  skip_desc.c_str(),
+												  internalFmts_compressed[fmts].internalFmt,
+												  cuboid_w,
+												  cuboid_h,
+												  cuboid_d,
+												  skip_pixels[p],
+												  skip_rows[r],
+												  skip_images[i],
+												  subcuboid_w,
+												  subcuboid_h,
+												  subcuboid_d,
+												  m_glsl_version));
+					}
+				}
+			}
+		}
+	}
+}
+
+} /* namespace glcts */
diff --git a/external/openglcts/modules/common/glcPixelStorageModesTests.hpp b/external/openglcts/modules/common/glcPixelStorageModesTests.hpp
new file mode 100644
index 0000000..830e0666
--- /dev/null
+++ b/external/openglcts/modules/common/glcPixelStorageModesTests.hpp
@@ -0,0 +1,52 @@
+#ifndef _GLCPIXELSTORAGEMODESTESTS_HPP
+#define _GLCPIXELSTORAGEMODESTESTS_HPP
+
+/*-------------------------------------------------------------------------
+* OpenGL Conformance Test Suite
+* -----------------------------
+*
+* Copyright (c) 2020 The Khronos Group Inc.
+* Copyright (c) 2020 Intel Corporation
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*      http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*/ /*!
+* \file  glcPixelStorageModesTests.hpp
+* \brief Conformance tests for usage of pixel storage modes
+*/ /*-------------------------------------------------------------------*/
+
+#include "glcTestCase.hpp"
+#include "gluShaderUtil.hpp"
+#include "glwDefs.hpp"
+#include "tcuDefs.hpp"
+
+namespace glcts
+{
+	class PixelStorageModesTests : public deqp::TestCaseGroup
+{
+public:
+	PixelStorageModesTests	(deqp::Context& context, glu::GLSLVersion glsl_version);
+	~PixelStorageModesTests	(void);
+
+	glu::GLSLVersion m_glsl_version;
+
+	void init (void);
+private:
+
+	PixelStorageModesTests (const PixelStorageModesTests& other);
+	PixelStorageModesTests& operator= (const PixelStorageModesTests& other);
+};
+
+} // glcts
+
+#endif // _GLCPIXELSTORAGEMODESTESTS_HPP
diff --git a/external/openglcts/modules/common/glcShaderLibraryCase.hpp b/external/openglcts/modules/common/glcShaderLibraryCase.hpp
index b6d0469..f00a7a8 100644
--- a/external/openglcts/modules/common/glcShaderLibraryCase.hpp
+++ b/external/openglcts/modules/common/glcShaderLibraryCase.hpp
@@ -93,7 +93,6 @@
 		ValueBlock(void)
 		{
 			arrayLength = 0;
-			values.empty();
 		}
 	};
 
diff --git a/external/openglcts/modules/common/glcSingleConfigTestPackage.cpp b/external/openglcts/modules/common/glcSingleConfigTestPackage.cpp
index b677311..24d2583 100644
--- a/external/openglcts/modules/common/glcSingleConfigTestPackage.cpp
+++ b/external/openglcts/modules/common/glcSingleConfigTestPackage.cpp
@@ -28,6 +28,7 @@
 #include "glwEnums.hpp"
 #include "glwFunctions.hpp"
 #include "tcuTestLog.hpp"
+#include "tcuWaiverUtil.hpp"
 
 #include "subgroups/glcSubgroupsTests.hpp"
 
@@ -37,7 +38,7 @@
 class TestCaseWrapper : public tcu::TestCaseExecutor
 {
 public:
-	TestCaseWrapper(SingleConfigTestPackage& package);
+	TestCaseWrapper(SingleConfigTestPackage& package, de::SharedPtr<tcu::WaiverUtil> waiverMechanism);
 	~TestCaseWrapper(void);
 
 	void init(tcu::TestCase* testCase, const std::string& path);
@@ -46,9 +47,12 @@
 
 private:
 	SingleConfigTestPackage& m_testPackage;
+	de::SharedPtr<tcu::WaiverUtil> m_waiverMechanism;
 };
 
-TestCaseWrapper::TestCaseWrapper(SingleConfigTestPackage& package) : m_testPackage(package)
+TestCaseWrapper::TestCaseWrapper(SingleConfigTestPackage& package, de::SharedPtr<tcu::WaiverUtil> waiverMechanism)
+	: m_testPackage(package)
+	, m_waiverMechanism(waiverMechanism)
 {
 }
 
@@ -56,8 +60,11 @@
 {
 }
 
-void TestCaseWrapper::init(tcu::TestCase* testCase, const std::string&)
+void TestCaseWrapper::init(tcu::TestCase* testCase, const std::string& path)
 {
+	if (m_waiverMechanism->isOnWaiverList(path))
+		throw tcu::TestException("Waived test", QP_TEST_RESULT_WAIVER);
+
 	testCase->init();
 }
 
@@ -134,7 +141,7 @@
 
 tcu::TestCaseExecutor* SingleConfigTestPackage::createExecutor(void) const
 {
-	return new TestCaseWrapper(const_cast<SingleConfigTestPackage&>(*this));
+	return new TestCaseWrapper(const_cast<SingleConfigTestPackage&>(*this), m_waiverMechanism);
 }
 
 } // glcts
diff --git a/external/openglcts/modules/common/glcSpirvUtils.cpp b/external/openglcts/modules/common/glcSpirvUtils.cpp
index d5c8dc9..aff5e73 100644
--- a/external/openglcts/modules/common/glcSpirvUtils.cpp
+++ b/external/openglcts/modules/common/glcSpirvUtils.cpp
@@ -59,7 +59,7 @@
 {
 	static const EShLanguage stageMap[] = {
 		EShLangVertex, EShLangFragment, EShLangGeometry, EShLangTessControl, EShLangTessEvaluation, EShLangCompute,
-		EShLangRayGenNV, EShLangAnyHitNV, EShLangClosestHitNV, EShLangMissNV, EShLangIntersectNV, EShLangCallableNV
+		EShLangRayGen, EShLangAnyHit, EShLangClosestHit, EShLangMiss, EShLangIntersect, EShLangCallable
 	};
 
 	return de::getSizedArrayElement<glu::SHADERTYPE_LAST>(stageMap, type);
diff --git a/external/openglcts/modules/common/glcTestPackage.cpp b/external/openglcts/modules/common/glcTestPackage.cpp
index fc7078c..ca7bb1f 100644
--- a/external/openglcts/modules/common/glcTestPackage.cpp
+++ b/external/openglcts/modules/common/glcTestPackage.cpp
@@ -23,12 +23,18 @@
  */ /*-------------------------------------------------------------------*/
 
 #include "glcTestPackage.hpp"
+#include "gluContextInfo.hpp"
+#include "tcuTestLog.hpp"
+#include "tcuCommandLine.hpp"
+#include "tcuWaiverUtil.hpp"
+#include "glwEnums.hpp"
 
 namespace deqp
 {
 
 PackageContext::PackageContext(tcu::TestContext& testCtx, glu::ContextType renderContextType)
-	: m_context(testCtx, renderContextType), m_caseWrapper(m_context)
+	: m_context			(testCtx, renderContextType)
+	, m_caseWrapper		(m_context)
 {
 }
 
@@ -38,10 +44,11 @@
 
 TestPackage::TestPackage(tcu::TestContext& testCtx, const char* name, const char* description,
 						 glu::ContextType renderContextType, const char* resourcesPath)
-	: tcu::TestPackage(testCtx, name, description)
-	, m_renderContextType(renderContextType)
-	, m_packageCtx(DE_NULL)
-	, m_archive(testCtx.getRootArchive(), resourcesPath)
+	: tcu::TestPackage		(testCtx, name, description)
+	, m_waiverMechanism		(new tcu::WaiverUtil)
+	, m_renderContextType	(renderContextType)
+	, m_packageCtx			(DE_NULL)
+	, m_archive				(testCtx.getRootArchive(), resourcesPath)
 {
 }
 
@@ -58,6 +65,19 @@
 	{
 		// Create context
 		m_packageCtx = new PackageContext(m_testCtx, m_renderContextType);
+
+		// Setup waiver mechanism
+		if (m_testCtx.getCommandLine().getRunMode() == tcu::RUNMODE_EXECUTE)
+		{
+			Context&				context		= m_packageCtx->getContext();
+			const glu::ContextInfo&	contextInfo = context.getContextInfo();
+			std::string				vendor		= contextInfo.getString(GL_VENDOR);
+			std::string				renderer	= contextInfo.getString(GL_RENDERER);
+			const tcu::CommandLine&	commandLine	= context.getTestContext().getCommandLine();
+			tcu::SessionInfo		sessionInfo	(vendor, renderer, commandLine.getInitialCmdLine());
+			m_waiverMechanism->setup(commandLine.getWaiverFileName(), m_name, vendor, renderer, sessionInfo);
+			context.getTestContext().getLog().writeSessionInfo(sessionInfo.get());
+		}
 	}
 	catch (...)
 	{
diff --git a/external/openglcts/modules/common/glcTestPackage.hpp b/external/openglcts/modules/common/glcTestPackage.hpp
index 9170788..2e96ec7 100644
--- a/external/openglcts/modules/common/glcTestPackage.hpp
+++ b/external/openglcts/modules/common/glcTestPackage.hpp
@@ -29,6 +29,12 @@
 #include "tcuDefs.hpp"
 #include "tcuResource.hpp"
 #include "tcuTestPackage.hpp"
+#include "deSharedPtr.hpp"
+
+namespace tcu
+{
+	class WaiverUtil;
+};
 
 namespace deqp
 {
@@ -77,14 +83,16 @@
 		return m_packageCtx->getContext();
 	}
 
+protected:
+	de::SharedPtr<tcu::WaiverUtil> m_waiverMechanism;
+
 private:
 	TestPackage(const TestPackage& other);
 	TestPackage& operator=(const TestPackage& other);
 
-	glu::ContextType m_renderContextType;
-
-	PackageContext*		m_packageCtx;
-	tcu::ResourcePrefix m_archive;
+	glu::ContextType				m_renderContextType;
+	PackageContext*					m_packageCtx;
+	tcu::ResourcePrefix				m_archive;
 };
 
 } // deqp
diff --git a/external/openglcts/modules/common/glcTextureFilterAnisotropicTests.cpp b/external/openglcts/modules/common/glcTextureFilterAnisotropicTests.cpp
index 5020479..8580bdd 100644
--- a/external/openglcts/modules/common/glcTextureFilterAnisotropicTests.cpp
+++ b/external/openglcts/modules/common/glcTextureFilterAnisotropicTests.cpp
@@ -524,8 +524,8 @@
 			if (!result)
 			{
 				// Stop loops
-				iTarget = m_supportedTargets.size();
-				iFormat = m_supportedInternalFormats.size();
+				iTarget = static_cast<deUint32>(m_supportedTargets.size());
+				iFormat = static_cast<deUint32>(m_supportedInternalFormats.size());
 			}
 		}
 	}
diff --git a/external/openglcts/modules/gl/gl3cTestPackages.cpp b/external/openglcts/modules/gl/gl3cTestPackages.cpp
index 6b3146c..154d44a 100644
--- a/external/openglcts/modules/gl/gl3cTestPackages.cpp
+++ b/external/openglcts/modules/gl/gl3cTestPackages.cpp
@@ -33,6 +33,7 @@
 #include "gl3cTransformFeedbackOverflowQueryTests.hpp"
 #include "gl3cTransformFeedbackTests.hpp"
 #include "gl4cPipelineStatisticsQueryTests.hpp"
+#include "glcPixelStorageModesTests.hpp"
 #include "glcFragDepthTests.hpp"
 #include "glcInfoTests.hpp"
 #include "glcPackedDepthStencilTests.hpp"
@@ -46,8 +47,10 @@
 #include "glcShaderSwitchTests.hpp"
 #include "glcTextureRepeatModeTests.hpp"
 #include "glcUniformBlockTests.hpp"
+#include "glcNearestEdgeTests.hpp"
 #include "gluStateReset.hpp"
 #include "tcuTestLog.hpp"
+#include "tcuWaiverUtil.hpp"
 
 #include "../glesext/texture_shadow_lod/esextcTextureShadowLodFunctionsTest.hpp"
 
@@ -57,7 +60,7 @@
 class TestCaseWrapper : public tcu::TestCaseExecutor
 {
 public:
-	TestCaseWrapper(GL30TestPackage& package);
+	TestCaseWrapper(GL30TestPackage& package, de::SharedPtr<tcu::WaiverUtil> waiverMechanism);
 	~TestCaseWrapper(void);
 
 	void init(tcu::TestCase* testCase, const std::string& path);
@@ -65,10 +68,13 @@
 	tcu::TestNode::IterateResult iterate(tcu::TestCase* testCase);
 
 private:
-	GL30TestPackage& m_testPackage;
+	GL30TestPackage&				m_testPackage;
+	de::SharedPtr<tcu::WaiverUtil>	m_waiverMechanism;
 };
 
-TestCaseWrapper::TestCaseWrapper(GL30TestPackage& package) : m_testPackage(package)
+TestCaseWrapper::TestCaseWrapper(GL30TestPackage& package, de::SharedPtr<tcu::WaiverUtil> waiverMechanism)
+	: m_testPackage			(package)
+	, m_waiverMechanism		(waiverMechanism)
 {
 }
 
@@ -76,8 +82,11 @@
 {
 }
 
-void TestCaseWrapper::init(tcu::TestCase* testCase, const std::string&)
+void TestCaseWrapper::init(tcu::TestCase* testCase, const std::string& path)
 {
+	if (m_waiverMechanism->isOnWaiverList(path))
+		throw tcu::TestException("Waived test", QP_TEST_RESULT_WAIVER);
+
 	testCase->init();
 }
 
@@ -174,7 +183,7 @@
 
 tcu::TestCaseExecutor* GL30TestPackage::createExecutor(void) const
 {
-	return new TestCaseWrapper(const_cast<GL30TestPackage&>(*this));
+	return new TestCaseWrapper(const_cast<GL30TestPackage&>(*this), m_waiverMechanism);
 }
 
 // GL31TestPackage
@@ -293,6 +302,8 @@
 		addChild(new glcts::PipelineStatisticsQueryTests(getContext()));
 		addChild(new glcts::CullDistance::Tests(getContext()));
 		addChild(new gl3cts::TextureSwizzleTests(getContext()));
+		addChild(new glcts::NearestEdgeCases(getContext()));
+		addChild(new glcts::PixelStorageModesTests(getContext(), glu::GLSL_VERSION_330));
 	}
 	catch (...)
 	{
diff --git a/external/openglcts/modules/gl/gl3cTextureSizePromotion.cpp b/external/openglcts/modules/gl/gl3cTextureSizePromotion.cpp
index 3ee4b09..884c603 100644
--- a/external/openglcts/modules/gl/gl3cTextureSizePromotion.cpp
+++ b/external/openglcts/modules/gl/gl3cTextureSizePromotion.cpp
@@ -129,7 +129,7 @@
 						{
 							prepareSourceTexture(s_formats[i], s_source_texture_targets[j]);
 						}
-						catch (tcu::NotSupportedError& e)
+						catch (tcu::NotSupportedError&)
 						{
 							continue;
 						}
diff --git a/external/openglcts/modules/gl/gl4cComputeShaderTests.cpp b/external/openglcts/modules/gl/gl4cComputeShaderTests.cpp
index f645242..dd77f27 100644
--- a/external/openglcts/modules/gl/gl4cComputeShaderTests.cpp
+++ b/external/openglcts/modules/gl/gl4cComputeShaderTests.cpp
@@ -69,9 +69,9 @@
 		if (pixelFormat.redBits != 0 && pixelFormat.greenBits != 0 && pixelFormat.blueBits != 0 &&
 			pixelFormat.alphaBits != 0)
 		{
-			g_color_eps = vec4(1.f / ((float)(1 << pixelFormat.redBits) - 1.0f),
-							   1.f / ((float)(1 << pixelFormat.greenBits) - 1.0f),
-							   1.f / ((float)(1 << pixelFormat.blueBits) - 1.0f),
+			g_color_eps = vec4(1.f / ((float)(1 << deMin32(8, pixelFormat.redBits)) - 1.0f),
+							   1.f / ((float)(1 << deMin32(8, pixelFormat.greenBits)) - 1.0f),
+							   1.f / ((float)(1 << deMin32(8, pixelFormat.blueBits)) - 1.0f),
 							   1.f / ((float)(1 << pixelFormat.alphaBits) - 1.0f)) +
 						  vec4(epsilon_zero);
 		}
diff --git a/external/openglcts/modules/gl/gl4cDirectStateAccessTexturesTests.cpp b/external/openglcts/modules/gl/gl4cDirectStateAccessTexturesTests.cpp
index 4ba81bd..7b9737e 100644
--- a/external/openglcts/modules/gl/gl4cDirectStateAccessTexturesTests.cpp
+++ b/external/openglcts/modules/gl/gl4cDirectStateAccessTexturesTests.cpp
@@ -8622,7 +8622,7 @@
 		{
 			gl.textureBuffer(texture_1D, GL_RGBA8, buffer);
 
-			is_ok &= CheckErrorAndLog(m_context, GL_INVALID_ENUM, "glTextureBuffer",
+			is_ok &= CheckErrorAndLog(m_context, GL_INVALID_OPERATION, "glTextureBuffer",
 									  "the effective target of texture is not TEXTURE_BUFFER.");
 		}
 
@@ -8775,7 +8775,7 @@
 		{
 			gl.textureBufferRange(texture_1D, GL_RGBA8, buffer, 0, data_size);
 
-			is_ok &= CheckErrorAndLog(m_context, GL_INVALID_ENUM, "glTextureBufferRange",
+			is_ok &= CheckErrorAndLog(m_context, GL_INVALID_OPERATION, "glTextureBufferRange",
 									  "the effective target of texture is not TEXTURE_BUFFER.");
 		}
 
@@ -12138,7 +12138,7 @@
 	{
 		gl.textureParameterf(m_to_2D_ms, GL_TEXTURE_LOD_BIAS, 1.f);
 
-		is_ok &= CheckErrorAndLog(m_context, GL_INVALID_ENUM, "glTextureParameterf",
+		is_ok &= CheckErrorAndLog(m_context, GL_INVALID_OPERATION, "glTextureParameterf",
 								  "the  effective target is either TEXTURE_2D_MULTISAMPLE or  "
 								  "TEXTURE_2D_MULTISAMPLE_ARRAY, and pname is any of the sampler states.");
 	}
@@ -12266,7 +12266,7 @@
 	{
 		gl.textureParameteri(m_to_2D_ms, GL_TEXTURE_LOD_BIAS, 1);
 
-		is_ok &= CheckErrorAndLog(m_context, GL_INVALID_ENUM, "glTextureParameteri",
+		is_ok &= CheckErrorAndLog(m_context, GL_INVALID_OPERATION, "glTextureParameteri",
 								  "the  effective target is either TEXTURE_2D_MULTISAMPLE or  "
 								  "TEXTURE_2D_MULTISAMPLE_ARRAY, and pname is any of the sampler states.");
 	}
@@ -12390,7 +12390,7 @@
 	{
 		gl.textureParameterfv(m_to_2D_ms, GL_TEXTURE_LOD_BIAS, &one);
 
-		is_ok &= CheckErrorAndLog(m_context, GL_INVALID_ENUM, "glTextureParameterfv",
+		is_ok &= CheckErrorAndLog(m_context, GL_INVALID_OPERATION, "glTextureParameterfv",
 								  "the  effective target is either TEXTURE_2D_MULTISAMPLE or  "
 								  "TEXTURE_2D_MULTISAMPLE_ARRAY, and pname is any of the sampler states.");
 	}
@@ -12514,7 +12514,7 @@
 	{
 		gl.textureParameteriv(m_to_2D_ms, GL_TEXTURE_LOD_BIAS, &one);
 
-		is_ok &= CheckErrorAndLog(m_context, GL_INVALID_ENUM, "glTextureParameteriv",
+		is_ok &= CheckErrorAndLog(m_context, GL_INVALID_OPERATION, "glTextureParameteriv",
 								  "the  effective target is either TEXTURE_2D_MULTISAMPLE or  "
 								  "TEXTURE_2D_MULTISAMPLE_ARRAY, and pname is any of the sampler states.");
 	}
diff --git a/external/openglcts/modules/gl/gl4cGlSpirvTests.cpp b/external/openglcts/modules/gl/gl4cGlSpirvTests.cpp
index 0c02d82..f7e3751 100644
--- a/external/openglcts/modules/gl/gl4cGlSpirvTests.cpp
+++ b/external/openglcts/modules/gl/gl4cGlSpirvTests.cpp
@@ -104,7 +104,7 @@
 	}
 
 	binary.binary.resize((resource->getSize() - resource->getPosition()) / sizeof(deUint32));
-	resource->read((deUint8*)binary.binary.data(), binary.binary.size() * sizeof(deUint32));
+	resource->read((deUint8*)binary.binary.data(), static_cast<deUint32>(binary.binary.size()) * sizeof(deUint32));
 
 	return binary;
 }
@@ -793,7 +793,7 @@
 
 	// 4) Check if ShaderSource command usage on Spir-V binary shader will change SPIR_V_BINARY_ARB state to FALSE
 	const char* source = m_vertex.c_str();
-	const int   length = m_vertex.length();
+	const int   length = static_cast<int>(m_vertex.length());
 	gl.shaderSource(shader->getShader(), 1, &source, &length);
 	GLU_EXPECT_NO_ERROR(gl.getError(), "shaderSource");
 
@@ -881,7 +881,7 @@
 	const Functions& gl = m_context.getRenderContext().getFunctions();
 
 	const char* shaderSrc = m_vertex.c_str();
-	const int   shaderLen = m_vertex.length();
+	const int   shaderLen = static_cast<int>(m_vertex.length());
 
 	ShaderBinary vertexBinary;
 
@@ -891,7 +891,7 @@
 	GLU_EXPECT_NO_ERROR(gl.getError(), "shaderSource");
 
 	gl.shaderBinary(1, &m_spirvShaderId, GL_SHADER_BINARY_FORMAT_SPIR_V_ARB, (GLvoid*)vertexBinary.binary.data(),
-					vertexBinary.binary.size() * sizeof(deUint32));
+					static_cast<deUint32>(vertexBinary.binary.size()) * sizeof(deUint32));
 	GLU_EXPECT_NO_ERROR(gl.getError(), "shaderBinary");
 
 	gl.attachShader(m_programId, m_spirvShaderId);
diff --git a/external/openglcts/modules/gl/gl4cShaderBallotTests.cpp b/external/openglcts/modules/gl/gl4cShaderBallotTests.cpp
index 1e46e64..3949547 100644
--- a/external/openglcts/modules/gl/gl4cShaderBallotTests.cpp
+++ b/external/openglcts/modules/gl/gl4cShaderBallotTests.cpp
@@ -198,7 +198,7 @@
 
 unsigned int ShaderBallotBaseTestCase::ShaderPipeline::getShaderPartsCount(glu::ShaderType shaderType) const
 {
-	return m_shaders[shaderType].size();
+	return static_cast<unsigned int>(m_shaders[shaderType].size());
 }
 
 void ShaderBallotBaseTestCase::ShaderPipeline::renderQuad(deqp::Context& context)
diff --git a/external/openglcts/modules/gl/gl4cTestPackages.cpp b/external/openglcts/modules/gl/gl4cTestPackages.cpp
index dfb4cd2..79fdc11 100644
--- a/external/openglcts/modules/gl/gl4cTestPackages.cpp
+++ b/external/openglcts/modules/gl/gl4cTestPackages.cpp
@@ -84,6 +84,7 @@
 #include "glcShaderMultisampleInterpolationTests.hpp"
 #include "glcTextureFilterAnisotropicTests.hpp"
 #include "glcViewportArrayTests.hpp"
+#include "glcPixelStorageModesTests.hpp"
 
 #include "../gles31/es31cArrayOfArraysTests.hpp"
 #include "../gles31/es31cDrawIndirectTests.hpp"
diff --git a/external/openglcts/modules/gl/gl4cTextureGatherTests.cpp b/external/openglcts/modules/gl/gl4cTextureGatherTests.cpp
index 3d3f748..b79c65f 100644
--- a/external/openglcts/modules/gl/gl4cTextureGatherTests.cpp
+++ b/external/openglcts/modules/gl/gl4cTextureGatherTests.cpp
@@ -59,8 +59,8 @@
 
 	TGBase() : renderTarget(m_context.getRenderContext().getRenderTarget()), pixelFormat(renderTarget.getPixelFormat())
 	{
-		g_color_eps = Vec4(1.f / (float)(1 << pixelFormat.redBits), 1.f / (float)(1 << pixelFormat.greenBits),
-						   1.f / (float)(1 << pixelFormat.blueBits), 1.f / (float)(1 << pixelFormat.alphaBits));
+		g_color_eps = Vec4(1.f / (float)(1 << deMin32(8, pixelFormat.redBits)), 1.f / (float)(1 << deMin32(8, pixelFormat.greenBits)),
+						   1.f / (float)(1 << deMin32(8, pixelFormat.blueBits)), 1.f / (float)(1 << pixelFormat.alphaBits));
 	}
 
 	const tcu::RenderTarget& renderTarget;
diff --git a/external/openglcts/modules/gles2/es2cTestPackage.cpp b/external/openglcts/modules/gles2/es2cTestPackage.cpp
index d6421b0..2ff3317 100644
--- a/external/openglcts/modules/gles2/es2cTestPackage.cpp
+++ b/external/openglcts/modules/gles2/es2cTestPackage.cpp
@@ -33,6 +33,7 @@
 #include "glwEnums.hpp"
 #include "glwFunctions.hpp"
 #include "tcuTestLog.hpp"
+#include "tcuWaiverUtil.hpp"
 
 namespace es2cts
 {
@@ -40,7 +41,7 @@
 class TestCaseWrapper : public tcu::TestCaseExecutor
 {
 public:
-	TestCaseWrapper(TestPackage& package);
+	TestCaseWrapper(TestPackage& package, de::SharedPtr<tcu::WaiverUtil> waiverMechanism);
 	~TestCaseWrapper(void);
 
 	void init(tcu::TestCase* testCase, const std::string& path);
@@ -49,9 +50,12 @@
 
 private:
 	es2cts::TestPackage& m_testPackage;
+	de::SharedPtr<tcu::WaiverUtil> m_waiverMechanism;
 };
 
-TestCaseWrapper::TestCaseWrapper(TestPackage& package) : m_testPackage(package)
+TestCaseWrapper::TestCaseWrapper(TestPackage& package, de::SharedPtr<tcu::WaiverUtil> waiverMechanism)
+	: m_testPackage(package)
+	, m_waiverMechanism(waiverMechanism)
 {
 }
 
@@ -59,8 +63,11 @@
 {
 }
 
-void TestCaseWrapper::init(tcu::TestCase* testCase, const std::string&)
+void TestCaseWrapper::init(tcu::TestCase* testCase, const std::string& path)
 {
+	if (m_waiverMechanism->isOnWaiverList(path))
+		throw tcu::TestException("Waived test", QP_TEST_RESULT_WAIVER);
+
 	glu::resetState(m_testPackage.getContext().getRenderContext(), m_testPackage.getContext().getContextInfo());
 
 	testCase->init();
@@ -156,7 +163,7 @@
 
 tcu::TestCaseExecutor* TestPackage::createExecutor(void) const
 {
-	return new TestCaseWrapper(const_cast<TestPackage&>(*this));
+	return new TestCaseWrapper(const_cast<TestPackage&>(*this), m_waiverMechanism);
 }
 
 } // es2cts
diff --git a/external/openglcts/modules/gles2/es2cTestPackage.hpp b/external/openglcts/modules/gles2/es2cTestPackage.hpp
index a310a2c..7a0639e 100644
--- a/external/openglcts/modules/gles2/es2cTestPackage.hpp
+++ b/external/openglcts/modules/gles2/es2cTestPackage.hpp
@@ -30,6 +30,14 @@
 #ifndef _GLCTESTPACKAGE_HPP
 #include "glcTestPackage.hpp"
 #endif
+#ifndef _DESHAREDPTR_HPP
+#include "deSharedPtr.hpp"
+#endif
+
+namespace tcu
+{
+	class WaiverUtil;
+};
 
 namespace es2cts
 {
diff --git a/external/openglcts/modules/gles2/es2cTexture3DTests.cpp b/external/openglcts/modules/gles2/es2cTexture3DTests.cpp
index 5b7e123..4220464 100644
--- a/external/openglcts/modules/gles2/es2cTexture3DTests.cpp
+++ b/external/openglcts/modules/gles2/es2cTexture3DTests.cpp
@@ -1021,6 +1021,21 @@
 	return STOP;
 }
 
+void checkFormatSupport(const glu::ContextInfo& info, deUint32 format)
+{
+	if (glu::isCompressedFormat(format))
+	{
+		if (isAstcFormat(glu::mapGLCompressedTexFormat(format)))
+		{
+			if (!info.isExtensionSupported("GL_KHR_texture_compression_astc_hdr") &&
+				!info.isExtensionSupported("GL_OES_texture_compression_astc"))
+			{
+				TCU_THROW(NotSupportedError, "requires HDR astc support.");
+			}
+		}
+	}
+}
+
 class CompressedTexture3DCase : public Texture3DBase
 {
 public:
@@ -1052,6 +1067,8 @@
 		return STOP;
 	}
 
+	checkFormatSupport(contextInfo, m_compressedFormat);
+
 	const deInt32 width		  = 64;
 	const deInt32 height	  = 64;
 	const deInt32 depth		  = 4;
@@ -1622,6 +1639,7 @@
 		return STOP;
 
 	const glw::Functions& gl = m_context.getRenderContext().getFunctions();
+	const glu::ContextInfo&  contextInfo = m_context.getContextInfo();
 
 	std::set<int> supportedFormats;
 	getSupportedCompressedFormats(supportedFormats);
@@ -1633,7 +1651,7 @@
 	}
 
 	GLenum supportedCompressedFormat = static_cast<GLenum>(*(supportedFormats.begin()));
-
+	checkFormatSupport(contextInfo, supportedCompressedFormat);
 	m_testCtx.setTestResult(QP_TEST_RESULT_PASS, "Pass");
 
 	// negative usage
@@ -1753,6 +1771,7 @@
 		return STOP;
 
 	const glw::Functions& gl = m_context.getRenderContext().getFunctions();
+	const glu::ContextInfo&  contextInfo = m_context.getContextInfo();
 
 	std::set<int> supportedFormats;
 	getSupportedCompressedFormats(supportedFormats);
@@ -1767,6 +1786,8 @@
 	int	textureSize				 = 16;
 	int	dataSize					 = calculateDataSize(supportedCompressedFormat, textureSize, textureSize, 1);
 
+	checkFormatSupport(contextInfo, supportedCompressedFormat);
+
 	m_testCtx.setTestResult(QP_TEST_RESULT_PASS, "Pass");
 
 	// negative level
diff --git a/external/openglcts/modules/gles3/es3cTestPackage.cpp b/external/openglcts/modules/gles3/es3cTestPackage.cpp
index 4d007f5..1971b09 100644
--- a/external/openglcts/modules/gles3/es3cTestPackage.cpp
+++ b/external/openglcts/modules/gles3/es3cTestPackage.cpp
@@ -44,10 +44,12 @@
 #include "glcTextureFilterAnisotropicTests.hpp"
 #include "glcTextureRepeatModeTests.hpp"
 #include "glcUniformBlockTests.hpp"
+#include "glcNearestEdgeTests.hpp"
 #include "gluStateReset.hpp"
 #include "glwEnums.hpp"
 #include "glwFunctions.hpp"
 #include "tcuTestLog.hpp"
+#include "tcuWaiverUtil.hpp"
 
 namespace es3cts
 {
@@ -55,7 +57,7 @@
 class TestCaseWrapper : public tcu::TestCaseExecutor
 {
 public:
-	TestCaseWrapper(ES30TestPackage& package);
+	TestCaseWrapper(ES30TestPackage& package, de::SharedPtr<tcu::WaiverUtil> waiverMechanism);
 	~TestCaseWrapper(void);
 
 	void init(tcu::TestCase* testCase, const std::string& path);
@@ -64,9 +66,11 @@
 
 private:
 	ES30TestPackage& m_testPackage;
+	de::SharedPtr<tcu::WaiverUtil> m_waiverMechanism;
 };
 
-TestCaseWrapper::TestCaseWrapper(ES30TestPackage& package) : m_testPackage(package)
+TestCaseWrapper::TestCaseWrapper(ES30TestPackage& package, de::SharedPtr<tcu::WaiverUtil> waiverMechanism)
+	: m_testPackage(package), m_waiverMechanism(waiverMechanism)
 {
 }
 
@@ -74,8 +78,11 @@
 {
 }
 
-void TestCaseWrapper::init(tcu::TestCase* testCase, const std::string&)
+void TestCaseWrapper::init(tcu::TestCase* testCase, const std::string& path)
 {
+	if (m_waiverMechanism->isOnWaiverList(path))
+		throw tcu::TestException("Waived test", QP_TEST_RESULT_WAIVER);
+
 	glu::resetState(m_testPackage.getContext().getRenderContext(), m_testPackage.getContext().getContextInfo());
 
 	testCase->init();
@@ -174,6 +181,7 @@
 		coreGroup->addChild(new glcts::ShaderConstExprTests(getContext()));
 		coreGroup->addChild(new glcts::ShaderMacroTests(getContext()));
 		coreGroup->addChild(new glcts::InternalformatTests(getContext()));
+		coreGroup->addChild(new glcts::NearestEdgeCases(getContext()));
 		addChild(coreGroup);
 		addChild(new glcts::ParallelShaderCompileTests(getContext()));
 		addChild(new glcts::PackedPixelsTests(getContext()));
@@ -190,7 +198,7 @@
 
 tcu::TestCaseExecutor* ES30TestPackage::createExecutor(void) const
 {
-	return new TestCaseWrapper(const_cast<ES30TestPackage&>(*this));
+	return new TestCaseWrapper(const_cast<ES30TestPackage&>(*this), m_waiverMechanism);
 }
 
 } // es3cts
diff --git a/external/openglcts/modules/gles3/es3cTestPackage.hpp b/external/openglcts/modules/gles3/es3cTestPackage.hpp
index def8500..9b6f369 100644
--- a/external/openglcts/modules/gles3/es3cTestPackage.hpp
+++ b/external/openglcts/modules/gles3/es3cTestPackage.hpp
@@ -26,6 +26,12 @@
 
 #include "glcTestPackage.hpp"
 #include "tcuDefs.hpp"
+#include "deSharedPtr.hpp"
+
+namespace tcu
+{
+	class WaiverUtil;
+};
 
 namespace es3cts
 {
diff --git a/external/openglcts/modules/gles31/es31cArrayOfArraysTests.cpp b/external/openglcts/modules/gles31/es31cArrayOfArraysTests.cpp
index 2ef6ea0..5aab150 100644
--- a/external/openglcts/modules/gles31/es31cArrayOfArraysTests.cpp
+++ b/external/openglcts/modules/gles31/es31cArrayOfArraysTests.cpp
@@ -7176,9 +7176,6 @@
 				shader_source += "    " + var_iterator->second.type +
 								 invalid_size_declarations[invalid_size_declarations_index] +
 								 " my_variable = " + array_initializers[var_type_index];
-
-				var_iterator->second.type + invalid_size_declarations[invalid_size_declarations_index] +
-					" my_variable = " + array_initializers[var_type_index];
 				shader_source += "};\n\n";
 				shader_source += shader_start;
 
@@ -7630,9 +7627,6 @@
 				shader_source += "    " + var_iterator->second.type +
 								 invalid_size_declarations[invalid_size_declarations_index] +
 								 " my_variable = " + array_initializers[var_type_index];
-
-				var_iterator->second.type + invalid_size_declarations[invalid_size_declarations_index] +
-					" my_variable = " + array_initializers[var_type_index];
 				shader_source += "};\n\n";
 				shader_source += shader_start;
 
diff --git a/external/openglcts/modules/gles31/es31cLayoutBindingTests.cpp b/external/openglcts/modules/gles31/es31cLayoutBindingTests.cpp
index 4b8aef4..e4fc84c 100644
--- a/external/openglcts/modules/gles31/es31cLayoutBindingTests.cpp
+++ b/external/openglcts/modules/gles31/es31cLayoutBindingTests.cpp
@@ -2476,9 +2476,9 @@
 		{
 			bool		 passed = true;
 			StringStream s;
-			s << buildAccess(getDefaultUniformName()) << ";\n";
-			s << "+" << buildAccess(getDefaultUniformName(1)) << ";\n";
-			s << "+" << buildAccess(getDefaultUniformName(2)) << ";\n";
+			s << buildAccess(getDefaultUniformName()) << "\n";
+			s << "+" << buildAccess(getDefaultUniformName(1)) << "\n";
+			s << "+" << buildAccess(getDefaultUniformName(2)) << "\n";
 			s << "+" << buildAccess(getDefaultUniformName(3)) << ";\n";
 			setTemplateParam("UNIFORM_ACCESS", s.str());
 
@@ -2571,10 +2571,16 @@
 				bool passed = true;
 
 				StringStream s;
-				s << buildAccess(getDefaultUniformName()) << ";\n";
-				s << "+" << buildAccess(getDefaultUniformName(1)) << ";\n";
+				s << buildAccess(getDefaultUniformName()) << "\n";
 				if (pass)
+				{
+					s << "+" << buildAccess(getDefaultUniformName(1)) << "\n";
 					s << "+" << buildAccess(getDefaultUniformName(2)) << ";\n";
+				}
+				else
+				{
+					s << "+" << buildAccess(getDefaultUniformName(1)) << ";\n";
+				}
 				setTemplateParam("UNIFORM_ACCESS", s.str());
 
 				s.reset();
@@ -2613,10 +2619,16 @@
 				bool passed = true;
 
 				StringStream s;
-				s << buildAccess(getDefaultUniformName()) << ";\n";
-				s << "+" << buildAccess(getDefaultUniformName(1)) << ";\n";
+				s << buildAccess(getDefaultUniformName()) << "\n";
 				if (pass)
+				{
+					s << "+" << buildAccess(getDefaultUniformName(1)) << "\n";
 					s << "+" << buildAccess(getDefaultUniformName(2)) << ";\n";
+				}
+				else
+				{
+					s << "+" << buildAccess(getDefaultUniformName(1)) << ";\n";
+				}
 				setTemplateParam("UNIFORM_ACCESS", s.str());
 
 				s.reset();
@@ -2687,9 +2699,9 @@
 		{
 			bool		 passed = true;
 			StringStream s;
-			s << buildAccess(getDefaultUniformName()) << ";\n";
-			s << "+" << buildAccess(getDefaultUniformName(1)) << ";\n";
-			s << "+" << buildAccess(getDefaultUniformName(2)) << ";\n";
+			s << buildAccess(getDefaultUniformName()) << "\n";
+			s << "+" << buildAccess(getDefaultUniformName(1)) << "\n";
+			s << "+" << buildAccess(getDefaultUniformName(2)) << "\n";
 			s << "+" << buildAccess(getDefaultUniformName(3)) << ";\n";
 			setTemplateParam("UNIFORM_ACCESS", s.str());
 
@@ -2780,9 +2792,16 @@
 			bool passed = true;
 
 			StringStream s;
-			s << buildAccess(getDefaultUniformName()) << ";\n";
+
 			if (pass)
+			{
+				s << buildAccess(getDefaultUniformName()) << "\n";
 				s << "+" << buildAccess(getDefaultUniformName(1)) << ";\n";
+			}
+			else
+			{
+				s << buildAccess(getDefaultUniformName()) << ";\n";
+			}
 			setTemplateParam("UNIFORM_ACCESS", s.str());
 
 			s.reset();
@@ -2817,9 +2836,15 @@
 			bool passed = true;
 
 			StringStream s;
-			s << buildAccess(getDefaultUniformName()) << ";\n";
 			if (pass)
+			{
+				s << buildAccess(getDefaultUniformName()) << "\n";
 				s << "+" << buildAccess(getDefaultUniformName(1)) << ";\n";
+			}
+			else
+			{
+				s << buildAccess(getDefaultUniformName()) << ";\n";
+			}
 			setTemplateParam("UNIFORM_ACCESS", s.str());
 
 			s.reset();
diff --git a/external/openglcts/modules/gles31/es31cShaderAtomicCountersTests.cpp b/external/openglcts/modules/gles31/es31cShaderAtomicCountersTests.cpp
index d8995eb..1da88d4 100644
--- a/external/openglcts/modules/gles31/es31cShaderAtomicCountersTests.cpp
+++ b/external/openglcts/modules/gles31/es31cShaderAtomicCountersTests.cpp
@@ -722,8 +722,8 @@
 		if (ptr != map_pointer_)
 		{
 			m_context.getTestContext().getLog()
-				<< tcu::TestLog::Message << "BUFFER_MAP_POINTER is " << reinterpret_cast<long>(static_cast<int*>(ptr))
-				<< " should be " << reinterpret_cast<long>(static_cast<int*>(map_pointer_)) << tcu::TestLog::EndMessage;
+				<< tcu::TestLog::Message << "BUFFER_MAP_POINTER is " << reinterpret_cast<deUintptr>(static_cast<int*>(ptr))
+				<< " should be " << reinterpret_cast<deUintptr>(static_cast<int*>(map_pointer_)) << tcu::TestLog::EndMessage;
 			return ERROR;
 		}
 		return NO_ERROR;
diff --git a/external/openglcts/modules/gles31/es31cTestPackage.cpp b/external/openglcts/modules/gles31/es31cTestPackage.cpp
index b2ce1fd..4d3c0a4 100644
--- a/external/openglcts/modules/gles31/es31cTestPackage.cpp
+++ b/external/openglcts/modules/gles31/es31cTestPackage.cpp
@@ -55,8 +55,13 @@
 #include "glcShaderMacroTests.hpp"
 #include "glcShaderMultisampleInterpolationTests.hpp"
 #include "glcShaderNegativeTests.hpp"
+#include "glcNearestEdgeTests.hpp"
 
 #include "gluStateReset.hpp"
+#include "gluContextInfo.hpp"
+#include "tcuCommandLine.hpp"
+#include "tcuWaiverUtil.hpp"
+#include "glwEnums.hpp"
 
 #include "../glesext/draw_buffers_indexed/esextcDrawBuffersIndexedTests.hpp"
 #include "../glesext/geometry_shader/esextcGeometryShaderTests.hpp"
@@ -66,6 +71,7 @@
 #include "../glesext/texture_buffer/esextcTextureBufferTests.hpp"
 #include "../glesext/texture_cube_map_array/esextcTextureCubeMapArrayTests.hpp"
 #include "glcViewportArrayTests.hpp"
+#include "glcPixelStorageModesTests.hpp"
 
 namespace es31cts
 {
@@ -73,7 +79,7 @@
 class TestCaseWrapper : public tcu::TestCaseExecutor
 {
 public:
-	TestCaseWrapper(ES31TestPackage& package);
+	TestCaseWrapper(ES31TestPackage& package, de::SharedPtr<tcu::WaiverUtil> waiverMechanism);
 	~TestCaseWrapper(void);
 
 	void init(tcu::TestCase* testCase, const std::string& path);
@@ -82,9 +88,11 @@
 
 private:
 	ES31TestPackage& m_testPackage;
+	de::SharedPtr<tcu::WaiverUtil> m_waiverMechanism;
 };
 
-TestCaseWrapper::TestCaseWrapper(ES31TestPackage& package) : m_testPackage(package)
+TestCaseWrapper::TestCaseWrapper(ES31TestPackage& package, de::SharedPtr<tcu::WaiverUtil> waiverMechanism)
+	: m_testPackage(package), m_waiverMechanism(waiverMechanism)
 {
 }
 
@@ -92,8 +100,11 @@
 {
 }
 
-void TestCaseWrapper::init(tcu::TestCase* testCase, const std::string&)
+void TestCaseWrapper::init(tcu::TestCase* testCase, const std::string& path)
 {
+	if (m_waiverMechanism->isOnWaiverList(path))
+		throw tcu::TestException("Waived test", QP_TEST_RESULT_WAIVER);
+
 	glu::resetState(m_testPackage.getContext().getRenderContext(), m_testPackage.getContext().getContextInfo());
 
 	testCase->init();
@@ -201,6 +212,7 @@
 		coreGroup->addChild(new glcts::PolygonOffsetClamp(getContext()));
 		coreGroup->addChild(new glcts::ShaderGroupVote(getContext()));
 		coreGroup->addChild(new glcts::InternalformatTests(getContext()));
+		coreGroup->addChild(new glcts::NearestEdgeCases(getContext()));
 
 		glcts::ExtParameters extParams(glu::GLSL_VERSION_310_ES, glcts::EXTENSIONTYPE_OES);
 		coreGroup->addChild(new glcts::GeometryShaderTests(getContext(), extParams));
@@ -211,6 +223,7 @@
 		coreGroup->addChild(new glcts::TextureBufferTests(getContext(), extParams));
 		coreGroup->addChild(new glcts::DrawBuffersIndexedTests(getContext(), extParams));
 		coreGroup->addChild(new glcts::ViewportArrayTests(getContext(), extParams));
+		coreGroup->addChild(new glcts::PixelStorageModesTests(getContext(), glu::GLSL_VERSION_310_ES));
 
 		addChild(coreGroup);
 
@@ -226,7 +239,7 @@
 
 tcu::TestCaseExecutor* ES31TestPackage::createExecutor(void) const
 {
-	return new TestCaseWrapper(const_cast<ES31TestPackage&>(*this));
+	return new TestCaseWrapper(const_cast<ES31TestPackage&>(*this), m_waiverMechanism);
 }
 
 } // es31cts
diff --git a/external/openglcts/modules/gles32/es32cTestPackage.cpp b/external/openglcts/modules/gles32/es32cTestPackage.cpp
index 4d2b939..ab4fd0e 100644
--- a/external/openglcts/modules/gles32/es32cTestPackage.cpp
+++ b/external/openglcts/modules/gles32/es32cTestPackage.cpp
@@ -40,10 +40,12 @@
 #include "glcShaderStructTests.hpp"
 #include "glcShaderSwitchTests.hpp"
 #include "glcUniformBlockTests.hpp"
+#include "glcNearestEdgeTests.hpp"
 #include "gluStateReset.hpp"
 #include "glwEnums.hpp"
 #include "glwFunctions.hpp"
 #include "tcuTestLog.hpp"
+#include "tcuWaiverUtil.hpp"
 
 #include "../glesext/draw_buffers_indexed/esextcDrawBuffersIndexedTests.hpp"
 #include "../glesext/geometry_shader/esextcGeometryShaderTests.hpp"
@@ -60,7 +62,7 @@
 class TestCaseWrapper : public tcu::TestCaseExecutor
 {
 public:
-	TestCaseWrapper(ES32TestPackage& package);
+	TestCaseWrapper(ES32TestPackage& package, de::SharedPtr<tcu::WaiverUtil> waiverMechanism);
 	~TestCaseWrapper(void);
 
 	void init(tcu::TestCase* testCase, const std::string& path);
@@ -68,10 +70,13 @@
 	tcu::TestNode::IterateResult iterate(tcu::TestCase* testCase);
 
 private:
-	ES32TestPackage& m_testPackage;
+	ES32TestPackage&				m_testPackage;
+	de::SharedPtr<tcu::WaiverUtil>	m_waiverMechanism;
 };
 
-TestCaseWrapper::TestCaseWrapper(ES32TestPackage& package) : m_testPackage(package)
+TestCaseWrapper::TestCaseWrapper(ES32TestPackage& package, de::SharedPtr<tcu::WaiverUtil> waiverMechanism)
+	: m_testPackage		(package)
+	, m_waiverMechanism	(waiverMechanism)
 {
 }
 
@@ -79,8 +84,11 @@
 {
 }
 
-void TestCaseWrapper::init(tcu::TestCase* testCase, const std::string&)
+void TestCaseWrapper::init(tcu::TestCase* testCase, const std::string& path)
 {
+	if (m_waiverMechanism->isOnWaiverList(path))
+		throw tcu::TestException("Waived test", QP_TEST_RESULT_WAIVER);
+
 	testCase->init();
 }
 
@@ -167,6 +175,7 @@
 		coreGroup->addChild(new glcts::CopyImageTests(getContext()));
 		coreGroup->addChild(new glcts::InternalformatTests(getContext()));
 		coreGroup->addChild(new deqp::Functional::TextureShadowLodTest(getContext()));
+		coreGroup->addChild(new glcts::NearestEdgeCases(getContext()));
 		addChild(coreGroup);
 	}
 	catch (...)
@@ -179,7 +188,7 @@
 
 tcu::TestCaseExecutor* ES32TestPackage::createExecutor(void) const
 {
-	return new TestCaseWrapper(const_cast<ES32TestPackage&>(*this));
+	return new TestCaseWrapper(const_cast<ES32TestPackage&>(*this), m_waiverMechanism);
 }
 
 } // es32cts
diff --git a/external/openglcts/modules/glesext/esextcTestPackage.cpp b/external/openglcts/modules/glesext/esextcTestPackage.cpp
index 87f65e4..4e507c5 100644
--- a/external/openglcts/modules/glesext/esextcTestPackage.cpp
+++ b/external/openglcts/modules/glesext/esextcTestPackage.cpp
@@ -36,6 +36,7 @@
 #include "glcViewportArrayTests.hpp"
 #include "gluStateReset.hpp"
 #include "tcuTestLog.hpp"
+#include "tcuWaiverUtil.hpp"
 
 namespace esextcts
 {
@@ -43,7 +44,7 @@
 class TestCaseWrapper : public tcu::TestCaseExecutor
 {
 public:
-	TestCaseWrapper(ESEXTTestPackage& package);
+	TestCaseWrapper(ESEXTTestPackage& package, de::SharedPtr<tcu::WaiverUtil> waiverMechanism);
 	~TestCaseWrapper(void);
 
 	void init(tcu::TestCase* testCase, const std::string& path);
@@ -52,9 +53,11 @@
 
 private:
 	ESEXTTestPackage& m_testPackage;
+	de::SharedPtr<tcu::WaiverUtil> m_waiverMechanism;
 };
 
-TestCaseWrapper::TestCaseWrapper(ESEXTTestPackage& package) : m_testPackage(package)
+TestCaseWrapper::TestCaseWrapper(ESEXTTestPackage& package, de::SharedPtr<tcu::WaiverUtil> waiverMechanism)
+	: m_testPackage(package), m_waiverMechanism(waiverMechanism)
 {
 }
 
@@ -62,8 +65,11 @@
 {
 }
 
-void TestCaseWrapper::init(tcu::TestCase* testCase, const std::string&)
+void TestCaseWrapper::init(tcu::TestCase* testCase, const std::string& path)
 {
+	if (m_waiverMechanism->isOnWaiverList(path))
+		throw tcu::TestException("Waived test", QP_TEST_RESULT_WAIVER);
+
 	glu::resetState(m_testPackage.getContext().getRenderContext(), m_testPackage.getContext().getContextInfo());
 
 	testCase->init();
@@ -149,7 +155,7 @@
 
 tcu::TestCaseExecutor* ESEXTTestPackage::createExecutor(void) const
 {
-	return new TestCaseWrapper(const_cast<ESEXTTestPackage&>(*this));
+	return new TestCaseWrapper(const_cast<ESEXTTestPackage&>(*this), m_waiverMechanism);
 }
 
 } // esextcts
diff --git a/external/openglcts/modules/glesext/esextcTestPackage.hpp b/external/openglcts/modules/glesext/esextcTestPackage.hpp
index 3302d8d..8aa8032 100644
--- a/external/openglcts/modules/glesext/esextcTestPackage.hpp
+++ b/external/openglcts/modules/glesext/esextcTestPackage.hpp
@@ -28,6 +28,12 @@
 #include "glcTestCase.hpp"
 #include "glcTestPackage.hpp"
 #include "tcuDefs.hpp"
+#include "deSharedPtr.hpp"
+
+namespace tcu
+{
+class WaiverUtil;
+};
 
 namespace esextcts
 {
diff --git a/external/openglcts/modules/runner/CMakeLists.txt b/external/openglcts/modules/runner/CMakeLists.txt
index 0acc033..dde879f 100644
--- a/external/openglcts/modules/runner/CMakeLists.txt
+++ b/external/openglcts/modules/runner/CMakeLists.txt
@@ -7,6 +7,10 @@
 	add_definitions(-DDEQP_SUPPORT_X11=1)
 endif ()
 
+if (DEQP_SUPPORT_WGL)
+	add_definitions(-DDEQP_SUPPORT_WGL=1)
+endif ()
+
 if (DE_OS_IS_ANDROID)
 	include_directories(${PROJECT_SOURCE_DIR}/framework/platform/android)
 
diff --git a/external/openglcts/modules/runner/glcAospMustpassEs.hpp b/external/openglcts/modules/runner/glcAospMustpassEs.hpp
index 2a00fe9..8ff4fef 100644
--- a/external/openglcts/modules/runner/glcAospMustpassEs.hpp
+++ b/external/openglcts/modules/runner/glcAospMustpassEs.hpp
@@ -37,9 +37,9 @@
 	{ glu::ApiType::es(3, 0), "rotate-reverse-landscape", "rgba8888d24s8ms0", "270", -1, DE_NULL, 256, 256 },
 #endif // DE_OS == DE_OS_ANDROID
 	{ glu::ApiType::es(3, 0), "multisample", "rgba8888d24s8ms4", "unspecified", -1, DE_NULL, 256, 256 },
-#ifndef DEQP_SUPPORT_X11
+#if DE_OS == DE_OS_ANDROID
 	{ glu::ApiType::es(3, 0), "565-no-depth-no-stencil", "rgb565d0s0ms0", "unspecified", -1, DE_NULL, 256, 256 },
-#endif // DEQP_SUPPORT_X11
+#endif // DE_OS == DE_OS_ANDROID
 	{ glu::ApiType::es(3, 1), "master", "rgba8888d24s8ms0", "unspecified", -1, DE_NULL, 256, 256 },
 #if DE_OS == DE_OS_ANDROID
 	{ glu::ApiType::es(3, 1), "rotate-portrait", "rgba8888d24s8ms0", "0", -1, DE_NULL, 256, 256 },
@@ -54,9 +54,9 @@
 	{ glu::ApiType::es(3, 1), "rotate-reverse-landscape", "rgba8888d24s8ms0", "270", -1, DE_NULL, 256, 256 },
 #endif // DE_OS == DE_OS_ANDROID
 	{ glu::ApiType::es(3, 1), "multisample", "rgba8888d24s8ms4", "unspecified", -1, DE_NULL, 256, 256 },
-#ifndef DEQP_SUPPORT_X11
+#if DE_OS == DE_OS_ANDROID
 	{ glu::ApiType::es(3, 1), "565-no-depth-no-stencil", "rgb565d0s0ms0", "unspecified", -1, DE_NULL, 256, 256 },
-#endif // DEQP_SUPPORT_X11
+#endif // DE_OS == DE_OS_ANDROID
 };
 
 #endif // _GLCAOSPMUSTPASSES_HPP
diff --git a/external/openglcts/modules/runner/glcTestRunner.cpp b/external/openglcts/modules/runner/glcTestRunner.cpp
index e5423d8..a151312 100644
--- a/external/openglcts/modules/runner/glcTestRunner.cpp
+++ b/external/openglcts/modules/runner/glcTestRunner.cpp
@@ -48,9 +48,11 @@
 public:
 	RunSession(tcu::Platform& platform, tcu::Archive& archive, const int numArgs, const char* const* args)
 		: m_cmdLine(numArgs, args)
-		, m_log(m_cmdLine.getLogFileName(), (numArgs - 1), (char**)(args + 1), m_cmdLine.getLogFlags())
+		, m_log(m_cmdLine.getLogFileName(), m_cmdLine.getLogFlags())
 		, m_app(platform, archive, m_log, m_cmdLine)
 	{
+		const std::string sessionInfo = "#sessionInfo commandLineParameters \"";
+		m_log.writeSessionInfo(sessionInfo + m_cmdLine.getInitialCmdLine() + "\"\n");
 	}
 
 	inline bool iterate(void)
diff --git a/external/openglcts/scripts/build_mustpass.py b/external/openglcts/scripts/build_mustpass.py
index 9795860..217a735 100644
--- a/external/openglcts/scripts/build_mustpass.py
+++ b/external/openglcts/scripts/build_mustpass.py
@@ -166,7 +166,7 @@
 					rotation		= "unspecified",
 					surfacewidth	= "256",
 					surfaceheight	= "256",
-					skip			= "x11",
+					os				= "android",
 					filters			= [include("gles3-master.txt"),
 									   include("gles3-pixelformat.txt"),
 									   exclude("gles3-pixelformat-issues.txt")]),
@@ -223,7 +223,7 @@
 					rotation		= "unspecified",
 					surfacewidth	= "256",
 					surfaceheight	= "256",
-					skip			= "x11",
+					os				= "android",
 					filters			= [include("gles31-master.txt"), include("gles31-pixelformat.txt")]),
 	])
 
@@ -319,7 +319,7 @@
 					rotation	= "unspecified",
 					surfacewidth	= "256",
 					surfaceheight	= "256",
-					skip			= "x11",
+					os				= "android",
 					filters		= GLCTS_3_2_3_GLES3_COMMON_FILTERS + [include("gles3-pixelformat.txt")]),
 
 	])
@@ -387,7 +387,7 @@
 					rotation	= "unspecified",
 					surfacewidth	= "256",
 					surfaceheight	= "256",
-					skip			= "x11",
+					os				= "android",
 					filters		= GLCTS_3_2_3_GLES31_COMMON_FILTERS + [include("gles31-pixelformat.txt")]),
 	])
 
@@ -524,7 +524,7 @@
 					rotation	= "unspecified",
 					surfacewidth	= "256",
 					surfaceheight	= "256",
-					skip			= "x11",
+					os				= "android",
 					filters		= MASTER_GLES3_COMMON_FILTERS + [include("gles3-pixelformat.txt")]),
 	])
 MASTER_GLES31_COMMON_FILTERS             = [
@@ -586,7 +586,7 @@
 					rotation	= "unspecified",
 					surfacewidth	= "256",
 					surfaceheight	= "256",
-					skip			= "x11",
+					os				= "android",
 					filters		= MASTER_GLES31_COMMON_FILTERS + [include("gles31-pixelformat.txt")]),
 	])
 
@@ -1074,13 +1074,13 @@
 GL_CTS_KHR_SINGLE_PROJECT			= Project(name = "Khronos Mustpass GL Single Config", path = GL_CTS_KHR_MP_SINGLE_DATA_DIR, incpath = GL_CTS_MP_INC_DIR, devicepath = GL_CTS_KHR_MP_SINGLE_DEVICE_DIR, copyright = COPYRIGHT_DECLARATION)
 
 GL_MODULES							= OrderedDict([
-			('KHR-GL46',		['master',		[include('gl46-master.txt'), exclude('gl46-test-issues.txt'), exclude('gl46-waivers.txt')]]),
-			('KHR-GL45',		['master',		[include('gl45-master.txt'), exclude('gl45-test-issues.txt'), exclude('gl45-waivers.txt')]]),
-			('KHR-GL44',		['master',		[include('gl44-master.txt'), exclude('gl44-test-issues.txt'), exclude('gl44-waivers.txt')]]),
-			('KHR-GL43',		['master',		[include('gl43-master.txt'), exclude('gl43-test-issues.txt'), exclude('gl43-waivers.txt')]]),
-			('KHR-GL42',		['master',		[include('gl42-master.txt'), exclude('gl42-test-issues.txt'), exclude('gl42-waivers.txt')]]),
-			('KHR-GL41',		['master',		[include('gl41-master.txt'), exclude('gl41-test-issues.txt'), exclude('gl41-waivers.txt')]]),
-			('KHR-GL40',		['master',		[include('gl40-master.txt'), exclude('gl40-test-issues.txt'), exclude('gl40-waivers.txt')]]),
+			('KHR-GL46',		['master',		[include('gl46-master.txt'), exclude('gl46-test-issues.txt')]]),
+			('KHR-GL45',		['master',		[include('gl45-master.txt'), exclude('gl45-test-issues.txt')]]),
+			('KHR-GL44',		['master',		[include('gl44-master.txt'), exclude('gl44-test-issues.txt')]]),
+			('KHR-GL43',		['master',		[include('gl43-master.txt'), exclude('gl43-test-issues.txt')]]),
+			('KHR-GL42',		['master',		[include('gl42-master.txt'), exclude('gl42-test-issues.txt')]]),
+			('KHR-GL41',		['master',		[include('gl41-master.txt'), exclude('gl41-test-issues.txt')]]),
+			('KHR-GL40',		['master',		[include('gl40-master.txt'), exclude('gl40-test-issues.txt')]]),
 			('KHR-GL33',		['master',		[include('gl33-master.txt'), exclude('gl33-test-issues.txt')]]),
 			('KHR-GL32',		['master',		[include('gl32-master.txt'), exclude('gl32-test-issues.txt')]]),
 			('KHR-GL31',		['master',		[include('gl31-master.txt'), exclude('gl31-test-issues.txt')]]),
diff --git a/external/vulkancts/README.md b/external/vulkancts/README.md
index b1f120a..e6e841a 100644
--- a/external/vulkancts/README.md
+++ b/external/vulkancts/README.md
@@ -28,15 +28,15 @@
 
 ### Android
 
- * Android NDK r15c or later.
+ * Android NDK r17c or later.
  * Android SDK with: SDK Tools, SDK Platform-tools, SDK Build-tools, and API 28
  * Java Development Kit (JDK)
  * Windows: either NMake or Ninja in PATH
 
-If you have downloaded Android SDK tools, you can install necessary components
-by running:
+If you have downloaded the Android SDK command line tools package (25.2.3 or higher) then
+you can install the necessary components by running:
 
-	tools/android update sdk --no-ui --all --filter tools,platform-tools,build-tools-25.0.2,android-28
+	tools/bin/sdkmanager tools platform-tools 'build-tools;25.0.2' 'platforms;android-28'
 
 
 Building CTS
@@ -96,12 +96,12 @@
 	python scripts/android/install_apk.py
 
 By default the CTS package will contain libdeqp.so built for armeabi-v7a, arm64-v8a,
-x86, and x86_64 ABIs, but that can be changed using --abis command line option.
+x86, and x86_64 ABIs, but that can be changed at build time by passing the --abis command line
+option to `scripts/android/build_apk.py`.
 
-To pick which ABI to use at install time, following commands must be used
-instead:
+To pick which ABI to use at _install time_, use the following command instead:
 
-	adb install --abi <ABI name> <build-root>/package/dEQP.apk /data/local/tmp/dEQP-debug.apk
+	adb install -g --abi <ABI name> <build-root>/package/dEQP.apk
 
 
 Building Mustpass
@@ -165,6 +165,11 @@
 
 	--deqp-fraction-mandatory-caselist-file=<vulkancts>external/vulkancts/mustpass/master/vk-fraction-mandatory-tests.txt
 
+To specify file containing waived tests that are omitted only by specified vendor and renderer/device
+the following command line option may be used:
+
+	--deqp-waiver-file=<path>
+
 No other command line options are allowed.
 
 ### Win32
@@ -177,7 +182,7 @@
 ### Linux
 
 	cd <builddir>/external/vulkancts/modules/vulkan
-	./deqp-vk --deqp-vk-caselist-file=...
+	./deqp-vk --deqp-caselist-file=...
 
 ### Android
 
@@ -253,7 +258,7 @@
 If the submission package covers multiple products, you can list them by appending
 additional `PRODUCT:` lines to the conformance statement. For example:
 
-	CONFORM_VERSION:         vulkan-cts-1.2.2.0
+	CONFORM_VERSION:         vulkan-cts-1.2.3.0
 	PRODUCT:                 Product A
 	PRODUCT:                 Product B
 	...
@@ -315,6 +320,7 @@
 	NotSupported
 	QualityWarning
 	CompatibilityWarning
+	Waiver
 
 Submission package can be verified using `external/vulkancts/scripts/verify_submission.py`
 script. The script takes two arguments: path to extracted submission package
@@ -362,11 +368,15 @@
 messages. Debug messages collected during test execution will be included at
 the end of the test case log.
 
+In addition, when the `--deqp-print-validation-errors` command line option is
+used, validation errors are additionally printed to standard error in the
+moment they are generated.
+
 If any validation errors are found, test result will be set to `InternalError`.
 
 By default `VK_DEBUG_REPORT_INFORMATION_BIT_EXT` and `_DEBUG_BIT_EXT` messages
 are excluded from the log, but that can be customized by modifying
-`vkt::TestCaseExecutor::deinit()` in `vktTestPackage.cpp`.
+`vk::DebugReportMessage::shouldBeLogged()` in `vkDebugReportUtil.hpp`.
 
 On the Android target, layers can be added to the APK during the build process
 by setting the `--layers-path` command line option to point into the NDK or to
diff --git a/external/vulkancts/data/vulkan/amber/combined_operations/negintdivand.amber b/external/vulkancts/data/vulkan/amber/combined_operations/negintdivand.amber
new file mode 100644
index 0000000..187a8e2
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/combined_operations/negintdivand.amber
@@ -0,0 +1,53 @@
+#!amber
+# Copyright 2020 The Amber Authors.
+# Copyright 2020 The Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+
+layout(location = 0) in vec4 position;
+layout(location = 1) out vec4 frag_color;
+
+void main() {
+  gl_Position = position;
+  frag_color = position * 0.5;
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) out vec4 color_out;
+layout(location = 1) in vec4 frag_color;
+void main() {
+  ivec2 iv = ivec2(frag_color.xy * 256);
+  if (((iv.y / 2) & 64) == 64)
+    color_out = vec4(1, 0, 0, 1);
+  else
+    color_out = vec4(0, 1, 1, 1);
+}
+END
+
+BUFFER framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics my_pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  BIND BUFFER framebuffer AS color LOCATION 0
+END
+
+RUN my_pipeline DRAW_RECT POS 0 0 SIZE 250 250
+EXPECT framebuffer IDX 0 220 SIZE 30 30 EQ_RGBA 0 255 255 255
+EXPECT framebuffer IDX 0 0 SIZE 30 30 EQ_RGBA 255 0 0 255
+
diff --git a/external/vulkancts/data/vulkan/amber/combined_operations/notxor.amber b/external/vulkancts/data/vulkan/amber/combined_operations/notxor.amber
new file mode 100644
index 0000000..9face26
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/combined_operations/notxor.amber
@@ -0,0 +1,50 @@
+#!amber
+
+# Copyright 2020 Valve Corporation.
+# Copyright 2020 The Khronos Group Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader PASSTHROUGH
+
+SHADER fragment frag_shader GLSL
+#version 450
+layout(push_constant, std430) uniform PushConstants {
+	uint op1;
+	uint op2;
+} pushConstants;
+layout(location=0) out vec4 out_color;
+void main()
+{
+	out_color = vec4(~(pushConstants.op1^pushConstants.op2));
+}
+END
+
+BUFFER framebuffer0 FORMAT B8G8R8A8_UNORM
+BUFFER push_constants DATA_TYPE uint32 STD430 DATA
+0xaaaaaaab
+0x55555555
+END
+
+PIPELINE graphics graphics_pipeline
+	ATTACH vert_shader
+	ATTACH frag_shader
+
+	FRAMEBUFFER_SIZE 16 16
+	BIND BUFFER framebuffer0 AS color LOCATION 0
+	BIND BUFFER push_constants AS push_constant
+END
+
+CLEAR graphics_pipeline
+RUN graphics_pipeline DRAW_RECT POS 0 0 SIZE 16 16
+EXPECT framebuffer0 IDX 0 0 SIZE 16 16 EQ_RGBA 255 255 255 255
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-highp-output-float.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-highp-output-float.amber
new file mode 100644
index 0000000..aae7452
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-highp-output-float.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec3 color_in[3];
+layout(location = 0) smooth out vec3 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec3 color_in[3];
+layout(location = 0) out highp float frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i].x;
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec3 color_in;
+layout(location = 0) smooth out vec3 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec3 color_in;
+layout(location = 0) out highp float frag_out;
+void main()
+{
+    frag_out = color_in.x;
+}
+END
+
+BUFFER framebuffer0 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER framebuffer1 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER framebuffer2 FORMAT B10G11R11_UFLOAT_PACK32
+
+BUFFER ref0 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER ref1 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER ref2 FORMAT B10G11R11_UFLOAT_PACK32
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+END
+
+BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+END
+
+BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-highp-output-vec2.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-highp-output-vec2.amber
new file mode 100644
index 0000000..e70eb2b
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-highp-output-vec2.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec3 color_in[3];
+layout(location = 0) smooth out vec3 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec3 color_in[3];
+layout(location = 0) out highp vec2 frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i].xy;
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec3 color_in;
+layout(location = 0) smooth out vec3 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec3 color_in;
+layout(location = 0) out highp vec2 frag_out;
+void main()
+{
+    frag_out = color_in.xy;
+}
+END
+
+BUFFER framebuffer0 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER framebuffer1 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER framebuffer2 FORMAT B10G11R11_UFLOAT_PACK32
+
+BUFFER ref0 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER ref1 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER ref2 FORMAT B10G11R11_UFLOAT_PACK32
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+END
+
+BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+END
+
+BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-highp.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-highp.amber
new file mode 100644
index 0000000..fbcd9f5
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-highp.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec3 color_in[3];
+layout(location = 0) smooth out vec3 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec3 color_in[3];
+layout(location = 0) out highp vec3 frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i];
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec3 color_in;
+layout(location = 0) smooth out vec3 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec3 color_in;
+layout(location = 0) out highp vec3 frag_out;
+void main()
+{
+    frag_out = color_in;
+}
+END
+
+BUFFER framebuffer0 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER framebuffer1 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER framebuffer2 FORMAT B10G11R11_UFLOAT_PACK32
+
+BUFFER ref0 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER ref1 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER ref2 FORMAT B10G11R11_UFLOAT_PACK32
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+END
+
+BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+END
+
+BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-lowp-output-float.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-lowp-output-float.amber
new file mode 100644
index 0000000..bd0d5ce
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-lowp-output-float.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec3 color_in[3];
+layout(location = 0) smooth out vec3 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec3 color_in[3];
+layout(location = 0) out lowp float frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i].x;
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec3 color_in;
+layout(location = 0) smooth out vec3 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec3 color_in;
+layout(location = 0) out lowp float frag_out;
+void main()
+{
+    frag_out = color_in.x;
+}
+END
+
+BUFFER framebuffer0 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER framebuffer1 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER framebuffer2 FORMAT B10G11R11_UFLOAT_PACK32
+
+BUFFER ref0 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER ref1 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER ref2 FORMAT B10G11R11_UFLOAT_PACK32
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+END
+
+BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+END
+
+BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-lowp-output-vec2.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-lowp-output-vec2.amber
new file mode 100644
index 0000000..ff63314
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-lowp-output-vec2.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec3 color_in[3];
+layout(location = 0) smooth out vec3 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec3 color_in[3];
+layout(location = 0) out lowp vec2 frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i].xy;
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec3 color_in;
+layout(location = 0) smooth out vec3 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec3 color_in;
+layout(location = 0) out lowp vec2 frag_out;
+void main()
+{
+    frag_out = color_in.xy;
+}
+END
+
+BUFFER framebuffer0 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER framebuffer1 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER framebuffer2 FORMAT B10G11R11_UFLOAT_PACK32
+
+BUFFER ref0 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER ref1 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER ref2 FORMAT B10G11R11_UFLOAT_PACK32
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+END
+
+BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+END
+
+BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-lowp.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-lowp.amber
new file mode 100644
index 0000000..9b02cb9
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-lowp.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec3 color_in[3];
+layout(location = 0) smooth out vec3 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec3 color_in[3];
+layout(location = 0) out lowp vec3 frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i];
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec3 color_in;
+layout(location = 0) smooth out vec3 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec3 color_in;
+layout(location = 0) out lowp vec3 frag_out;
+void main()
+{
+    frag_out = color_in;
+}
+END
+
+BUFFER framebuffer0 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER framebuffer1 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER framebuffer2 FORMAT B10G11R11_UFLOAT_PACK32
+
+BUFFER ref0 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER ref1 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER ref2 FORMAT B10G11R11_UFLOAT_PACK32
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+END
+
+BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+END
+
+BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-mediump-output-float.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-mediump-output-float.amber
new file mode 100644
index 0000000..62c1559
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-mediump-output-float.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec3 color_in[3];
+layout(location = 0) smooth out vec3 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec3 color_in[3];
+layout(location = 0) out mediump float frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i].x;
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec3 color_in;
+layout(location = 0) smooth out vec3 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec3 color_in;
+layout(location = 0) out mediump float frag_out;
+void main()
+{
+    frag_out = color_in.x;
+}
+END
+
+BUFFER framebuffer0 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER framebuffer1 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER framebuffer2 FORMAT B10G11R11_UFLOAT_PACK32
+
+BUFFER ref0 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER ref1 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER ref2 FORMAT B10G11R11_UFLOAT_PACK32
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+END
+
+BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+END
+
+BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-mediump-output-vec2.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-mediump-output-vec2.amber
new file mode 100644
index 0000000..f45a265
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-mediump-output-vec2.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec3 color_in[3];
+layout(location = 0) smooth out vec3 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec3 color_in[3];
+layout(location = 0) out mediump vec2 frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i].xy;
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec3 color_in;
+layout(location = 0) smooth out vec3 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec3 color_in;
+layout(location = 0) out mediump vec2 frag_out;
+void main()
+{
+    frag_out = color_in.xy;
+}
+END
+
+BUFFER framebuffer0 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER framebuffer1 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER framebuffer2 FORMAT B10G11R11_UFLOAT_PACK32
+
+BUFFER ref0 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER ref1 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER ref2 FORMAT B10G11R11_UFLOAT_PACK32
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+END
+
+BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+END
+
+BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-mediump.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-mediump.amber
new file mode 100644
index 0000000..6625674
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b10g11r11-ufloat-pack32-mediump.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec3 color_in[3];
+layout(location = 0) smooth out vec3 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec3 color_in[3];
+layout(location = 0) out mediump vec3 frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i];
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec3 color_in;
+layout(location = 0) smooth out vec3 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec3 color_in;
+layout(location = 0) out mediump vec3 frag_out;
+void main()
+{
+    frag_out = color_in;
+}
+END
+
+BUFFER framebuffer0 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER framebuffer1 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER framebuffer2 FORMAT B10G11R11_UFLOAT_PACK32
+
+BUFFER ref0 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER ref1 FORMAT B10G11R11_UFLOAT_PACK32
+BUFFER ref2 FORMAT B10G11R11_UFLOAT_PACK32
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+END
+
+BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+END
+
+BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-highp-output-vec2.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-highp-output-vec2.amber
new file mode 100644
index 0000000..c58c617
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-highp-output-vec2.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in[3];
+layout(location = 0) smooth out vec4 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in[3];
+layout(location = 0) out highp vec2 frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i].xy;
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in;
+layout(location = 0) smooth out vec4 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in;
+layout(location = 0) out highp vec2 frag_out;
+void main()
+{
+    frag_out = color_in.xy;
+}
+END
+
+BUFFER framebuffer0 FORMAT B8G8R8A8_UNORM
+BUFFER framebuffer1 FORMAT B8G8R8A8_UNORM
+BUFFER framebuffer2 FORMAT B8G8R8A8_UNORM
+
+BUFFER ref0 FORMAT B8G8R8A8_UNORM
+BUFFER ref1 FORMAT B8G8R8A8_UNORM
+BUFFER ref2 FORMAT B8G8R8A8_UNORM
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE B8G8R8A8_UNORM DATA
+255   0   0 255
+  0 255   0 255
+  0   0 255 255
+255 255   0 255
+END
+
+BUFFER color1 DATA_TYPE B8G8R8A8_UNORM DATA
+  0 255   0 255
+  0   0 255 255
+255 255   0 255
+255   0   0 255
+END
+
+BUFFER color2 DATA_TYPE B8G8R8A8_UNORM DATA
+  0   0 255 255
+255 255   0 255
+255   0   0 255
+  0 255   0 255
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-highp-output-vec3.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-highp-output-vec3.amber
new file mode 100644
index 0000000..d0b5d13
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-highp-output-vec3.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in[3];
+layout(location = 0) smooth out vec4 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in[3];
+layout(location = 0) out highp vec3 frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i].xyz;
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in;
+layout(location = 0) smooth out vec4 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in;
+layout(location = 0) out highp vec3 frag_out;
+void main()
+{
+    frag_out = color_in.xyz;
+}
+END
+
+BUFFER framebuffer0 FORMAT B8G8R8A8_UNORM
+BUFFER framebuffer1 FORMAT B8G8R8A8_UNORM
+BUFFER framebuffer2 FORMAT B8G8R8A8_UNORM
+
+BUFFER ref0 FORMAT B8G8R8A8_UNORM
+BUFFER ref1 FORMAT B8G8R8A8_UNORM
+BUFFER ref2 FORMAT B8G8R8A8_UNORM
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE B8G8R8A8_UNORM DATA
+255   0   0 255
+  0 255   0 255
+  0   0 255 255
+255 255   0 255
+END
+
+BUFFER color1 DATA_TYPE B8G8R8A8_UNORM DATA
+  0 255   0 255
+  0   0 255 255
+255 255   0 255
+255   0   0 255
+END
+
+BUFFER color2 DATA_TYPE B8G8R8A8_UNORM DATA
+  0   0 255 255
+255 255   0 255
+255   0   0 255
+  0 255   0 255
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-highp.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-highp.amber
new file mode 100644
index 0000000..429f3ad
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-highp.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in[3];
+layout(location = 0) smooth out vec4 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in[3];
+layout(location = 0) out highp vec4 frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i];
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in;
+layout(location = 0) smooth out vec4 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in;
+layout(location = 0) out highp vec4 frag_out;
+void main()
+{
+    frag_out = color_in;
+}
+END
+
+BUFFER framebuffer0 FORMAT B8G8R8A8_UNORM
+BUFFER framebuffer1 FORMAT B8G8R8A8_UNORM
+BUFFER framebuffer2 FORMAT B8G8R8A8_UNORM
+
+BUFFER ref0 FORMAT B8G8R8A8_UNORM
+BUFFER ref1 FORMAT B8G8R8A8_UNORM
+BUFFER ref2 FORMAT B8G8R8A8_UNORM
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE B8G8R8A8_UNORM DATA
+255   0   0 255
+  0 255   0 255
+  0   0 255 255
+255 255   0 255
+END
+
+BUFFER color1 DATA_TYPE B8G8R8A8_UNORM DATA
+  0 255   0 255
+  0   0 255 255
+255 255   0 255
+255   0   0 255
+END
+
+BUFFER color2 DATA_TYPE B8G8R8A8_UNORM DATA
+  0   0 255 255
+255 255   0 255
+255   0   0 255
+  0 255   0 255
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-lowp-output-vec2.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-lowp-output-vec2.amber
new file mode 100644
index 0000000..97e38af
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-lowp-output-vec2.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in[3];
+layout(location = 0) smooth out vec4 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in[3];
+layout(location = 0) out lowp vec2 frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i].xy;
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in;
+layout(location = 0) smooth out vec4 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in;
+layout(location = 0) out lowp vec2 frag_out;
+void main()
+{
+    frag_out = color_in.xy;
+}
+END
+
+BUFFER framebuffer0 FORMAT B8G8R8A8_UNORM
+BUFFER framebuffer1 FORMAT B8G8R8A8_UNORM
+BUFFER framebuffer2 FORMAT B8G8R8A8_UNORM
+
+BUFFER ref0 FORMAT B8G8R8A8_UNORM
+BUFFER ref1 FORMAT B8G8R8A8_UNORM
+BUFFER ref2 FORMAT B8G8R8A8_UNORM
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE B8G8R8A8_UNORM DATA
+255   0   0 255
+  0 255   0 255
+  0   0 255 255
+255 255   0 255
+END
+
+BUFFER color1 DATA_TYPE B8G8R8A8_UNORM DATA
+  0 255   0 255
+  0   0 255 255
+255 255   0 255
+255   0   0 255
+END
+
+BUFFER color2 DATA_TYPE B8G8R8A8_UNORM DATA
+  0   0 255 255
+255 255   0 255
+255   0   0 255
+  0 255   0 255
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-lowp-output-vec3.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-lowp-output-vec3.amber
new file mode 100644
index 0000000..d513377
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-lowp-output-vec3.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in[3];
+layout(location = 0) smooth out vec4 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in[3];
+layout(location = 0) out lowp vec3 frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i].xyz;
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in;
+layout(location = 0) smooth out vec4 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in;
+layout(location = 0) out lowp vec3 frag_out;
+void main()
+{
+    frag_out = color_in.xyz;
+}
+END
+
+BUFFER framebuffer0 FORMAT B8G8R8A8_UNORM
+BUFFER framebuffer1 FORMAT B8G8R8A8_UNORM
+BUFFER framebuffer2 FORMAT B8G8R8A8_UNORM
+
+BUFFER ref0 FORMAT B8G8R8A8_UNORM
+BUFFER ref1 FORMAT B8G8R8A8_UNORM
+BUFFER ref2 FORMAT B8G8R8A8_UNORM
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE B8G8R8A8_UNORM DATA
+255   0   0 255
+  0 255   0 255
+  0   0 255 255
+255 255   0 255
+END
+
+BUFFER color1 DATA_TYPE B8G8R8A8_UNORM DATA
+  0 255   0 255
+  0   0 255 255
+255 255   0 255
+255   0   0 255
+END
+
+BUFFER color2 DATA_TYPE B8G8R8A8_UNORM DATA
+  0   0 255 255
+255 255   0 255
+255   0   0 255
+  0 255   0 255
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-lowp.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-lowp.amber
new file mode 100644
index 0000000..909a486
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-lowp.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in[3];
+layout(location = 0) smooth out vec4 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in[3];
+layout(location = 0) out lowp vec4 frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i];
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in;
+layout(location = 0) smooth out vec4 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in;
+layout(location = 0) out lowp vec4 frag_out;
+void main()
+{
+    frag_out = color_in;
+}
+END
+
+BUFFER framebuffer0 FORMAT B8G8R8A8_UNORM
+BUFFER framebuffer1 FORMAT B8G8R8A8_UNORM
+BUFFER framebuffer2 FORMAT B8G8R8A8_UNORM
+
+BUFFER ref0 FORMAT B8G8R8A8_UNORM
+BUFFER ref1 FORMAT B8G8R8A8_UNORM
+BUFFER ref2 FORMAT B8G8R8A8_UNORM
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE B8G8R8A8_UNORM DATA
+255   0   0 255
+  0 255   0 255
+  0   0 255 255
+255 255   0 255
+END
+
+BUFFER color1 DATA_TYPE B8G8R8A8_UNORM DATA
+  0 255   0 255
+  0   0 255 255
+255 255   0 255
+255   0   0 255
+END
+
+BUFFER color2 DATA_TYPE B8G8R8A8_UNORM DATA
+  0   0 255 255
+255 255   0 255
+255   0   0 255
+  0 255   0 255
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-mediump-output-vec2.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-mediump-output-vec2.amber
new file mode 100644
index 0000000..6818bd4
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-mediump-output-vec2.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in[3];
+layout(location = 0) smooth out vec4 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in[3];
+layout(location = 0) out mediump vec2 frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i].xy;
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in;
+layout(location = 0) smooth out vec4 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in;
+layout(location = 0) out mediump vec2 frag_out;
+void main()
+{
+    frag_out = color_in.xy;
+}
+END
+
+BUFFER framebuffer0 FORMAT B8G8R8A8_UNORM
+BUFFER framebuffer1 FORMAT B8G8R8A8_UNORM
+BUFFER framebuffer2 FORMAT B8G8R8A8_UNORM
+
+BUFFER ref0 FORMAT B8G8R8A8_UNORM
+BUFFER ref1 FORMAT B8G8R8A8_UNORM
+BUFFER ref2 FORMAT B8G8R8A8_UNORM
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE B8G8R8A8_UNORM DATA
+255   0   0 255
+  0 255   0 255
+  0   0 255 255
+255 255   0 255
+END
+
+BUFFER color1 DATA_TYPE B8G8R8A8_UNORM DATA
+  0 255   0 255
+  0   0 255 255
+255 255   0 255
+255   0   0 255
+END
+
+BUFFER color2 DATA_TYPE B8G8R8A8_UNORM DATA
+  0   0 255 255
+255 255   0 255
+255   0   0 255
+  0 255   0 255
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-mediump-output-vec3.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-mediump-output-vec3.amber
new file mode 100644
index 0000000..5a0858f
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-mediump-output-vec3.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in[3];
+layout(location = 0) smooth out vec4 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in[3];
+layout(location = 0) out mediump vec3 frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i].xyz;
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in;
+layout(location = 0) smooth out vec4 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in;
+layout(location = 0) out mediump vec3 frag_out;
+void main()
+{
+    frag_out = color_in.xyz;
+}
+END
+
+BUFFER framebuffer0 FORMAT B8G8R8A8_UNORM
+BUFFER framebuffer1 FORMAT B8G8R8A8_UNORM
+BUFFER framebuffer2 FORMAT B8G8R8A8_UNORM
+
+BUFFER ref0 FORMAT B8G8R8A8_UNORM
+BUFFER ref1 FORMAT B8G8R8A8_UNORM
+BUFFER ref2 FORMAT B8G8R8A8_UNORM
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE B8G8R8A8_UNORM DATA
+255   0   0 255
+  0 255   0 255
+  0   0 255 255
+255 255   0 255
+END
+
+BUFFER color1 DATA_TYPE B8G8R8A8_UNORM DATA
+  0 255   0 255
+  0   0 255 255
+255 255   0 255
+255   0   0 255
+END
+
+BUFFER color2 DATA_TYPE B8G8R8A8_UNORM DATA
+  0   0 255 255
+255 255   0 255
+255   0   0 255
+  0 255   0 255
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-mediump.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-mediump.amber
new file mode 100644
index 0000000..ee040c1
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/b8g8r8a8-unorm-mediump.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in[3];
+layout(location = 0) smooth out vec4 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in[3];
+layout(location = 0) out mediump vec4 frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i];
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in;
+layout(location = 0) smooth out vec4 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in;
+layout(location = 0) out mediump vec4 frag_out;
+void main()
+{
+    frag_out = color_in;
+}
+END
+
+BUFFER framebuffer0 FORMAT B8G8R8A8_UNORM
+BUFFER framebuffer1 FORMAT B8G8R8A8_UNORM
+BUFFER framebuffer2 FORMAT B8G8R8A8_UNORM
+
+BUFFER ref0 FORMAT B8G8R8A8_UNORM
+BUFFER ref1 FORMAT B8G8R8A8_UNORM
+BUFFER ref2 FORMAT B8G8R8A8_UNORM
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE B8G8R8A8_UNORM DATA
+255   0   0 255
+  0 255   0 255
+  0   0 255 255
+255 255   0 255
+END
+
+BUFFER color1 DATA_TYPE B8G8R8A8_UNORM DATA
+  0 255   0 255
+  0   0 255 255
+255 255   0 255
+255   0   0 255
+END
+
+BUFFER color2 DATA_TYPE B8G8R8A8_UNORM DATA
+  0   0 255 255
+255 255   0 255
+255   0   0 255
+  0 255   0 255
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-highp-output-float.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-highp-output-float.amber
new file mode 100644
index 0000000..9bf2fbd
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-highp-output-float.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec2 color_in[3];
+layout(location = 0) smooth out vec2 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec2 color_in[3];
+layout(location = 0) out highp float frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i].x;
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec2 color_in;
+layout(location = 0) smooth out vec2 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec2 color_in;
+layout(location = 0) out highp float frag_out;
+void main()
+{
+    frag_out = color_in.x;
+}
+END
+
+BUFFER framebuffer0 FORMAT R16G16_SFLOAT
+BUFFER framebuffer1 FORMAT R16G16_SFLOAT
+BUFFER framebuffer2 FORMAT R16G16_SFLOAT
+
+BUFFER ref0 FORMAT R16G16_SFLOAT
+BUFFER ref1 FORMAT R16G16_SFLOAT
+BUFFER ref2 FORMAT R16G16_SFLOAT
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R16G16_SFLOAT DATA
+1.0 0.0
+0.0 1.0
+0.0 0.0
+1.0 1.0
+END
+
+BUFFER color1 DATA_TYPE R16G16_SFLOAT DATA
+0.0 1.0
+0.0 0.0
+1.0 1.0
+1.0 0.0
+END
+
+BUFFER color2 DATA_TYPE R16G16_SFLOAT DATA
+0.0 0.0
+1.0 1.0
+1.0 0.0
+0.0 1.0
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-highp.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-highp.amber
new file mode 100644
index 0000000..f83c249
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-highp.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec2 color_in[3];
+layout(location = 0) smooth out vec2 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec2 color_in[3];
+layout(location = 0) out highp vec2 frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i];
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec2 color_in;
+layout(location = 0) smooth out vec2 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec2 color_in;
+layout(location = 0) out highp vec2 frag_out;
+void main()
+{
+    frag_out = color_in;
+}
+END
+
+BUFFER framebuffer0 FORMAT R16G16_SFLOAT
+BUFFER framebuffer1 FORMAT R16G16_SFLOAT
+BUFFER framebuffer2 FORMAT R16G16_SFLOAT
+
+BUFFER ref0 FORMAT R16G16_SFLOAT
+BUFFER ref1 FORMAT R16G16_SFLOAT
+BUFFER ref2 FORMAT R16G16_SFLOAT
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R16G16_SFLOAT DATA
+1.0 0.0
+0.0 1.0
+0.0 0.0
+1.0 1.0
+END
+
+BUFFER color1 DATA_TYPE R16G16_SFLOAT DATA
+0.0 1.0
+0.0 0.0
+1.0 1.0
+1.0 0.0
+END
+
+BUFFER color2 DATA_TYPE R16G16_SFLOAT DATA
+0.0 0.0
+1.0 1.0
+1.0 0.0
+0.0 1.0
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-lowp-output-float.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-lowp-output-float.amber
new file mode 100644
index 0000000..8bfe403
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-lowp-output-float.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec2 color_in[3];
+layout(location = 0) smooth out vec2 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec2 color_in[3];
+layout(location = 0) out lowp float frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i].x;
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec2 color_in;
+layout(location = 0) smooth out vec2 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec2 color_in;
+layout(location = 0) out lowp float frag_out;
+void main()
+{
+    frag_out = color_in.x;
+}
+END
+
+BUFFER framebuffer0 FORMAT R16G16_SFLOAT
+BUFFER framebuffer1 FORMAT R16G16_SFLOAT
+BUFFER framebuffer2 FORMAT R16G16_SFLOAT
+
+BUFFER ref0 FORMAT R16G16_SFLOAT
+BUFFER ref1 FORMAT R16G16_SFLOAT
+BUFFER ref2 FORMAT R16G16_SFLOAT
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R16G16_SFLOAT DATA
+1.0 0.0
+0.0 1.0
+0.0 0.0
+1.0 1.0
+END
+
+BUFFER color1 DATA_TYPE R16G16_SFLOAT DATA
+0.0 1.0
+0.0 0.0
+1.0 1.0
+1.0 0.0
+END
+
+BUFFER color2 DATA_TYPE R16G16_SFLOAT DATA
+0.0 0.0
+1.0 1.0
+1.0 0.0
+0.0 1.0
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-lowp.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-lowp.amber
new file mode 100644
index 0000000..91f210e
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-lowp.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec2 color_in[3];
+layout(location = 0) smooth out vec2 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec2 color_in[3];
+layout(location = 0) out lowp vec2 frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i];
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec2 color_in;
+layout(location = 0) smooth out vec2 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec2 color_in;
+layout(location = 0) out lowp vec2 frag_out;
+void main()
+{
+    frag_out = color_in;
+}
+END
+
+BUFFER framebuffer0 FORMAT R16G16_SFLOAT
+BUFFER framebuffer1 FORMAT R16G16_SFLOAT
+BUFFER framebuffer2 FORMAT R16G16_SFLOAT
+
+BUFFER ref0 FORMAT R16G16_SFLOAT
+BUFFER ref1 FORMAT R16G16_SFLOAT
+BUFFER ref2 FORMAT R16G16_SFLOAT
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R16G16_SFLOAT DATA
+1.0 0.0
+0.0 1.0
+0.0 0.0
+1.0 1.0
+END
+
+BUFFER color1 DATA_TYPE R16G16_SFLOAT DATA
+0.0 1.0
+0.0 0.0
+1.0 1.0
+1.0 0.0
+END
+
+BUFFER color2 DATA_TYPE R16G16_SFLOAT DATA
+0.0 0.0
+1.0 1.0
+1.0 0.0
+0.0 1.0
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-mediump-output-float.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-mediump-output-float.amber
new file mode 100644
index 0000000..37b6d42
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-mediump-output-float.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec2 color_in[3];
+layout(location = 0) smooth out vec2 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec2 color_in[3];
+layout(location = 0) out mediump float frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i].x;
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec2 color_in;
+layout(location = 0) smooth out vec2 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec2 color_in;
+layout(location = 0) out mediump float frag_out;
+void main()
+{
+    frag_out = color_in.x;
+}
+END
+
+BUFFER framebuffer0 FORMAT R16G16_SFLOAT
+BUFFER framebuffer1 FORMAT R16G16_SFLOAT
+BUFFER framebuffer2 FORMAT R16G16_SFLOAT
+
+BUFFER ref0 FORMAT R16G16_SFLOAT
+BUFFER ref1 FORMAT R16G16_SFLOAT
+BUFFER ref2 FORMAT R16G16_SFLOAT
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R16G16_SFLOAT DATA
+1.0 0.0
+0.0 1.0
+0.0 0.0
+1.0 1.0
+END
+
+BUFFER color1 DATA_TYPE R16G16_SFLOAT DATA
+0.0 1.0
+0.0 0.0
+1.0 1.0
+1.0 0.0
+END
+
+BUFFER color2 DATA_TYPE R16G16_SFLOAT DATA
+0.0 0.0
+1.0 1.0
+1.0 0.0
+0.0 1.0
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-mediump.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-mediump.amber
new file mode 100644
index 0000000..ab6dd50
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r16g16-sfloat-mediump.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec2 color_in[3];
+layout(location = 0) smooth out vec2 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec2 color_in[3];
+layout(location = 0) out mediump vec2 frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i];
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec2 color_in;
+layout(location = 0) smooth out vec2 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec2 color_in;
+layout(location = 0) out mediump vec2 frag_out;
+void main()
+{
+    frag_out = color_in;
+}
+END
+
+BUFFER framebuffer0 FORMAT R16G16_SFLOAT
+BUFFER framebuffer1 FORMAT R16G16_SFLOAT
+BUFFER framebuffer2 FORMAT R16G16_SFLOAT
+
+BUFFER ref0 FORMAT R16G16_SFLOAT
+BUFFER ref1 FORMAT R16G16_SFLOAT
+BUFFER ref2 FORMAT R16G16_SFLOAT
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R16G16_SFLOAT DATA
+1.0 0.0
+0.0 1.0
+0.0 0.0
+1.0 1.0
+END
+
+BUFFER color1 DATA_TYPE R16G16_SFLOAT DATA
+0.0 1.0
+0.0 0.0
+1.0 1.0
+1.0 0.0
+END
+
+BUFFER color2 DATA_TYPE R16G16_SFLOAT DATA
+0.0 0.0
+1.0 1.0
+1.0 0.0
+0.0 1.0
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32-sfloat-highp.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32-sfloat-highp.amber
new file mode 100644
index 0000000..e222881
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32-sfloat-highp.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in float color_in[3];
+layout(location = 0) smooth out float color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in float color_in[3];
+layout(location = 0) out highp float frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i];
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in float color_in;
+layout(location = 0) smooth out float color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in float color_in;
+layout(location = 0) out highp float frag_out;
+void main()
+{
+    frag_out = color_in;
+}
+END
+
+BUFFER framebuffer0 FORMAT R32_SFLOAT
+BUFFER framebuffer1 FORMAT R32_SFLOAT
+BUFFER framebuffer2 FORMAT R32_SFLOAT
+
+BUFFER ref0 FORMAT R32_SFLOAT
+BUFFER ref1 FORMAT R32_SFLOAT
+BUFFER ref2 FORMAT R32_SFLOAT
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R32_SFLOAT DATA
+1.0
+0.0
+0.0
+1.0
+END
+
+BUFFER color1 DATA_TYPE R32_SFLOAT DATA
+0.0
+0.0
+1.0
+1.0
+END
+
+BUFFER color2 DATA_TYPE R32_SFLOAT DATA
+0.0
+1.0
+1.0
+0.0
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32-sfloat-lowp.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32-sfloat-lowp.amber
new file mode 100644
index 0000000..6fb5f17
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32-sfloat-lowp.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in float color_in[3];
+layout(location = 0) smooth out float color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in float color_in[3];
+layout(location = 0) out lowp float frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i];
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in float color_in;
+layout(location = 0) smooth out float color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in float color_in;
+layout(location = 0) out lowp float frag_out;
+void main()
+{
+    frag_out = color_in;
+}
+END
+
+BUFFER framebuffer0 FORMAT R32_SFLOAT
+BUFFER framebuffer1 FORMAT R32_SFLOAT
+BUFFER framebuffer2 FORMAT R32_SFLOAT
+
+BUFFER ref0 FORMAT R32_SFLOAT
+BUFFER ref1 FORMAT R32_SFLOAT
+BUFFER ref2 FORMAT R32_SFLOAT
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R32_SFLOAT DATA
+1.0
+0.0
+0.0
+1.0
+END
+
+BUFFER color1 DATA_TYPE R32_SFLOAT DATA
+0.0
+0.0
+1.0
+1.0
+END
+
+BUFFER color2 DATA_TYPE R32_SFLOAT DATA
+0.0
+1.0
+1.0
+0.0
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32-sfloat-mediump.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32-sfloat-mediump.amber
new file mode 100644
index 0000000..769eade
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32-sfloat-mediump.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in float color_in[3];
+layout(location = 0) smooth out float color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in float color_in[3];
+layout(location = 0) out mediump float frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i];
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in float color_in;
+layout(location = 0) smooth out float color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in float color_in;
+layout(location = 0) out mediump float frag_out;
+void main()
+{
+    frag_out = color_in;
+}
+END
+
+BUFFER framebuffer0 FORMAT R32_SFLOAT
+BUFFER framebuffer1 FORMAT R32_SFLOAT
+BUFFER framebuffer2 FORMAT R32_SFLOAT
+
+BUFFER ref0 FORMAT R32_SFLOAT
+BUFFER ref1 FORMAT R32_SFLOAT
+BUFFER ref2 FORMAT R32_SFLOAT
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R32_SFLOAT DATA
+1.0
+0.0
+0.0
+1.0
+END
+
+BUFFER color1 DATA_TYPE R32_SFLOAT DATA
+0.0
+0.0
+1.0
+1.0
+END
+
+BUFFER color2 DATA_TYPE R32_SFLOAT DATA
+0.0
+1.0
+1.0
+0.0
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-highp-output-vec2.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-highp-output-vec2.amber
new file mode 100644
index 0000000..fbac98a
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-highp-output-vec2.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in[3];
+layout(location = 0) smooth out vec4 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in[3];
+layout(location = 0) out highp vec2 frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i].xy;
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in;
+layout(location = 0) smooth out vec4 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in;
+layout(location = 0) out highp vec2 frag_out;
+void main()
+{
+    frag_out = color_in.xy;
+}
+END
+
+BUFFER framebuffer0 FORMAT R32G32B32A32_SFLOAT
+BUFFER framebuffer1 FORMAT R32G32B32A32_SFLOAT
+BUFFER framebuffer2 FORMAT R32G32B32A32_SFLOAT
+
+BUFFER ref0 FORMAT R32G32B32A32_SFLOAT
+BUFFER ref1 FORMAT R32G32B32A32_SFLOAT
+BUFFER ref2 FORMAT R32G32B32A32_SFLOAT
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+END
+
+BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+END
+
+BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-highp-output-vec3.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-highp-output-vec3.amber
new file mode 100644
index 0000000..e1b0b29
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-highp-output-vec3.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in[3];
+layout(location = 0) smooth out vec4 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in[3];
+layout(location = 0) out highp vec3 frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i].xyz;
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in;
+layout(location = 0) smooth out vec4 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in;
+layout(location = 0) out highp vec3 frag_out;
+void main()
+{
+    frag_out = color_in.xyz;
+}
+END
+
+BUFFER framebuffer0 FORMAT R32G32B32A32_SFLOAT
+BUFFER framebuffer1 FORMAT R32G32B32A32_SFLOAT
+BUFFER framebuffer2 FORMAT R32G32B32A32_SFLOAT
+
+BUFFER ref0 FORMAT R32G32B32A32_SFLOAT
+BUFFER ref1 FORMAT R32G32B32A32_SFLOAT
+BUFFER ref2 FORMAT R32G32B32A32_SFLOAT
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+END
+
+BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+END
+
+BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-highp.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-highp.amber
new file mode 100644
index 0000000..fef288c
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-highp.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in[3];
+layout(location = 0) smooth out vec4 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in[3];
+layout(location = 0) out highp vec4 frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i];
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in;
+layout(location = 0) smooth out vec4 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in;
+layout(location = 0) out highp vec4 frag_out;
+void main()
+{
+    frag_out = color_in;
+}
+END
+
+BUFFER framebuffer0 FORMAT R32G32B32A32_SFLOAT
+BUFFER framebuffer1 FORMAT R32G32B32A32_SFLOAT
+BUFFER framebuffer2 FORMAT R32G32B32A32_SFLOAT
+
+BUFFER ref0 FORMAT R32G32B32A32_SFLOAT
+BUFFER ref1 FORMAT R32G32B32A32_SFLOAT
+BUFFER ref2 FORMAT R32G32B32A32_SFLOAT
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+END
+
+BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+END
+
+BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-lowp-output-vec2.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-lowp-output-vec2.amber
new file mode 100644
index 0000000..5bab42a
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-lowp-output-vec2.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in[3];
+layout(location = 0) smooth out vec4 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in[3];
+layout(location = 0) out lowp vec2 frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i].xy;
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in;
+layout(location = 0) smooth out vec4 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in;
+layout(location = 0) out lowp vec2 frag_out;
+void main()
+{
+    frag_out = color_in.xy;
+}
+END
+
+BUFFER framebuffer0 FORMAT R32G32B32A32_SFLOAT
+BUFFER framebuffer1 FORMAT R32G32B32A32_SFLOAT
+BUFFER framebuffer2 FORMAT R32G32B32A32_SFLOAT
+
+BUFFER ref0 FORMAT R32G32B32A32_SFLOAT
+BUFFER ref1 FORMAT R32G32B32A32_SFLOAT
+BUFFER ref2 FORMAT R32G32B32A32_SFLOAT
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+END
+
+BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+END
+
+BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-lowp-output-vec3.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-lowp-output-vec3.amber
new file mode 100644
index 0000000..213ab95
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-lowp-output-vec3.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in[3];
+layout(location = 0) smooth out vec4 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in[3];
+layout(location = 0) out lowp vec3 frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i].xyz;
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in;
+layout(location = 0) smooth out vec4 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in;
+layout(location = 0) out lowp vec3 frag_out;
+void main()
+{
+    frag_out = color_in.xyz;
+}
+END
+
+BUFFER framebuffer0 FORMAT R32G32B32A32_SFLOAT
+BUFFER framebuffer1 FORMAT R32G32B32A32_SFLOAT
+BUFFER framebuffer2 FORMAT R32G32B32A32_SFLOAT
+
+BUFFER ref0 FORMAT R32G32B32A32_SFLOAT
+BUFFER ref1 FORMAT R32G32B32A32_SFLOAT
+BUFFER ref2 FORMAT R32G32B32A32_SFLOAT
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+END
+
+BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+END
+
+BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-lowp.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-lowp.amber
new file mode 100644
index 0000000..7abe705
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-lowp.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in[3];
+layout(location = 0) smooth out vec4 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in[3];
+layout(location = 0) out lowp vec4 frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i];
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in;
+layout(location = 0) smooth out vec4 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in;
+layout(location = 0) out lowp vec4 frag_out;
+void main()
+{
+    frag_out = color_in;
+}
+END
+
+BUFFER framebuffer0 FORMAT R32G32B32A32_SFLOAT
+BUFFER framebuffer1 FORMAT R32G32B32A32_SFLOAT
+BUFFER framebuffer2 FORMAT R32G32B32A32_SFLOAT
+
+BUFFER ref0 FORMAT R32G32B32A32_SFLOAT
+BUFFER ref1 FORMAT R32G32B32A32_SFLOAT
+BUFFER ref2 FORMAT R32G32B32A32_SFLOAT
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+END
+
+BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+END
+
+BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-mediump-output-vec2.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-mediump-output-vec2.amber
new file mode 100644
index 0000000..f158f74
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-mediump-output-vec2.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in[3];
+layout(location = 0) smooth out vec4 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in[3];
+layout(location = 0) out mediump vec2 frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i].xy;
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in;
+layout(location = 0) smooth out vec4 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in;
+layout(location = 0) out mediump vec2 frag_out;
+void main()
+{
+    frag_out = color_in.xy;
+}
+END
+
+BUFFER framebuffer0 FORMAT R32G32B32A32_SFLOAT
+BUFFER framebuffer1 FORMAT R32G32B32A32_SFLOAT
+BUFFER framebuffer2 FORMAT R32G32B32A32_SFLOAT
+
+BUFFER ref0 FORMAT R32G32B32A32_SFLOAT
+BUFFER ref1 FORMAT R32G32B32A32_SFLOAT
+BUFFER ref2 FORMAT R32G32B32A32_SFLOAT
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+END
+
+BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+END
+
+BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-mediump-output-vec3.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-mediump-output-vec3.amber
new file mode 100644
index 0000000..eb9c9ca
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-mediump-output-vec3.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in[3];
+layout(location = 0) smooth out vec4 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in[3];
+layout(location = 0) out mediump vec3 frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i].xyz;
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in;
+layout(location = 0) smooth out vec4 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in;
+layout(location = 0) out mediump vec3 frag_out;
+void main()
+{
+    frag_out = color_in.xyz;
+}
+END
+
+BUFFER framebuffer0 FORMAT R32G32B32A32_SFLOAT
+BUFFER framebuffer1 FORMAT R32G32B32A32_SFLOAT
+BUFFER framebuffer2 FORMAT R32G32B32A32_SFLOAT
+
+BUFFER ref0 FORMAT R32G32B32A32_SFLOAT
+BUFFER ref1 FORMAT R32G32B32A32_SFLOAT
+BUFFER ref2 FORMAT R32G32B32A32_SFLOAT
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+END
+
+BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+END
+
+BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-mediump.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-mediump.amber
new file mode 100644
index 0000000..7185e28
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r32g32b32a32-sfloat-mediump.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in[3];
+layout(location = 0) smooth out vec4 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in[3];
+layout(location = 0) out mediump vec4 frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i];
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in;
+layout(location = 0) smooth out vec4 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in;
+layout(location = 0) out mediump vec4 frag_out;
+void main()
+{
+    frag_out = color_in;
+}
+END
+
+BUFFER framebuffer0 FORMAT R32G32B32A32_SFLOAT
+BUFFER framebuffer1 FORMAT R32G32B32A32_SFLOAT
+BUFFER framebuffer2 FORMAT R32G32B32A32_SFLOAT
+
+BUFFER ref0 FORMAT R32G32B32A32_SFLOAT
+BUFFER ref1 FORMAT R32G32B32A32_SFLOAT
+BUFFER ref2 FORMAT R32G32B32A32_SFLOAT
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R32G32B32A32_SFLOAT DATA
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+END
+
+BUFFER color1 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 1.0 0.0 1.0
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+END
+
+BUFFER color2 DATA_TYPE R32G32B32A32_SFLOAT DATA
+0.0 0.0 1.0 1.0
+1.0 1.0 0.0 1.0
+1.0 0.0 0.0 1.0
+0.0 1.0 0.0 1.0
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-highp-output-uint.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-highp-output-uint.amber
new file mode 100644
index 0000000..395996c
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-highp-output-uint.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in uvec2 color_in[3];
+layout(location = 0) flat out uvec2 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) flat in uvec2 color_in[3];
+layout(location = 0) out highp uint frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i].x;
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in uvec2 color_in;
+layout(location = 0) flat out uvec2 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) flat in uvec2 color_in;
+layout(location = 0) out highp uint frag_out;
+void main()
+{
+    frag_out = color_in.x;
+}
+END
+
+BUFFER framebuffer0 FORMAT R8G8_UINT
+BUFFER framebuffer1 FORMAT R8G8_UINT
+BUFFER framebuffer2 FORMAT R8G8_UINT
+
+BUFFER ref0 FORMAT R8G8_UINT
+BUFFER ref1 FORMAT R8G8_UINT
+BUFFER ref2 FORMAT R8G8_UINT
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R8G8_UINT DATA
+255   0
+  0 255
+  0   0
+255 255
+END
+
+BUFFER color1 DATA_TYPE R8G8_UINT DATA
+  0 255
+  0   0
+255 255
+255   0
+END
+
+BUFFER color2 DATA_TYPE R8G8_UINT DATA
+  0   0
+255 255
+255   0
+  0 255
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-highp.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-highp.amber
new file mode 100644
index 0000000..b67e53b
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-highp.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in uvec2 color_in[3];
+layout(location = 0) flat out uvec2 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) flat in uvec2 color_in[3];
+layout(location = 0) out highp uvec2 frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i];
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in uvec2 color_in;
+layout(location = 0) flat out uvec2 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) flat in uvec2 color_in;
+layout(location = 0) out highp uvec2 frag_out;
+void main()
+{
+    frag_out = color_in;
+}
+END
+
+BUFFER framebuffer0 FORMAT R8G8_UINT
+BUFFER framebuffer1 FORMAT R8G8_UINT
+BUFFER framebuffer2 FORMAT R8G8_UINT
+
+BUFFER ref0 FORMAT R8G8_UINT
+BUFFER ref1 FORMAT R8G8_UINT
+BUFFER ref2 FORMAT R8G8_UINT
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R8G8_UINT DATA
+255   0
+  0 255
+  0   0
+255 255
+END
+
+BUFFER color1 DATA_TYPE R8G8_UINT DATA
+  0 255
+  0   0
+255 255
+255   0
+END
+
+BUFFER color2 DATA_TYPE R8G8_UINT DATA
+  0   0
+255 255
+255   0
+  0 255
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-lowp-output-uint.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-lowp-output-uint.amber
new file mode 100644
index 0000000..1b9cf1f
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-lowp-output-uint.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in uvec2 color_in[3];
+layout(location = 0) flat out uvec2 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) flat in uvec2 color_in[3];
+layout(location = 0) out lowp uint frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i].x;
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in uvec2 color_in;
+layout(location = 0) flat out uvec2 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) flat in uvec2 color_in;
+layout(location = 0) out lowp uint frag_out;
+void main()
+{
+    frag_out = color_in.x;
+}
+END
+
+BUFFER framebuffer0 FORMAT R8G8_UINT
+BUFFER framebuffer1 FORMAT R8G8_UINT
+BUFFER framebuffer2 FORMAT R8G8_UINT
+
+BUFFER ref0 FORMAT R8G8_UINT
+BUFFER ref1 FORMAT R8G8_UINT
+BUFFER ref2 FORMAT R8G8_UINT
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R8G8_UINT DATA
+255   0
+  0 255
+  0   0
+255 255
+END
+
+BUFFER color1 DATA_TYPE R8G8_UINT DATA
+  0 255
+  0   0
+255 255
+255   0
+END
+
+BUFFER color2 DATA_TYPE R8G8_UINT DATA
+  0   0
+255 255
+255   0
+  0 255
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-lowp.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-lowp.amber
new file mode 100644
index 0000000..cd7d8af
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-lowp.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in uvec2 color_in[3];
+layout(location = 0) flat out uvec2 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) flat in uvec2 color_in[3];
+layout(location = 0) out lowp uvec2 frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i];
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in uvec2 color_in;
+layout(location = 0) flat out uvec2 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) flat in uvec2 color_in;
+layout(location = 0) out lowp uvec2 frag_out;
+void main()
+{
+    frag_out = color_in;
+}
+END
+
+BUFFER framebuffer0 FORMAT R8G8_UINT
+BUFFER framebuffer1 FORMAT R8G8_UINT
+BUFFER framebuffer2 FORMAT R8G8_UINT
+
+BUFFER ref0 FORMAT R8G8_UINT
+BUFFER ref1 FORMAT R8G8_UINT
+BUFFER ref2 FORMAT R8G8_UINT
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R8G8_UINT DATA
+255   0
+  0 255
+  0   0
+255 255
+END
+
+BUFFER color1 DATA_TYPE R8G8_UINT DATA
+  0 255
+  0   0
+255 255
+255   0
+END
+
+BUFFER color2 DATA_TYPE R8G8_UINT DATA
+  0   0
+255 255
+255   0
+  0 255
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-mediump-output-uint.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-mediump-output-uint.amber
new file mode 100644
index 0000000..31ae57b
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-mediump-output-uint.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in uvec2 color_in[3];
+layout(location = 0) flat out uvec2 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) flat in uvec2 color_in[3];
+layout(location = 0) out mediump uint frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i].x;
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in uvec2 color_in;
+layout(location = 0) flat out uvec2 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) flat in uvec2 color_in;
+layout(location = 0) out mediump uint frag_out;
+void main()
+{
+    frag_out = color_in.x;
+}
+END
+
+BUFFER framebuffer0 FORMAT R8G8_UINT
+BUFFER framebuffer1 FORMAT R8G8_UINT
+BUFFER framebuffer2 FORMAT R8G8_UINT
+
+BUFFER ref0 FORMAT R8G8_UINT
+BUFFER ref1 FORMAT R8G8_UINT
+BUFFER ref2 FORMAT R8G8_UINT
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R8G8_UINT DATA
+255   0
+  0 255
+  0   0
+255 255
+END
+
+BUFFER color1 DATA_TYPE R8G8_UINT DATA
+  0 255
+  0   0
+255 255
+255   0
+END
+
+BUFFER color2 DATA_TYPE R8G8_UINT DATA
+  0   0
+255 255
+255   0
+  0 255
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-mediump.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-mediump.amber
new file mode 100644
index 0000000..30a46c9
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/array/r8g8-uint-mediump.amber
@@ -0,0 +1,155 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in uvec2 color_in[3];
+layout(location = 0) flat out uvec2 color_out[3];
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    for (int i = 0; i < 3; i++)
+        color_out[i] = color_in[i];
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) flat in uvec2 color_in[3];
+layout(location = 0) out mediump uvec2 frag_out[3];
+void main()
+{
+    for (int i = 0; i < 3; i++)
+        frag_out[i] = color_in[i];
+}
+END
+
+SHADER vertex vert_shader_ref GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in uvec2 color_in;
+layout(location = 0) flat out uvec2 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref GLSL
+#version 430
+layout(location = 0) flat in uvec2 color_in;
+layout(location = 0) out mediump uvec2 frag_out;
+void main()
+{
+    frag_out = color_in;
+}
+END
+
+BUFFER framebuffer0 FORMAT R8G8_UINT
+BUFFER framebuffer1 FORMAT R8G8_UINT
+BUFFER framebuffer2 FORMAT R8G8_UINT
+
+BUFFER ref0 FORMAT R8G8_UINT
+BUFFER ref1 FORMAT R8G8_UINT
+BUFFER ref2 FORMAT R8G8_UINT
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R8G8_UINT DATA
+255   0
+  0 255
+  0   0
+255 255
+END
+
+BUFFER color1 DATA_TYPE R8G8_UINT DATA
+  0 255
+  0   0
+255 255
+255   0
+END
+
+BUFFER color2 DATA_TYPE R8G8_UINT DATA
+  0   0
+255 255
+255   0
+  0 255
+END
+
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+CLEAR_COLOR pipeline 0 0 0 0
+CLEAR pipeline
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref0 0 0 0 0
+CLEAR pipeline_ref0
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref1 0 0 0 0
+CLEAR pipeline_ref1
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+CLEAR_COLOR pipeline_ref2 0 0 0 0
+CLEAR pipeline_ref2
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/shuffle/inputs-outputs-mod.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/shuffle/inputs-outputs-mod.amber
new file mode 100644
index 0000000..7a9c6d7
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/shuffle/inputs-outputs-mod.amber
@@ -0,0 +1,202 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in0;
+layout(location = 2) in uvec2 color_in1;
+layout(location = 3) in float color_in2;
+layout(location = 0) smooth out vec4 color_out0;
+layout(location = 1) flat out uvec2 color_out1;
+layout(location = 2) smooth out float color_out2;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out0 = color_in0;
+    color_out1 = color_in1;
+    color_out2 = color_in2;
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in0;
+layout(location = 1) flat in uvec2 color_in1;
+layout(location = 2) smooth in float color_in2;
+layout(location = 0) out mediump float frag_out0;
+layout(location = 1) out lowp uvec2 frag_out1;
+layout(location = 2) out highp vec4 frag_out2;
+void main()
+{
+    frag_out0 = color_in2;
+    frag_out1 = color_in1;
+    frag_out2 = color_in0;
+}
+END
+
+SHADER vertex vert_shader_ref0 GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec3 color_in;
+layout(location = 0) smooth out vec3 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref0 GLSL
+#version 430
+layout(location = 0) smooth in vec3 color_in;
+layout(location = 0) out mediump vec3 frag_out;
+void main()
+{
+    frag_out = color_in;
+}
+END
+
+SHADER vertex vert_shader_ref1 GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in uvec2 color_in;
+layout(location = 0) flat out uvec2 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref1 GLSL
+#version 430
+layout(location = 0) flat in uvec2 color_in;
+layout(location = 0) out lowp uvec2 frag_out;
+void main()
+{
+    frag_out = color_in;
+}
+END
+
+SHADER vertex vert_shader_ref2 GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in;
+layout(location = 0) smooth out vec4 color_out;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out = color_in;
+}
+END
+
+SHADER fragment frag_shader_ref2 GLSL
+#version 430
+layout(location = 0) smooth in vec4 color_in;
+layout(location = 0) out highp vec4 frag_out;
+void main()
+{
+    frag_out = color_in;
+}
+END
+
+BUFFER framebuffer0 FORMAT R16_SFLOAT
+BUFFER framebuffer1 FORMAT R8G8_UINT
+BUFFER framebuffer2 FORMAT B8G8R8A8_UNORM
+
+BUFFER ref0 FORMAT R16_SFLOAT
+BUFFER ref1 FORMAT R8G8_UINT
+BUFFER ref2 FORMAT B8G8R8A8_UNORM
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE B8G8R8A8_UNORM DATA
+255   0   0 255
+  0 255   0 255
+  0   0 255 255
+255 255   0 255
+END
+
+BUFFER color1 DATA_TYPE R8G8_UINT DATA
+  0 255
+  0   0
+255 255
+255   0
+END
+
+BUFFER color2 DATA_TYPE R16_SFLOAT DATA
+0.5
+1.0
+0.3
+0.2
+END
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  VERTEX_DATA color2 LOCATION 3
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  BIND BUFFER framebuffer2 AS color LOCATION 2
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref0
+  ATTACH frag_shader_ref0
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color2 LOCATION 1
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref1
+  ATTACH frag_shader_ref1
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color1 LOCATION 1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref2
+  ATTACH vert_shader_ref2
+  ATTACH frag_shader_ref2
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  BIND BUFFER ref2 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+RUN pipeline_ref0 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+RUN pipeline_ref1 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+RUN pipeline_ref2 DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
+EXPECT framebuffer2 EQ_BUFFER ref2
diff --git a/external/vulkancts/data/vulkan/amber/draw/output_location/shuffle/inputs-outputs.amber b/external/vulkancts/data/vulkan/amber/draw/output_location/shuffle/inputs-outputs.amber
new file mode 100644
index 0000000..b9582f5
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/draw/output_location/shuffle/inputs-outputs.amber
@@ -0,0 +1,136 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader GLSL
+#version 430
+layout(location = 0) in vec2 position_in;
+layout(location = 1) in vec4 color_in0;
+layout(location = 2) in vec4 color_in1;
+layout(location = 0) out vec4 color_out0;
+layout(location = 1) out vec4 color_out1;
+
+void main()
+{
+	gl_Position = vec4(position_in, 0, 1);
+    color_out0 = color_in0;
+    color_out1 = color_in1;
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+layout(location = 0) in vec4 color_in0;
+layout(location = 1) in vec4 color_in1;
+layout(location = 0) out vec4 frag_out0;
+layout(location = 1) out vec4 frag_out1;
+void main()
+{
+    if (((int(gl_FragCoord.x) / 5) % 2) == ((int(gl_FragCoord.y) / 5) % 2))
+    {
+        frag_out0 = color_in0;
+        frag_out1 = color_in1;
+    }
+    else
+    {
+        frag_out0 = color_in1;
+        frag_out1 = color_in0;
+    }
+}
+END
+
+SHADER vertex vert_shader_ref PASSTHROUGH
+
+SHADER fragment frag_shader_ref0 GLSL
+#version 430
+layout(location = 0) out vec4 frag_out;
+void main()
+{
+    if (((int(gl_FragCoord.x) / 5) % 2) == ((int(gl_FragCoord.y) / 5) % 2))
+        frag_out = vec4(1, 0, 0, 1);
+    else
+        frag_out = vec4(0, 1, 0, 1);
+}
+END
+
+SHADER fragment frag_shader_ref1 GLSL
+#version 430
+layout(location = 0) out vec4 frag_out;
+void main()
+{
+    if (((int(gl_FragCoord.x) / 5) % 2) == ((int(gl_FragCoord.y) / 5) % 2))
+        frag_out = vec4(0, 1, 0, 1);
+    else
+        frag_out = vec4(1, 0, 0, 1);
+}
+END
+
+
+BUFFER framebuffer0 FORMAT B8G8R8A8_UNORM
+BUFFER framebuffer1 FORMAT B8G8R8A8_UNORM
+
+BUFFER ref0 FORMAT B8G8R8A8_UNORM
+BUFFER ref1 FORMAT B8G8R8A8_UNORM
+
+BUFFER position DATA_TYPE vec2<float> DATA
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+END
+
+BUFFER color0 DATA_TYPE R8G8B8A8_UNORM DATA
+255   0   0 255
+255   0   0 255
+255   0   0 255
+255   0   0 255
+END
+
+BUFFER color1 DATA_TYPE R8G8B8A8_UNORM DATA
+  0 255   0 255
+  0 255   0 255
+  0 255   0 255
+  0 255   0 255
+END
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+  VERTEX_DATA position LOCATION 0
+  VERTEX_DATA color0 LOCATION 1
+  VERTEX_DATA color1 LOCATION 2
+  BIND BUFFER framebuffer0 AS color LOCATION 0
+  BIND BUFFER framebuffer1 AS color LOCATION 1
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref0
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref0
+  BIND BUFFER ref0 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+PIPELINE graphics pipeline_ref1
+  ATTACH vert_shader_ref
+  ATTACH frag_shader_ref1
+  BIND BUFFER ref1 AS color LOCATION 0
+  FRAMEBUFFER_SIZE 60 60
+END
+
+RUN pipeline DRAW_ARRAY AS TRIANGLE_FAN START_IDX 0 COUNT 4
+RUN pipeline_ref0 DRAW_RECT POS 0 0 SIZE 60 60
+RUN pipeline_ref1 DRAW_RECT POS 0 0 SIZE 60 60
+EXPECT framebuffer0 EQ_BUFFER ref0
+EXPECT framebuffer1 EQ_BUFFER ref1
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/arr-value-set-to-arr-value-squared.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/arr-value-set-to-arr-value-squared.amber
new file mode 100644
index 0000000..b13ec26
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/arr-value-set-to-arr-value-squared.amber
@@ -0,0 +1,455 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: A fragment shader with an arr value set to itself squared
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0 {
+#  vec2 resolution;
+# };
+# struct QuicksortObject {
+#  int numbers[10];
+# } ;
+#
+# QuicksortObject obj;
+#
+# void swap(int i, int j)
+# {
+#  int temp = obj.numbers[i];
+#  obj.numbers[i] = obj.numbers[j];
+#  obj.numbers[j] = temp;
+# }
+# int performPartition(int l, int h)
+# {
+#  int pivot = obj.numbers[h];
+#  int i = (l - 1);
+#  for(
+#      int j = l;
+#      j <= h - 1;
+#      j ++
+#  )
+#   {
+#    if(obj.numbers[j] <= pivot)
+#     {
+#      i ++;
+#      swap(i, j);
+#     }
+#   }
+#  swap(i + 1, h);
+#  return (i + 1);
+# }
+# void quicksort()
+# {
+#  int l = 0, h = 9;
+#  int stack[10];
+#  int top = - 1;
+#  stack[++ top] = l;
+#  stack[++ top] = h;
+#  while(top >= 0)
+#   {
+#    h = stack[top --];
+#    l = stack[top --];
+#    int p = performPartition(l, h);
+#    if(p - 1 > l)
+#     {
+#      stack[++ top] = l;
+#      stack[++ top] = p - 1;
+#     }
+#    if(p + 1 < h)
+#     {
+#      stack[++ top] = p + 1;
+#      stack[++ top] = h;
+#     }
+#   }
+# }
+# void main()
+# {
+#  for(
+#      int i = 0;
+#      i < 10;
+#      i ++
+#  )
+#   {
+#    obj.numbers[i] = (10 - i);
+#    obj.numbers[i] = obj.numbers[i] * obj.numbers[i];
+#   }
+#  quicksort();
+#
+#  if (obj.numbers[0] < obj.numbers[4])
+#   _GLF_color = vec4(1.0, 0.0, 0.0, 1.0);
+#  else
+#   _GLF_color = vec4(0.0, 1.0, 0.0, 1.0);
+#
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 198
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %188
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %11 "swap(i1;i1;"
+               OpName %9 "i"
+               OpName %10 "j"
+               OpName %16 "performPartition(i1;i1;"
+               OpName %14 "l"
+               OpName %15 "h"
+               OpName %18 "quicksort("
+               OpName %20 "temp"
+               OpName %24 "QuicksortObject"
+               OpMemberName %24 0 "numbers"
+               OpName %26 "obj"
+               OpName %40 "pivot"
+               OpName %44 "i"
+               OpName %48 "j"
+               OpName %69 "param"
+               OpName %71 "param"
+               OpName %78 "param"
+               OpName %79 "param"
+               OpName %86 "l"
+               OpName %87 "h"
+               OpName %89 "top"
+               OpName %92 "stack"
+               OpName %116 "p"
+               OpName %117 "param"
+               OpName %119 "param"
+               OpName %152 "i"
+               OpName %188 "_GLF_color"
+               OpName %195 "buf0"
+               OpMemberName %195 0 "resolution"
+               OpName %197 ""
+               OpDecorate %188 Location 0
+               OpMemberDecorate %195 0 Offset 0
+               OpDecorate %195 Block
+               OpDecorate %197 DescriptorSet 0
+               OpDecorate %197 Binding 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %8 = OpTypeFunction %2 %7 %7
+         %13 = OpTypeFunction %6 %7 %7
+         %21 = OpTypeInt 32 0
+         %22 = OpConstant %21 10
+         %23 = OpTypeArray %6 %22
+         %24 = OpTypeStruct %23
+         %25 = OpTypePointer Private %24
+         %26 = OpVariable %25 Private
+         %27 = OpConstant %6 0
+         %29 = OpTypePointer Private %6
+         %46 = OpConstant %6 1
+         %58 = OpTypeBool
+         %88 = OpConstant %6 9
+         %90 = OpConstant %6 -1
+         %91 = OpTypePointer Function %23
+        %159 = OpConstant %6 10
+        %179 = OpConstant %6 4
+        %185 = OpTypeFloat 32
+        %186 = OpTypeVector %185 4
+        %187 = OpTypePointer Output %186
+        %188 = OpVariable %187 Output
+        %189 = OpConstant %185 1
+        %190 = OpConstant %185 0
+        %191 = OpConstantComposite %186 %189 %190 %190 %189
+        %193 = OpConstantComposite %186 %190 %189 %190 %189
+        %194 = OpTypeVector %185 2
+        %195 = OpTypeStruct %194
+        %196 = OpTypePointer Uniform %195
+        %197 = OpVariable %196 Uniform
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+        %152 = OpVariable %7 Function
+               OpStore %152 %27
+               OpBranch %153
+        %153 = OpLabel
+               OpLoopMerge %155 %156 None
+               OpBranch %157
+        %157 = OpLabel
+        %158 = OpLoad %6 %152
+        %160 = OpSLessThan %58 %158 %159
+               OpBranchConditional %160 %154 %155
+        %154 = OpLabel
+        %161 = OpLoad %6 %152
+        %162 = OpLoad %6 %152
+        %163 = OpISub %6 %159 %162
+        %164 = OpAccessChain %29 %26 %27 %161
+               OpStore %164 %163
+        %165 = OpLoad %6 %152
+        %166 = OpLoad %6 %152
+        %167 = OpAccessChain %29 %26 %27 %166
+        %168 = OpLoad %6 %167
+        %169 = OpLoad %6 %152
+        %170 = OpAccessChain %29 %26 %27 %169
+        %171 = OpLoad %6 %170
+        %172 = OpIMul %6 %168 %171
+        %173 = OpAccessChain %29 %26 %27 %165
+               OpStore %173 %172
+               OpBranch %156
+        %156 = OpLabel
+        %174 = OpLoad %6 %152
+        %175 = OpIAdd %6 %174 %46
+               OpStore %152 %175
+               OpBranch %153
+        %155 = OpLabel
+        %176 = OpFunctionCall %2 %18
+        %177 = OpAccessChain %29 %26 %27 %27
+        %178 = OpLoad %6 %177
+        %180 = OpAccessChain %29 %26 %27 %179
+        %181 = OpLoad %6 %180
+        %182 = OpSLessThan %58 %178 %181
+               OpSelectionMerge %184 None
+               OpBranchConditional %182 %183 %192
+        %183 = OpLabel
+               OpStore %188 %191
+               OpBranch %184
+        %192 = OpLabel
+               OpStore %188 %193
+               OpBranch %184
+        %184 = OpLabel
+               OpReturn
+               OpFunctionEnd
+         %11 = OpFunction %2 None %8
+          %9 = OpFunctionParameter %7
+         %10 = OpFunctionParameter %7
+         %12 = OpLabel
+         %20 = OpVariable %7 Function
+         %28 = OpLoad %6 %9
+         %30 = OpAccessChain %29 %26 %27 %28
+         %31 = OpLoad %6 %30
+               OpStore %20 %31
+         %32 = OpLoad %6 %9
+         %33 = OpLoad %6 %10
+         %34 = OpAccessChain %29 %26 %27 %33
+         %35 = OpLoad %6 %34
+         %36 = OpAccessChain %29 %26 %27 %32
+               OpStore %36 %35
+         %37 = OpLoad %6 %10
+         %38 = OpLoad %6 %20
+         %39 = OpAccessChain %29 %26 %27 %37
+               OpStore %39 %38
+               OpReturn
+               OpFunctionEnd
+         %16 = OpFunction %6 None %13
+         %14 = OpFunctionParameter %7
+         %15 = OpFunctionParameter %7
+         %17 = OpLabel
+         %40 = OpVariable %7 Function
+         %44 = OpVariable %7 Function
+         %48 = OpVariable %7 Function
+         %69 = OpVariable %7 Function
+         %71 = OpVariable %7 Function
+         %78 = OpVariable %7 Function
+         %79 = OpVariable %7 Function
+         %41 = OpLoad %6 %15
+         %42 = OpAccessChain %29 %26 %27 %41
+         %43 = OpLoad %6 %42
+               OpStore %40 %43
+         %45 = OpLoad %6 %14
+         %47 = OpISub %6 %45 %46
+               OpStore %44 %47
+         %49 = OpLoad %6 %14
+               OpStore %48 %49
+               OpBranch %50
+         %50 = OpLabel
+               OpLoopMerge %52 %53 None
+               OpBranch %54
+         %54 = OpLabel
+         %55 = OpLoad %6 %48
+         %56 = OpLoad %6 %15
+         %57 = OpISub %6 %56 %46
+         %59 = OpSLessThanEqual %58 %55 %57
+               OpBranchConditional %59 %51 %52
+         %51 = OpLabel
+         %60 = OpLoad %6 %48
+         %61 = OpAccessChain %29 %26 %27 %60
+         %62 = OpLoad %6 %61
+         %63 = OpLoad %6 %40
+         %64 = OpSLessThanEqual %58 %62 %63
+               OpSelectionMerge %66 None
+               OpBranchConditional %64 %65 %66
+         %65 = OpLabel
+         %67 = OpLoad %6 %44
+         %68 = OpIAdd %6 %67 %46
+               OpStore %44 %68
+         %70 = OpLoad %6 %44
+               OpStore %69 %70
+         %72 = OpLoad %6 %48
+               OpStore %71 %72
+         %73 = OpFunctionCall %2 %11 %69 %71
+               OpBranch %66
+         %66 = OpLabel
+               OpBranch %53
+         %53 = OpLabel
+         %74 = OpLoad %6 %48
+         %75 = OpIAdd %6 %74 %46
+               OpStore %48 %75
+               OpBranch %50
+         %52 = OpLabel
+         %76 = OpLoad %6 %44
+         %77 = OpIAdd %6 %76 %46
+               OpStore %78 %77
+         %80 = OpLoad %6 %15
+               OpStore %79 %80
+         %81 = OpFunctionCall %2 %11 %78 %79
+         %82 = OpLoad %6 %44
+         %83 = OpIAdd %6 %82 %46
+               OpReturnValue %83
+               OpFunctionEnd
+         %18 = OpFunction %2 None %3
+         %19 = OpLabel
+         %86 = OpVariable %7 Function
+         %87 = OpVariable %7 Function
+         %89 = OpVariable %7 Function
+         %92 = OpVariable %91 Function
+        %116 = OpVariable %7 Function
+        %117 = OpVariable %7 Function
+        %119 = OpVariable %7 Function
+               OpStore %86 %27
+               OpStore %87 %88
+               OpStore %89 %90
+         %93 = OpLoad %6 %89
+         %94 = OpIAdd %6 %93 %46
+               OpStore %89 %94
+         %95 = OpLoad %6 %86
+         %96 = OpAccessChain %7 %92 %94
+               OpStore %96 %95
+         %97 = OpLoad %6 %89
+         %98 = OpIAdd %6 %97 %46
+               OpStore %89 %98
+         %99 = OpLoad %6 %87
+        %100 = OpAccessChain %7 %92 %98
+               OpStore %100 %99
+               OpBranch %101
+        %101 = OpLabel
+               OpLoopMerge %103 %104 None
+               OpBranch %105
+        %105 = OpLabel
+        %106 = OpLoad %6 %89
+        %107 = OpSGreaterThanEqual %58 %106 %27
+               OpBranchConditional %107 %102 %103
+        %102 = OpLabel
+        %108 = OpLoad %6 %89
+        %109 = OpISub %6 %108 %46
+               OpStore %89 %109
+        %110 = OpAccessChain %7 %92 %108
+        %111 = OpLoad %6 %110
+               OpStore %87 %111
+        %112 = OpLoad %6 %89
+        %113 = OpISub %6 %112 %46
+               OpStore %89 %113
+        %114 = OpAccessChain %7 %92 %112
+        %115 = OpLoad %6 %114
+               OpStore %86 %115
+        %118 = OpLoad %6 %86
+               OpStore %117 %118
+        %120 = OpLoad %6 %87
+               OpStore %119 %120
+        %121 = OpFunctionCall %6 %16 %117 %119
+               OpStore %116 %121
+        %122 = OpLoad %6 %116
+        %123 = OpISub %6 %122 %46
+        %124 = OpLoad %6 %86
+        %125 = OpSGreaterThan %58 %123 %124
+               OpSelectionMerge %127 None
+               OpBranchConditional %125 %126 %127
+        %126 = OpLabel
+        %128 = OpLoad %6 %89
+        %129 = OpIAdd %6 %128 %46
+               OpStore %89 %129
+        %130 = OpLoad %6 %86
+        %131 = OpAccessChain %7 %92 %129
+               OpStore %131 %130
+        %132 = OpLoad %6 %89
+        %133 = OpIAdd %6 %132 %46
+               OpStore %89 %133
+        %134 = OpLoad %6 %116
+        %135 = OpISub %6 %134 %46
+        %136 = OpAccessChain %7 %92 %133
+               OpStore %136 %135
+               OpBranch %127
+        %127 = OpLabel
+        %137 = OpLoad %6 %116
+        %138 = OpIAdd %6 %137 %46
+        %139 = OpLoad %6 %87
+        %140 = OpSLessThan %58 %138 %139
+               OpSelectionMerge %142 None
+               OpBranchConditional %140 %141 %142
+        %141 = OpLabel
+        %143 = OpLoad %6 %89
+        %144 = OpIAdd %6 %143 %46
+               OpStore %89 %144
+        %145 = OpLoad %6 %116
+        %146 = OpIAdd %6 %145 %46
+        %147 = OpAccessChain %7 %92 %144
+               OpStore %147 %146
+        %148 = OpLoad %6 %89
+        %149 = OpIAdd %6 %148 %46
+               OpStore %89 %149
+        %150 = OpLoad %6 %87
+        %151 = OpAccessChain %7 %92 %149
+               OpStore %151 %150
+               OpBranch %142
+        %142 = OpLabel
+               OpBranch %104
+        %104 = OpLabel
+               OpBranch %101
+        %103 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# resolution
+BUFFER variant_resolution DATA_TYPE vec2<float> DATA
+ 256.0 256.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_resolution AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/array-idx-multiplied-by-for-loop-idx.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/array-idx-multiplied-by-for-loop-idx.amber
new file mode 100644
index 0000000..0ef9814
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/array-idx-multiplied-by-for-loop-idx.amber
@@ -0,0 +1,298 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: A fragment shader with array index multiplied
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     vec2 injectionSwitch;
+# };
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# // Function always returns 5.0.
+# float func()
+# {
+#     if (gl_FragCoord.x < 1.0)
+#         return 5.0;
+#
+#     // Always false.
+#     if (injectionSwitch.x > injectionSwitch.y)
+#         return 1.0;
+#
+#     int x = int(injectionSwitch.x);
+#
+#     x += int(clamp(injectionSwitch.x, 0.0, 1.0)) * 3;
+#
+#     return 5.0 + float(x);
+# }
+#
+# void main()
+# {
+#     vec2 data[17];
+#
+#     for (int i = 0; i < 4 + int(injectionSwitch.x); i++)
+#     {
+#         // Always true.
+#         if (gl_FragCoord.x >= 0.0)
+#         {
+#             for (int j = 0; j < 4; j++)
+#             {
+#                 data[4 * j + i].x = func();
+#
+#                 // Always true.
+#                 if (data[0].x == 5.0 || data[15].x == 5.0)
+#                     _GLF_color = vec4(1, 0, 0, 1);
+#                 else
+#                     _GLF_color = vec4(0);
+#
+#                 // Always false.
+#                 if (injectionSwitch.x > injectionSwitch.y)
+#                     return;
+#             }
+#         }
+#     }
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 128
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %12 %111
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "func("
+               OpName %12 "gl_FragCoord"
+               OpName %26 "buf0"
+               OpMemberName %26 0 "injectionSwitch"
+               OpName %28 ""
+               OpName %42 "x"
+               OpName %60 "i"
+               OpName %78 "j"
+               OpName %89 "data"
+               OpName %111 "_GLF_color"
+               OpDecorate %12 BuiltIn FragCoord
+               OpMemberDecorate %26 0 Offset 0
+               OpDecorate %26 Block
+               OpDecorate %28 DescriptorSet 0
+               OpDecorate %28 Binding 0
+               OpDecorate %111 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeFunction %6
+         %10 = OpTypeVector %6 4
+         %11 = OpTypePointer Input %10
+         %12 = OpVariable %11 Input
+         %13 = OpTypeInt 32 0
+         %14 = OpConstant %13 0
+         %15 = OpTypePointer Input %6
+         %18 = OpConstant %6 1
+         %19 = OpTypeBool
+         %23 = OpConstant %6 5
+         %25 = OpTypeVector %6 2
+         %26 = OpTypeStruct %25
+         %27 = OpTypePointer Uniform %26
+         %28 = OpVariable %27 Uniform
+         %29 = OpTypeInt 32 1
+         %30 = OpConstant %29 0
+         %31 = OpTypePointer Uniform %6
+         %34 = OpConstant %13 1
+         %41 = OpTypePointer Function %29
+         %48 = OpConstant %6 0
+         %51 = OpConstant %29 3
+         %67 = OpConstant %29 4
+         %86 = OpConstant %13 17
+         %87 = OpTypeArray %25 %86
+         %88 = OpTypePointer Function %87
+         %95 = OpTypePointer Function %6
+        %103 = OpConstant %29 15
+        %110 = OpTypePointer Output %10
+        %111 = OpVariable %110 Output
+        %112 = OpConstantComposite %10 %18 %48 %48 %18
+        %114 = OpConstantComposite %10 %48 %48 %48 %48
+        %124 = OpConstant %29 1
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %60 = OpVariable %41 Function
+         %78 = OpVariable %41 Function
+         %89 = OpVariable %88 Function
+               OpStore %60 %30
+               OpBranch %61
+         %61 = OpLabel
+               OpLoopMerge %63 %64 None
+               OpBranch %65
+         %65 = OpLabel
+         %66 = OpLoad %29 %60
+         %68 = OpAccessChain %31 %28 %30 %14
+         %69 = OpLoad %6 %68
+         %70 = OpConvertFToS %29 %69
+         %71 = OpIAdd %29 %67 %70
+         %72 = OpSLessThan %19 %66 %71
+               OpBranchConditional %72 %62 %63
+         %62 = OpLabel
+         %73 = OpAccessChain %15 %12 %14
+         %74 = OpLoad %6 %73
+         %75 = OpFOrdGreaterThanEqual %19 %74 %48
+               OpSelectionMerge %77 None
+               OpBranchConditional %75 %76 %77
+         %76 = OpLabel
+               OpStore %78 %30
+               OpBranch %79
+         %79 = OpLabel
+               OpLoopMerge %81 %82 None
+               OpBranch %83
+         %83 = OpLabel
+         %84 = OpLoad %29 %78
+         %85 = OpSLessThan %19 %84 %67
+               OpBranchConditional %85 %80 %81
+         %80 = OpLabel
+         %90 = OpLoad %29 %78
+         %91 = OpIMul %29 %67 %90
+         %92 = OpLoad %29 %60
+         %93 = OpIAdd %29 %91 %92
+         %94 = OpFunctionCall %6 %8
+         %96 = OpAccessChain %95 %89 %93 %14
+               OpStore %96 %94
+         %97 = OpAccessChain %95 %89 %30 %14
+         %98 = OpLoad %6 %97
+         %99 = OpFOrdEqual %19 %98 %23
+        %100 = OpLogicalNot %19 %99
+               OpSelectionMerge %102 None
+               OpBranchConditional %100 %101 %102
+        %101 = OpLabel
+        %104 = OpAccessChain %95 %89 %103 %14
+        %105 = OpLoad %6 %104
+        %106 = OpFOrdEqual %19 %105 %23
+               OpBranch %102
+        %102 = OpLabel
+        %107 = OpPhi %19 %99 %80 %106 %101
+               OpSelectionMerge %109 None
+               OpBranchConditional %107 %108 %113
+        %108 = OpLabel
+               OpStore %111 %112
+               OpBranch %109
+        %113 = OpLabel
+               OpStore %111 %114
+               OpBranch %109
+        %109 = OpLabel
+        %115 = OpAccessChain %31 %28 %30 %14
+        %116 = OpLoad %6 %115
+        %117 = OpAccessChain %31 %28 %30 %34
+        %118 = OpLoad %6 %117
+        %119 = OpFOrdGreaterThan %19 %116 %118
+               OpSelectionMerge %121 None
+               OpBranchConditional %119 %120 %121
+        %120 = OpLabel
+               OpReturn
+        %121 = OpLabel
+               OpBranch %82
+         %82 = OpLabel
+        %123 = OpLoad %29 %78
+        %125 = OpIAdd %29 %123 %124
+               OpStore %78 %125
+               OpBranch %79
+         %81 = OpLabel
+               OpBranch %77
+         %77 = OpLabel
+               OpBranch %64
+         %64 = OpLabel
+        %126 = OpLoad %29 %60
+        %127 = OpIAdd %29 %126 %124
+               OpStore %60 %127
+               OpBranch %61
+         %63 = OpLabel
+               OpReturn
+               OpFunctionEnd
+          %8 = OpFunction %6 None %7
+          %9 = OpLabel
+         %42 = OpVariable %41 Function
+         %16 = OpAccessChain %15 %12 %14
+         %17 = OpLoad %6 %16
+         %20 = OpFOrdLessThan %19 %17 %18
+               OpSelectionMerge %22 None
+               OpBranchConditional %20 %21 %22
+         %21 = OpLabel
+               OpReturnValue %23
+         %22 = OpLabel
+         %32 = OpAccessChain %31 %28 %30 %14
+         %33 = OpLoad %6 %32
+         %35 = OpAccessChain %31 %28 %30 %34
+         %36 = OpLoad %6 %35
+         %37 = OpFOrdGreaterThan %19 %33 %36
+               OpSelectionMerge %39 None
+               OpBranchConditional %37 %38 %39
+         %38 = OpLabel
+               OpReturnValue %18
+         %39 = OpLabel
+         %43 = OpAccessChain %31 %28 %30 %14
+         %44 = OpLoad %6 %43
+         %45 = OpConvertFToS %29 %44
+               OpStore %42 %45
+         %46 = OpAccessChain %31 %28 %30 %14
+         %47 = OpLoad %6 %46
+         %49 = OpExtInst %6 %1 FClamp %47 %48 %18
+         %50 = OpConvertFToS %29 %49
+         %52 = OpIMul %29 %50 %51
+         %53 = OpLoad %29 %42
+         %54 = OpIAdd %29 %53 %52
+               OpStore %42 %54
+         %55 = OpLoad %29 %42
+         %56 = OpConvertSToF %6 %55
+         %57 = OpFAdd %6 %23 %56
+               OpReturnValue %57
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# injectionSwitch
+BUFFER variant_injectionSwitch DATA_TYPE vec2<float> DATA
+ 0.0 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_injectionSwitch AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/assign-array-value-to-another-array-2.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/assign-array-value-to-another-array-2.amber
new file mode 100644
index 0000000..59a23e6
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/assign-array-value-to-another-array-2.amber
@@ -0,0 +1,301 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: A fragment shader that assigns array values to other array
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# int data[9], temp[7];
+#
+# // Returns 1.0.
+# float func(int a)
+# {
+#     int b = 0;
+#
+#     data[0] = 5;
+#     data[2] = 0;
+#     data[4] = 0;
+#     data[6] = 0;
+#     data[8] = 0;
+#
+#     // Always true.
+#     if (gl_FragCoord.x >= 0.0)
+#     {
+#         while (b <= a)
+#         {
+#             if (b <= 5) {
+#                 // When b == 0, a value of data[0] is given to
+#                 // temp[0], making it's value 5.
+#                 temp[b] = data[b];
+#             b += 2;
+#             }
+#         }
+#     }
+#
+#     for (int i = 0; i < 3; i++)
+#     // On first iteration data[0] value is set to
+#     // temp[0] + 1, which will be: 5 + 1 == 6.
+#         data[i] = temp[0] + 1;
+#
+#     // Always true.
+#     if (temp[0] == 5 && data[0] == 6)
+#         return 1.0;
+#     else
+#         return 0.0;
+# }
+#
+# void main()
+# {
+#     for (int i = 0; i < 6; i++)
+#     {
+#         func(i);
+#
+#         // Always true.
+#         if(func(i) == 1.0)
+#             _GLF_color = vec4(1, 0, 0, 1);
+#         else
+#             _GLF_color = vec4(0);
+#     }
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 123
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %33 %117
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %11 "func(i1;"
+               OpName %10 "a"
+               OpName %13 "b"
+               OpName %19 "data"
+               OpName %33 "gl_FragCoord"
+               OpName %58 "temp"
+               OpName %66 "i"
+               OpName %99 "i"
+               OpName %107 "param"
+               OpName %110 "param"
+               OpName %117 "_GLF_color"
+               OpDecorate %33 BuiltIn FragCoord
+               OpDecorate %117 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %8 = OpTypeFloat 32
+          %9 = OpTypeFunction %8 %7
+         %14 = OpConstant %6 0
+         %15 = OpTypeInt 32 0
+         %16 = OpConstant %15 9
+         %17 = OpTypeArray %6 %16
+         %18 = OpTypePointer Private %17
+         %19 = OpVariable %18 Private
+         %20 = OpConstant %6 5
+         %21 = OpTypePointer Private %6
+         %23 = OpConstant %6 2
+         %25 = OpConstant %6 4
+         %27 = OpConstant %6 6
+         %29 = OpConstant %6 8
+         %31 = OpTypeVector %8 4
+         %32 = OpTypePointer Input %31
+         %33 = OpVariable %32 Input
+         %34 = OpConstant %15 0
+         %35 = OpTypePointer Input %8
+         %38 = OpConstant %8 0
+         %39 = OpTypeBool
+         %55 = OpConstant %15 7
+         %56 = OpTypeArray %6 %55
+         %57 = OpTypePointer Private %56
+         %58 = OpVariable %57 Private
+         %73 = OpConstant %6 3
+         %78 = OpConstant %6 1
+         %94 = OpConstant %8 1
+        %116 = OpTypePointer Output %31
+        %117 = OpVariable %116 Output
+        %118 = OpConstantComposite %31 %94 %38 %38 %94
+        %120 = OpConstantComposite %31 %38 %38 %38 %38
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %99 = OpVariable %7 Function
+        %107 = OpVariable %7 Function
+        %110 = OpVariable %7 Function
+               OpStore %99 %14
+               OpBranch %100
+        %100 = OpLabel
+               OpLoopMerge %102 %103 None
+               OpBranch %104
+        %104 = OpLabel
+        %105 = OpLoad %6 %99
+        %106 = OpSLessThan %39 %105 %27
+               OpBranchConditional %106 %101 %102
+        %101 = OpLabel
+        %108 = OpLoad %6 %99
+               OpStore %107 %108
+        %109 = OpFunctionCall %8 %11 %107
+        %111 = OpLoad %6 %99
+               OpStore %110 %111
+        %112 = OpFunctionCall %8 %11 %110
+        %113 = OpFOrdEqual %39 %112 %94
+               OpSelectionMerge %115 None
+               OpBranchConditional %113 %114 %119
+        %114 = OpLabel
+               OpStore %117 %118
+               OpBranch %115
+        %119 = OpLabel
+               OpStore %117 %120
+               OpBranch %115
+        %115 = OpLabel
+               OpBranch %103
+        %103 = OpLabel
+        %121 = OpLoad %6 %99
+        %122 = OpIAdd %6 %121 %78
+               OpStore %99 %122
+               OpBranch %100
+        %102 = OpLabel
+               OpReturn
+               OpFunctionEnd
+         %11 = OpFunction %8 None %9
+         %10 = OpFunctionParameter %7
+         %12 = OpLabel
+         %13 = OpVariable %7 Function
+         %66 = OpVariable %7 Function
+               OpStore %13 %14
+         %22 = OpAccessChain %21 %19 %14
+               OpStore %22 %20
+         %24 = OpAccessChain %21 %19 %23
+               OpStore %24 %14
+         %26 = OpAccessChain %21 %19 %25
+               OpStore %26 %14
+         %28 = OpAccessChain %21 %19 %27
+               OpStore %28 %14
+         %30 = OpAccessChain %21 %19 %29
+               OpStore %30 %14
+         %36 = OpAccessChain %35 %33 %34
+         %37 = OpLoad %8 %36
+         %40 = OpFOrdGreaterThanEqual %39 %37 %38
+               OpSelectionMerge %42 None
+               OpBranchConditional %40 %41 %42
+         %41 = OpLabel
+               OpBranch %43
+         %43 = OpLabel
+               OpLoopMerge %45 %46 None
+               OpBranch %47
+         %47 = OpLabel
+         %48 = OpLoad %6 %13
+         %49 = OpLoad %6 %10
+         %50 = OpSLessThanEqual %39 %48 %49
+               OpBranchConditional %50 %44 %45
+         %44 = OpLabel
+         %51 = OpLoad %6 %13
+         %52 = OpSLessThanEqual %39 %51 %20
+               OpSelectionMerge %54 None
+               OpBranchConditional %52 %53 %54
+         %53 = OpLabel
+         %59 = OpLoad %6 %13
+         %60 = OpLoad %6 %13
+         %61 = OpAccessChain %21 %19 %60
+         %62 = OpLoad %6 %61
+         %63 = OpAccessChain %21 %58 %59
+               OpStore %63 %62
+         %64 = OpLoad %6 %13
+         %65 = OpIAdd %6 %64 %23
+               OpStore %13 %65
+               OpBranch %54
+         %54 = OpLabel
+               OpBranch %46
+         %46 = OpLabel
+               OpBranch %43
+         %45 = OpLabel
+               OpBranch %42
+         %42 = OpLabel
+               OpStore %66 %14
+               OpBranch %67
+         %67 = OpLabel
+               OpLoopMerge %69 %70 None
+               OpBranch %71
+         %71 = OpLabel
+         %72 = OpLoad %6 %66
+         %74 = OpSLessThan %39 %72 %73
+               OpBranchConditional %74 %68 %69
+         %68 = OpLabel
+         %75 = OpLoad %6 %66
+         %76 = OpAccessChain %21 %58 %14
+         %77 = OpLoad %6 %76
+         %79 = OpIAdd %6 %77 %78
+         %80 = OpAccessChain %21 %19 %75
+               OpStore %80 %79
+               OpBranch %70
+         %70 = OpLabel
+         %81 = OpLoad %6 %66
+         %82 = OpIAdd %6 %81 %78
+               OpStore %66 %82
+               OpBranch %67
+         %69 = OpLabel
+         %83 = OpAccessChain %21 %58 %14
+         %84 = OpLoad %6 %83
+         %85 = OpIEqual %39 %84 %20
+               OpSelectionMerge %87 None
+               OpBranchConditional %85 %86 %87
+         %86 = OpLabel
+         %88 = OpAccessChain %21 %19 %14
+         %89 = OpLoad %6 %88
+         %90 = OpIEqual %39 %89 %27
+               OpBranch %87
+         %87 = OpLabel
+         %91 = OpPhi %39 %85 %69 %90 %86
+               OpSelectionMerge %93 None
+               OpBranchConditional %91 %92 %96
+         %92 = OpLabel
+               OpReturnValue %94
+         %96 = OpLabel
+               OpReturnValue %38
+         %93 = OpLabel
+               OpUnreachable
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/assign-array-value-to-another-array.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/assign-array-value-to-another-array.amber
new file mode 100644
index 0000000..8584b71
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/assign-array-value-to-another-array.amber
@@ -0,0 +1,248 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: A fragment shader that assigns array values to other array
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void func(int x)
+# {
+#     int data[9], temp[2];
+#     int a = 0;
+#     data[0] = 5;
+#
+#     // For the values of x used in this test, the following loop
+#     // runs at least twice, making temp[0] = 5 and temp[1] = 5.
+#     while (a <= x)
+#     {
+#         // Always true.
+#         if (a <= 10) {
+#         // When a == 0 this sets temp[0] to data[0] == 5;
+#         // otherwise it sets temp[1] to data[0] == 5.
+#             temp[min(a, 1)] = data[min(a, 0)];
+#         a++;
+#         }
+#     }
+#
+#     // This loop sets data[0] and data[1] to 5 and 6.
+#     for (int i = 0; i < 2; i++)
+#         data[i] = temp[0] + i;
+#
+#     if (data[0] == 5 && data[1] == 6)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+#
+# void main()
+# {
+#     for (int i = 1; i < 6; i++)
+#         func(i);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 100
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %81
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %10 "func(i1;"
+               OpName %9 "x"
+               OpName %12 "a"
+               OpName %18 "data"
+               OpName %38 "temp"
+               OpName %49 "i"
+               OpName %81 "_GLF_color"
+               OpName %87 "i"
+               OpName %95 "param"
+               OpDecorate %81 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %8 = OpTypeFunction %2 %7
+         %13 = OpConstant %6 0
+         %14 = OpTypeInt 32 0
+         %15 = OpConstant %14 9
+         %16 = OpTypeArray %6 %15
+         %17 = OpTypePointer Function %16
+         %19 = OpConstant %6 5
+         %28 = OpTypeBool
+         %31 = OpConstant %6 10
+         %35 = OpConstant %14 2
+         %36 = OpTypeArray %6 %35
+         %37 = OpTypePointer Function %36
+         %40 = OpConstant %6 1
+         %56 = OpConstant %6 2
+         %73 = OpConstant %6 6
+         %78 = OpTypeFloat 32
+         %79 = OpTypeVector %78 4
+         %80 = OpTypePointer Output %79
+         %81 = OpVariable %80 Output
+         %82 = OpConstant %78 1
+         %83 = OpConstant %78 0
+         %84 = OpConstantComposite %79 %82 %83 %83 %82
+         %86 = OpConstantComposite %79 %83 %83 %83 %83
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %87 = OpVariable %7 Function
+         %95 = OpVariable %7 Function
+               OpStore %87 %40
+               OpBranch %88
+         %88 = OpLabel
+               OpLoopMerge %90 %91 None
+               OpBranch %92
+         %92 = OpLabel
+         %93 = OpLoad %6 %87
+         %94 = OpSLessThan %28 %93 %73
+               OpBranchConditional %94 %89 %90
+         %89 = OpLabel
+         %96 = OpLoad %6 %87
+               OpStore %95 %96
+         %97 = OpFunctionCall %2 %10 %95
+               OpBranch %91
+         %91 = OpLabel
+         %98 = OpLoad %6 %87
+         %99 = OpIAdd %6 %98 %40
+               OpStore %87 %99
+               OpBranch %88
+         %90 = OpLabel
+               OpReturn
+               OpFunctionEnd
+         %10 = OpFunction %2 None %8
+          %9 = OpFunctionParameter %7
+         %11 = OpLabel
+         %12 = OpVariable %7 Function
+         %18 = OpVariable %17 Function
+         %38 = OpVariable %37 Function
+         %49 = OpVariable %7 Function
+               OpStore %12 %13
+         %20 = OpAccessChain %7 %18 %13
+               OpStore %20 %19
+               OpBranch %21
+         %21 = OpLabel
+               OpLoopMerge %23 %24 None
+               OpBranch %25
+         %25 = OpLabel
+         %26 = OpLoad %6 %12
+         %27 = OpLoad %6 %9
+         %29 = OpSLessThanEqual %28 %26 %27
+               OpBranchConditional %29 %22 %23
+         %22 = OpLabel
+         %30 = OpLoad %6 %12
+         %32 = OpSLessThanEqual %28 %30 %31
+               OpSelectionMerge %34 None
+               OpBranchConditional %32 %33 %34
+         %33 = OpLabel
+         %39 = OpLoad %6 %12
+         %41 = OpExtInst %6 %1 SMin %39 %40
+         %42 = OpLoad %6 %12
+         %43 = OpExtInst %6 %1 SMin %42 %13
+         %44 = OpAccessChain %7 %18 %43
+         %45 = OpLoad %6 %44
+         %46 = OpAccessChain %7 %38 %41
+               OpStore %46 %45
+         %47 = OpLoad %6 %12
+         %48 = OpIAdd %6 %47 %40
+               OpStore %12 %48
+               OpBranch %34
+         %34 = OpLabel
+               OpBranch %24
+         %24 = OpLabel
+               OpBranch %21
+         %23 = OpLabel
+               OpStore %49 %13
+               OpBranch %50
+         %50 = OpLabel
+               OpLoopMerge %52 %53 None
+               OpBranch %54
+         %54 = OpLabel
+         %55 = OpLoad %6 %49
+         %57 = OpSLessThan %28 %55 %56
+               OpBranchConditional %57 %51 %52
+         %51 = OpLabel
+         %58 = OpLoad %6 %49
+         %59 = OpAccessChain %7 %38 %13
+         %60 = OpLoad %6 %59
+         %61 = OpLoad %6 %49
+         %62 = OpIAdd %6 %60 %61
+         %63 = OpAccessChain %7 %18 %58
+               OpStore %63 %62
+               OpBranch %53
+         %53 = OpLabel
+         %64 = OpLoad %6 %49
+         %65 = OpIAdd %6 %64 %40
+               OpStore %49 %65
+               OpBranch %50
+         %52 = OpLabel
+         %66 = OpAccessChain %7 %18 %13
+         %67 = OpLoad %6 %66
+         %68 = OpIEqual %28 %67 %19
+               OpSelectionMerge %70 None
+               OpBranchConditional %68 %69 %70
+         %69 = OpLabel
+         %71 = OpAccessChain %7 %18 %40
+         %72 = OpLoad %6 %71
+         %74 = OpIEqual %28 %72 %73
+               OpBranch %70
+         %70 = OpLabel
+         %75 = OpPhi %28 %68 %52 %74 %69
+               OpSelectionMerge %77 None
+               OpBranchConditional %75 %76 %85
+         %76 = OpLabel
+               OpStore %81 %84
+               OpBranch %77
+         %85 = OpLabel
+               OpStore %81 %86
+               OpBranch %77
+         %77 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cosh-return-inf-unused.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cosh-return-inf-unused.amber
new file mode 100644
index 0000000..907a32a
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cosh-return-inf-unused.amber
@@ -0,0 +1,346 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: Cosh returns inf for one component which is never used
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float zero;
+# };
+#
+# // Returns 3.0 if b > 1, otherwise returns 5.0.
+# float func(int b)
+# {
+#     for (int ndx = 0; ndx < 2; ndx++)
+#     {
+#         // Always false.
+#         if (gl_FragCoord.x < 0.0)
+#         {
+#             for (int i = 0; i < 2; i++)
+#             {
+#                 // Always false.
+#                 if (int(cosh(vec2(1, 800)).x) <= 1)
+#                     discard;
+#             }
+#         }
+#     }
+#
+#     if (b > 1)
+#         return 3.0;
+#
+#     // Always false.
+#     if (gl_FragCoord.x < 0.0)
+#         _GLF_color = vec4(0);
+#
+#     return 5.0;
+# }
+#
+# void main()
+# {
+#     _GLF_color = vec4(1);
+#     float f = 0.0;
+#
+#     do
+#     {
+#         // Always false.
+#         if (int(_GLF_color.y) < 0)
+#             discard;
+#         else
+#             f = func(int(zero)); // f == 5.0
+#
+#         // Always false.
+#         if (int(_GLF_color.y) > 65)
+#             discard;
+#
+#         for (int x = 0; x < int(zero) + 1; x++)
+#         {
+#             f = func(x + 10); // f == 3.0
+#         }
+#
+#     } while (int(zero) > 1); // Always false.
+#
+#     if (f == 3.0)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 140
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %26 %72
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %11 "func(i1;"
+               OpName %10 "b"
+               OpName %13 "ndx"
+               OpName %26 "gl_FragCoord"
+               OpName %36 "i"
+               OpName %72 "_GLF_color"
+               OpName %79 "f"
+               OpName %94 "buf0"
+               OpMemberName %94 0 "zero"
+               OpName %96 ""
+               OpName %101 "param"
+               OpName %111 "x"
+               OpName %126 "param"
+               OpDecorate %26 BuiltIn FragCoord
+               OpDecorate %72 Location 0
+               OpMemberDecorate %94 0 Offset 0
+               OpDecorate %94 Block
+               OpDecorate %96 DescriptorSet 0
+               OpDecorate %96 Binding 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %8 = OpTypeFloat 32
+          %9 = OpTypeFunction %8 %7
+         %14 = OpConstant %6 0
+         %21 = OpConstant %6 2
+         %22 = OpTypeBool
+         %24 = OpTypeVector %8 4
+         %25 = OpTypePointer Input %24
+         %26 = OpVariable %25 Input
+         %27 = OpTypeInt 32 0
+         %28 = OpConstant %27 0
+         %29 = OpTypePointer Input %8
+         %32 = OpConstant %8 0
+         %44 = OpTypeVector %8 2
+         %45 = OpConstant %8 1
+         %46 = OpConstant %8 800
+         %47 = OpConstantComposite %44 %45 %46
+         %51 = OpConstant %6 1
+         %64 = OpConstant %8 3
+         %71 = OpTypePointer Output %24
+         %72 = OpVariable %71 Output
+         %73 = OpConstantComposite %24 %32 %32 %32 %32
+         %74 = OpConstant %8 5
+         %77 = OpConstantComposite %24 %45 %45 %45 %45
+         %78 = OpTypePointer Function %8
+         %84 = OpConstant %27 1
+         %85 = OpTypePointer Output %8
+         %94 = OpTypeStruct %8
+         %95 = OpTypePointer Uniform %94
+         %96 = OpVariable %95 Uniform
+         %97 = OpTypePointer Uniform %8
+        %106 = OpConstant %6 65
+        %124 = OpConstant %6 10
+        %138 = OpConstantComposite %24 %45 %32 %32 %45
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %79 = OpVariable %78 Function
+        %101 = OpVariable %7 Function
+        %111 = OpVariable %7 Function
+        %126 = OpVariable %7 Function
+               OpStore %72 %77
+               OpStore %79 %32
+               OpBranch %80
+         %80 = OpLabel
+               OpLoopMerge %82 %83 None
+               OpBranch %81
+         %81 = OpLabel
+         %86 = OpAccessChain %85 %72 %84
+         %87 = OpLoad %8 %86
+         %88 = OpConvertFToS %6 %87
+         %89 = OpSLessThan %22 %88 %14
+               OpSelectionMerge %91 None
+               OpBranchConditional %89 %90 %93
+         %90 = OpLabel
+               OpKill
+         %93 = OpLabel
+         %98 = OpAccessChain %97 %96 %14
+         %99 = OpLoad %8 %98
+        %100 = OpConvertFToS %6 %99
+               OpStore %101 %100
+        %102 = OpFunctionCall %8 %11 %101
+               OpStore %79 %102
+               OpBranch %91
+         %91 = OpLabel
+        %103 = OpAccessChain %85 %72 %84
+        %104 = OpLoad %8 %103
+        %105 = OpConvertFToS %6 %104
+        %107 = OpSGreaterThan %22 %105 %106
+               OpSelectionMerge %109 None
+               OpBranchConditional %107 %108 %109
+        %108 = OpLabel
+               OpKill
+        %109 = OpLabel
+               OpStore %111 %14
+               OpBranch %112
+        %112 = OpLabel
+               OpLoopMerge %114 %115 None
+               OpBranch %116
+        %116 = OpLabel
+        %117 = OpLoad %6 %111
+        %118 = OpAccessChain %97 %96 %14
+        %119 = OpLoad %8 %118
+        %120 = OpConvertFToS %6 %119
+        %121 = OpIAdd %6 %120 %51
+        %122 = OpSLessThan %22 %117 %121
+               OpBranchConditional %122 %113 %114
+        %113 = OpLabel
+        %123 = OpLoad %6 %111
+        %125 = OpIAdd %6 %123 %124
+               OpStore %126 %125
+        %127 = OpFunctionCall %8 %11 %126
+               OpStore %79 %127
+               OpBranch %115
+        %115 = OpLabel
+        %128 = OpLoad %6 %111
+        %129 = OpIAdd %6 %128 %51
+               OpStore %111 %129
+               OpBranch %112
+        %114 = OpLabel
+               OpBranch %83
+         %83 = OpLabel
+        %130 = OpAccessChain %97 %96 %14
+        %131 = OpLoad %8 %130
+        %132 = OpConvertFToS %6 %131
+        %133 = OpSGreaterThan %22 %132 %51
+               OpBranchConditional %133 %80 %82
+         %82 = OpLabel
+        %134 = OpLoad %8 %79
+        %135 = OpFOrdEqual %22 %134 %64
+               OpSelectionMerge %137 None
+               OpBranchConditional %135 %136 %139
+        %136 = OpLabel
+               OpStore %72 %138
+               OpBranch %137
+        %139 = OpLabel
+               OpStore %72 %73
+               OpBranch %137
+        %137 = OpLabel
+               OpReturn
+               OpFunctionEnd
+         %11 = OpFunction %8 None %9
+         %10 = OpFunctionParameter %7
+         %12 = OpLabel
+         %13 = OpVariable %7 Function
+         %36 = OpVariable %7 Function
+               OpStore %13 %14
+               OpBranch %15
+         %15 = OpLabel
+               OpLoopMerge %17 %18 None
+               OpBranch %19
+         %19 = OpLabel
+         %20 = OpLoad %6 %13
+         %23 = OpSLessThan %22 %20 %21
+               OpBranchConditional %23 %16 %17
+         %16 = OpLabel
+         %30 = OpAccessChain %29 %26 %28
+         %31 = OpLoad %8 %30
+         %33 = OpFOrdLessThan %22 %31 %32
+               OpSelectionMerge %35 None
+               OpBranchConditional %33 %34 %35
+         %34 = OpLabel
+               OpStore %36 %14
+               OpBranch %37
+         %37 = OpLabel
+               OpLoopMerge %39 %40 None
+               OpBranch %41
+         %41 = OpLabel
+         %42 = OpLoad %6 %36
+         %43 = OpSLessThan %22 %42 %21
+               OpBranchConditional %43 %38 %39
+         %38 = OpLabel
+         %48 = OpExtInst %44 %1 Cosh %47
+         %49 = OpCompositeExtract %8 %48 0
+         %50 = OpConvertFToS %6 %49
+         %52 = OpSLessThanEqual %22 %50 %51
+               OpSelectionMerge %54 None
+               OpBranchConditional %52 %53 %54
+         %53 = OpLabel
+               OpKill
+         %54 = OpLabel
+               OpBranch %40
+         %40 = OpLabel
+         %56 = OpLoad %6 %36
+         %57 = OpIAdd %6 %56 %51
+               OpStore %36 %57
+               OpBranch %37
+         %39 = OpLabel
+               OpBranch %35
+         %35 = OpLabel
+               OpBranch %18
+         %18 = OpLabel
+         %58 = OpLoad %6 %13
+         %59 = OpIAdd %6 %58 %51
+               OpStore %13 %59
+               OpBranch %15
+         %17 = OpLabel
+         %60 = OpLoad %6 %10
+         %61 = OpSGreaterThan %22 %60 %51
+               OpSelectionMerge %63 None
+               OpBranchConditional %61 %62 %63
+         %62 = OpLabel
+               OpReturnValue %64
+         %63 = OpLabel
+         %66 = OpAccessChain %29 %26 %28
+         %67 = OpLoad %8 %66
+         %68 = OpFOrdLessThan %22 %67 %32
+               OpSelectionMerge %70 None
+               OpBranchConditional %68 %69 %70
+         %69 = OpLabel
+               OpStore %72 %73
+               OpBranch %70
+         %70 = OpLabel
+               OpReturnValue %74
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# zero
+BUFFER variant_zero DATA_TYPE float DATA
+ 0.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_zero AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-analysis-reachable-from-many.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-analysis-reachable-from-many.amber
new file mode 100644
index 0000000..ec66f10
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-analysis-reachable-from-many.amber
@@ -0,0 +1,217 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific LLVM analysis code path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int zero;
+# };
+#
+# // Always returns 5.0.
+# float func()
+# {
+#     float s = 2.0;
+#
+#     for(int i = 0; i < (zero + 1); i++)
+#     {
+#         s += 3.0;
+#
+#         for (int j = 0; j < 10; j++)
+#         {
+#             if (zero == 1) // Always false.
+#                 discard;
+#         }
+#     }
+#
+#     return s;
+# }
+#
+# void main()
+# {
+#     vec4 c = vec4(func(), 0, 0, 1);
+#
+#     if (func() == 5.0)
+#         _GLF_color = c;
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 75
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %71
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "func("
+               OpName %11 "s"
+               OpName %15 "i"
+               OpName %23 "buf0"
+               OpMemberName %23 0 "zero"
+               OpName %25 ""
+               OpName %36 "j"
+               OpName %60 "c"
+               OpName %71 "_GLF_color"
+               OpMemberDecorate %23 0 Offset 0
+               OpDecorate %23 Block
+               OpDecorate %25 DescriptorSet 0
+               OpDecorate %25 Binding 0
+               OpDecorate %71 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeFunction %6
+         %10 = OpTypePointer Function %6
+         %12 = OpConstant %6 2
+         %13 = OpTypeInt 32 1
+         %14 = OpTypePointer Function %13
+         %16 = OpConstant %13 0
+         %23 = OpTypeStruct %13
+         %24 = OpTypePointer Uniform %23
+         %25 = OpVariable %24 Uniform
+         %26 = OpTypePointer Uniform %13
+         %29 = OpConstant %13 1
+         %31 = OpTypeBool
+         %33 = OpConstant %6 3
+         %43 = OpConstant %13 10
+         %58 = OpTypeVector %6 4
+         %59 = OpTypePointer Function %58
+         %62 = OpConstant %6 0
+         %63 = OpConstant %6 1
+         %66 = OpConstant %6 5
+         %70 = OpTypePointer Output %58
+         %71 = OpVariable %70 Output
+         %74 = OpConstantComposite %58 %62 %62 %62 %62
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %60 = OpVariable %59 Function
+         %61 = OpFunctionCall %6 %8
+         %64 = OpCompositeConstruct %58 %61 %62 %62 %63
+               OpStore %60 %64
+         %65 = OpFunctionCall %6 %8
+         %67 = OpFOrdEqual %31 %65 %66
+               OpSelectionMerge %69 None
+               OpBranchConditional %67 %68 %73
+         %68 = OpLabel
+         %72 = OpLoad %58 %60
+               OpStore %71 %72
+               OpBranch %69
+         %73 = OpLabel
+               OpStore %71 %74
+               OpBranch %69
+         %69 = OpLabel
+               OpReturn
+               OpFunctionEnd
+          %8 = OpFunction %6 None %7
+          %9 = OpLabel
+         %11 = OpVariable %10 Function
+         %15 = OpVariable %14 Function
+         %36 = OpVariable %14 Function
+               OpStore %11 %12
+               OpStore %15 %16
+               OpBranch %17
+         %17 = OpLabel
+               OpLoopMerge %19 %20 None
+               OpBranch %21
+         %21 = OpLabel
+         %22 = OpLoad %13 %15
+         %27 = OpAccessChain %26 %25 %16
+         %28 = OpLoad %13 %27
+         %30 = OpIAdd %13 %28 %29
+         %32 = OpSLessThan %31 %22 %30
+               OpBranchConditional %32 %18 %19
+         %18 = OpLabel
+         %34 = OpLoad %6 %11
+         %35 = OpFAdd %6 %34 %33
+               OpStore %11 %35
+               OpStore %36 %16
+               OpBranch %37
+         %37 = OpLabel
+               OpLoopMerge %39 %40 None
+               OpBranch %41
+         %41 = OpLabel
+         %42 = OpLoad %13 %36
+         %44 = OpSLessThan %31 %42 %43
+               OpBranchConditional %44 %38 %39
+         %38 = OpLabel
+         %45 = OpAccessChain %26 %25 %16
+         %46 = OpLoad %13 %45
+         %47 = OpIEqual %31 %46 %29
+               OpSelectionMerge %49 None
+               OpBranchConditional %47 %48 %49
+         %48 = OpLabel
+               OpKill
+         %49 = OpLabel
+               OpBranch %40
+         %40 = OpLabel
+         %51 = OpLoad %13 %36
+         %52 = OpIAdd %13 %51 %29
+               OpStore %36 %52
+               OpBranch %37
+         %39 = OpLabel
+               OpBranch %20
+         %20 = OpLabel
+         %53 = OpLoad %13 %15
+         %54 = OpIAdd %13 %53 %29
+               OpStore %15 %54
+               OpBranch %17
+         %19 = OpLabel
+         %55 = OpLoad %6 %11
+               OpReturnValue %55
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# zero
+BUFFER variant_zero DATA_TYPE int32 DATA
+ 0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_zero AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-apfloat-acos-ldexp.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-apfloat-acos-ldexp.amber
new file mode 100644
index 0000000..51f4758
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-apfloat-acos-ldexp.amber
@@ -0,0 +1,148 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific AP float code path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int two;
+# };
+#
+# void main()
+# {
+#     vec2 v = acos(ldexp(vec2(0.1), ivec2(two, 3)));
+#     float d = distance(v, vec2(1.15928, 0.64350));
+#
+#     if (d < 0.01)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 46
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %40
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "v"
+               OpName %13 "buf0"
+               OpMemberName %13 0 "two"
+               OpName %15 ""
+               OpName %26 "d"
+               OpName %40 "_GLF_color"
+               OpMemberDecorate %13 0 Offset 0
+               OpDecorate %13 Block
+               OpDecorate %15 DescriptorSet 0
+               OpDecorate %15 Binding 0
+               OpDecorate %40 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 2
+          %8 = OpTypePointer Function %7
+         %10 = OpConstant %6 0.100000001
+         %11 = OpConstantComposite %7 %10 %10
+         %12 = OpTypeInt 32 1
+         %13 = OpTypeStruct %12
+         %14 = OpTypePointer Uniform %13
+         %15 = OpVariable %14 Uniform
+         %16 = OpConstant %12 0
+         %17 = OpTypePointer Uniform %12
+         %20 = OpConstant %12 3
+         %21 = OpTypeVector %12 2
+         %25 = OpTypePointer Function %6
+         %28 = OpConstant %6 1.15927994
+         %29 = OpConstant %6 0.64349997
+         %30 = OpConstantComposite %7 %28 %29
+         %33 = OpConstant %6 0.00999999978
+         %34 = OpTypeBool
+         %38 = OpTypeVector %6 4
+         %39 = OpTypePointer Output %38
+         %40 = OpVariable %39 Output
+         %41 = OpConstant %6 1
+         %42 = OpConstant %6 0
+         %43 = OpConstantComposite %38 %41 %42 %42 %41
+         %45 = OpConstantComposite %38 %42 %42 %42 %42
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %9 = OpVariable %8 Function
+         %26 = OpVariable %25 Function
+         %18 = OpAccessChain %17 %15 %16
+         %19 = OpLoad %12 %18
+         %22 = OpCompositeConstruct %21 %19 %20
+         %23 = OpExtInst %7 %1 Ldexp %11 %22
+         %24 = OpExtInst %7 %1 Acos %23
+               OpStore %9 %24
+         %27 = OpLoad %7 %9
+         %31 = OpExtInst %6 %1 Distance %27 %30
+               OpStore %26 %31
+         %32 = OpLoad %6 %26
+         %35 = OpFOrdLessThan %34 %32 %33
+               OpSelectionMerge %37 None
+               OpBranchConditional %35 %36 %44
+         %36 = OpLabel
+               OpStore %40 %43
+               OpBranch %37
+         %44 = OpLabel
+               OpStore %40 %45
+               OpBranch %37
+         %37 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# two
+BUFFER variant_two DATA_TYPE int32 DATA
+ 2
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_two AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-basic-block-discard-in-function.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-basic-block-discard-in-function.amber
new file mode 100644
index 0000000..f531e89
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-basic-block-discard-in-function.amber
@@ -0,0 +1,198 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific basic block code path
+
+# The test passes because shader always writes red.
+
+# Optimized using spirv-opt with the following arguments:
+# '--vector-dce'
+# '--combine-access-chains'
+# '--eliminate-local-multi-store'
+# '--scalar-replacement=100'
+# '--simplify-instructions'
+# '--eliminate-dead-branches'
+# '--merge-return'
+# '--combine-access-chains'
+# '--simplify-instructions'
+# '--eliminate-dead-branches'
+# '--merge-blocks'
+# spirv-opt commit hash: 9215c1b7df0029f27807e8c8d7ec80532ce90a87
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int zero;
+# };
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# int func(int x)
+# {
+#     if (x == 10) // Always false.
+#         discard;
+#
+#     return x;
+# }
+#
+# void main()
+# {
+#     int a = 0;
+#     int b = zero;
+#
+#     do
+#     {
+#         a = func(b);
+#         b++;
+#     }
+#     while(b < 4);
+#
+#     if (a == 3)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 59
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %52
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %10 "func(i1;"
+               OpName %9 "x"
+               OpName %22 "a"
+               OpName %24 "b"
+               OpName %25 "buf0"
+               OpMemberName %25 0 "zero"
+               OpName %27 ""
+               OpName %35 "param"
+               OpName %52 "_GLF_color"
+               OpMemberDecorate %25 0 Offset 0
+               OpDecorate %25 Block
+               OpDecorate %27 DescriptorSet 0
+               OpDecorate %27 Binding 0
+               OpDecorate %52 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %8 = OpTypeFunction %6 %7
+         %13 = OpConstant %6 10
+         %14 = OpTypeBool
+         %23 = OpConstant %6 0
+         %25 = OpTypeStruct %6
+         %26 = OpTypePointer Uniform %25
+         %27 = OpVariable %26 Uniform
+         %28 = OpTypePointer Uniform %6
+         %39 = OpConstant %6 1
+         %42 = OpConstant %6 4
+         %45 = OpConstant %6 3
+         %49 = OpTypeFloat 32
+         %50 = OpTypeVector %49 4
+         %51 = OpTypePointer Output %50
+         %52 = OpVariable %51 Output
+         %53 = OpConstant %49 1
+         %54 = OpConstant %49 0
+         %55 = OpConstantComposite %50 %53 %54 %54 %53
+         %57 = OpConstantComposite %50 %54 %54 %54 %54
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %22 = OpVariable %7 Function
+         %24 = OpVariable %7 Function
+         %35 = OpVariable %7 Function
+               OpStore %22 %23
+         %29 = OpAccessChain %28 %27 %23
+         %30 = OpLoad %6 %29
+               OpStore %24 %30
+               OpBranch %31
+         %31 = OpLabel
+         %58 = OpPhi %6 %30 %5 %40 %31
+               OpStore %35 %58
+         %37 = OpFunctionCall %6 %10 %35
+               OpStore %22 %37
+         %40 = OpIAdd %6 %58 %39
+               OpStore %24 %40
+         %43 = OpSLessThan %14 %40 %42
+               OpLoopMerge %33 %31 None
+               OpBranchConditional %43 %31 %33
+         %33 = OpLabel
+         %46 = OpIEqual %14 %37 %45
+               OpSelectionMerge %48 None
+               OpBranchConditional %46 %47 %56
+         %47 = OpLabel
+               OpStore %52 %55
+               OpBranch %48
+         %56 = OpLabel
+               OpStore %52 %57
+               OpBranch %48
+         %48 = OpLabel
+               OpReturn
+               OpFunctionEnd
+         %10 = OpFunction %6 None %8
+          %9 = OpFunctionParameter %7
+         %11 = OpLabel
+         %12 = OpLoad %6 %9
+         %15 = OpIEqual %14 %12 %13
+               OpSelectionMerge %17 None
+               OpBranchConditional %15 %16 %17
+         %16 = OpLabel
+               OpKill
+         %17 = OpLabel
+         %19 = OpLoad %6 %9
+               OpReturnValue %19
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# zero
+BUFFER variant_zero DATA_TYPE int32 DATA
+ 0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_zero AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-ceil-vec4.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-ceil-vec4.amber
new file mode 100644
index 0000000..3cfa057
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-ceil-vec4.amber
@@ -0,0 +1,142 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific constant folding code path
+
+# The test passes because the shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float quarter;
+# };
+#
+# void main()
+# {
+#     vec4 v = ceil(vec4(424.113, quarter, 1.3, 19.62));
+#
+#     if (v == vec4(425.0, 1.0, 2.0, 20.0))
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 41
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %36
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "v"
+               OpName %11 "buf0"
+               OpMemberName %11 0 "quarter"
+               OpName %13 ""
+               OpName %36 "_GLF_color"
+               OpMemberDecorate %11 0 Offset 0
+               OpDecorate %11 Block
+               OpDecorate %13 DescriptorSet 0
+               OpDecorate %13 Binding 0
+               OpDecorate %36 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 4
+          %8 = OpTypePointer Function %7
+         %10 = OpConstant %6 424.113007
+         %11 = OpTypeStruct %6
+         %12 = OpTypePointer Uniform %11
+         %13 = OpVariable %12 Uniform
+         %14 = OpTypeInt 32 1
+         %15 = OpConstant %14 0
+         %16 = OpTypePointer Uniform %6
+         %19 = OpConstant %6 1.29999995
+         %20 = OpConstant %6 19.6200008
+         %24 = OpConstant %6 425
+         %25 = OpConstant %6 1
+         %26 = OpConstant %6 2
+         %27 = OpConstant %6 20
+         %28 = OpConstantComposite %7 %24 %25 %26 %27
+         %29 = OpTypeBool
+         %30 = OpTypeVector %29 4
+         %35 = OpTypePointer Output %7
+         %36 = OpVariable %35 Output
+         %37 = OpConstant %6 0
+         %38 = OpConstantComposite %7 %25 %37 %37 %25
+         %40 = OpConstantComposite %7 %37 %37 %37 %37
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %9 = OpVariable %8 Function
+         %17 = OpAccessChain %16 %13 %15
+         %18 = OpLoad %6 %17
+         %21 = OpCompositeConstruct %7 %10 %18 %19 %20
+         %22 = OpExtInst %7 %1 Ceil %21
+               OpStore %9 %22
+         %23 = OpLoad %7 %9
+         %31 = OpFOrdEqual %30 %23 %28
+         %32 = OpAll %29 %31
+               OpSelectionMerge %34 None
+               OpBranchConditional %32 %33 %39
+         %33 = OpLabel
+               OpStore %36 %38
+               OpBranch %34
+         %39 = OpLabel
+               OpStore %36 %40
+               OpBranch %34
+         %34 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# quarter
+BUFFER variant_quarter DATA_TYPE float DATA
+ 0.25
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_quarter AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-clamp-inside-while.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-clamp-inside-while.amber
new file mode 100644
index 0000000..fc13b4a
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-clamp-inside-while.amber
@@ -0,0 +1,142 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific constant folding path
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     int i = 0, j = 1;
+#
+#     while(i < clamp(j, 5, 9))
+#     {
+#         i++;
+#         j++;
+#     }
+#
+#     if (i == 9 && j == 10)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 45
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %39
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "i"
+               OpName %10 "j"
+               OpName %39 "_GLF_color"
+               OpDecorate %39 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %9 = OpConstant %6 0
+         %11 = OpConstant %6 1
+         %19 = OpConstant %6 5
+         %20 = OpConstant %6 9
+         %22 = OpTypeBool
+         %31 = OpConstant %6 10
+         %36 = OpTypeFloat 32
+         %37 = OpTypeVector %36 4
+         %38 = OpTypePointer Output %37
+         %39 = OpVariable %38 Output
+         %40 = OpConstant %36 1
+         %41 = OpConstant %36 0
+         %42 = OpConstantComposite %37 %40 %41 %41 %40
+         %44 = OpConstantComposite %37 %41 %41 %41 %41
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %10 = OpVariable %7 Function
+               OpStore %8 %9
+               OpStore %10 %11
+               OpBranch %12
+         %12 = OpLabel
+               OpLoopMerge %14 %15 None
+               OpBranch %16
+         %16 = OpLabel
+         %17 = OpLoad %6 %8
+         %18 = OpLoad %6 %10
+         %21 = OpExtInst %6 %1 SClamp %18 %19 %20
+         %23 = OpSLessThan %22 %17 %21
+               OpBranchConditional %23 %13 %14
+         %13 = OpLabel
+         %24 = OpLoad %6 %8
+         %25 = OpIAdd %6 %24 %11
+               OpStore %8 %25
+         %26 = OpLoad %6 %10
+         %27 = OpIAdd %6 %26 %11
+               OpStore %10 %27
+               OpBranch %15
+         %15 = OpLabel
+               OpBranch %12
+         %14 = OpLabel
+         %28 = OpLoad %6 %8
+         %29 = OpIEqual %22 %28 %20
+         %30 = OpLoad %6 %10
+         %32 = OpIEqual %22 %30 %31
+         %33 = OpLogicalAnd %22 %29 %32
+               OpSelectionMerge %35 None
+               OpBranchConditional %33 %34 %43
+         %34 = OpLabel
+               OpStore %39 %42
+               OpBranch %35
+         %43 = OpLabel
+               OpStore %39 %44
+               OpBranch %35
+         %35 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-clamp-vs-original.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-clamp-vs-original.amber
new file mode 100644
index 0000000..438ce50
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-clamp-vs-original.amber
@@ -0,0 +1,136 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific constant folding path
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float one;
+# };
+#
+# void main()
+# {
+#     _GLF_color = vec4(0);
+#
+#     float f = clamp(one, 1.0, 1.0);
+#
+#     if (f > one) // Always false.
+#         _GLF_color = vec4(0);
+#     else
+#         _GLF_color = vec4(f, 0, 0, 1);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 34
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %9
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "_GLF_color"
+               OpName %13 "f"
+               OpName %14 "buf0"
+               OpMemberName %14 0 "one"
+               OpName %16 ""
+               OpDecorate %9 Location 0
+               OpMemberDecorate %14 0 Offset 0
+               OpDecorate %14 Block
+               OpDecorate %16 DescriptorSet 0
+               OpDecorate %16 Binding 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 4
+          %8 = OpTypePointer Output %7
+          %9 = OpVariable %8 Output
+         %10 = OpConstant %6 0
+         %11 = OpConstantComposite %7 %10 %10 %10 %10
+         %12 = OpTypePointer Function %6
+         %14 = OpTypeStruct %6
+         %15 = OpTypePointer Uniform %14
+         %16 = OpVariable %15 Uniform
+         %17 = OpTypeInt 32 1
+         %18 = OpConstant %17 0
+         %19 = OpTypePointer Uniform %6
+         %22 = OpConstant %6 1
+         %27 = OpTypeBool
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %13 = OpVariable %12 Function
+               OpStore %9 %11
+         %20 = OpAccessChain %19 %16 %18
+         %21 = OpLoad %6 %20
+         %23 = OpExtInst %6 %1 FClamp %21 %22 %22
+               OpStore %13 %23
+         %24 = OpLoad %6 %13
+         %25 = OpAccessChain %19 %16 %18
+         %26 = OpLoad %6 %25
+         %28 = OpFOrdGreaterThan %27 %24 %26
+               OpSelectionMerge %30 None
+               OpBranchConditional %28 %29 %31
+         %29 = OpLabel
+               OpStore %9 %11
+               OpBranch %30
+         %31 = OpLabel
+         %32 = OpLoad %6 %13
+         %33 = OpCompositeConstruct %7 %32 %10 %10 %22
+               OpStore %9 %33
+               OpBranch %30
+         %30 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE float DATA
+ 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-det-identity.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-det-identity.amber
new file mode 100644
index 0000000..c1ed091
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-det-identity.amber
@@ -0,0 +1,152 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific const folding path
+
+# The test passes because the shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     vec4 ref;
+# };
+#
+# void main()
+# {
+#     // f becomes 1.
+#     float f = determinant(mat3(1.0));
+#     vec4 v = vec4(sin(f), cos(f), exp2(f), log(f));
+#
+#     if (distance(v, ref) < 0.1)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 50
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %46
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "f"
+               OpName %20 "v"
+               OpName %31 "buf0"
+               OpMemberName %31 0 "ref"
+               OpName %33 ""
+               OpName %46 "_GLF_color"
+               OpMemberDecorate %31 0 Offset 0
+               OpDecorate %31 Block
+               OpDecorate %33 DescriptorSet 0
+               OpDecorate %33 Binding 0
+               OpDecorate %46 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypePointer Function %6
+          %9 = OpTypeVector %6 3
+         %10 = OpTypeMatrix %9 3
+         %11 = OpConstant %6 1
+         %12 = OpConstant %6 0
+         %13 = OpConstantComposite %9 %11 %12 %12
+         %14 = OpConstantComposite %9 %12 %11 %12
+         %15 = OpConstantComposite %9 %12 %12 %11
+         %16 = OpConstantComposite %10 %13 %14 %15
+         %18 = OpTypeVector %6 4
+         %19 = OpTypePointer Function %18
+         %31 = OpTypeStruct %18
+         %32 = OpTypePointer Uniform %31
+         %33 = OpVariable %32 Uniform
+         %34 = OpTypeInt 32 1
+         %35 = OpConstant %34 0
+         %36 = OpTypePointer Uniform %18
+         %40 = OpConstant %6 0.100000001
+         %41 = OpTypeBool
+         %45 = OpTypePointer Output %18
+         %46 = OpVariable %45 Output
+         %47 = OpConstantComposite %18 %11 %12 %12 %11
+         %49 = OpConstantComposite %18 %12 %12 %12 %12
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %20 = OpVariable %19 Function
+         %17 = OpExtInst %6 %1 Determinant %16
+               OpStore %8 %17
+         %21 = OpLoad %6 %8
+         %22 = OpExtInst %6 %1 Sin %21
+         %23 = OpLoad %6 %8
+         %24 = OpExtInst %6 %1 Cos %23
+         %25 = OpLoad %6 %8
+         %26 = OpExtInst %6 %1 Exp2 %25
+         %27 = OpLoad %6 %8
+         %28 = OpExtInst %6 %1 Log %27
+         %29 = OpCompositeConstruct %18 %22 %24 %26 %28
+               OpStore %20 %29
+         %30 = OpLoad %18 %20
+         %37 = OpAccessChain %36 %33 %35
+         %38 = OpLoad %18 %37
+         %39 = OpExtInst %6 %1 Distance %30 %38
+         %42 = OpFOrdLessThan %41 %39 %40
+               OpSelectionMerge %44 None
+               OpBranchConditional %42 %43 %48
+         %43 = OpLabel
+               OpStore %46 %47
+               OpBranch %44
+         %48 = OpLabel
+               OpStore %46 %49
+               OpBranch %44
+         %44 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# ref
+BUFFER variant_ref DATA_TYPE vec4<float> DATA
+ 0.84 0.54 2.0 0.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_ref AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-gte-const-first.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-gte-const-first.amber
new file mode 100644
index 0000000..f4a8ff0
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-gte-const-first.amber
@@ -0,0 +1,134 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific constant folding path
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float one;
+# };
+#
+# void main()
+# {
+#     if(3.0 >= clamp(gl_FragCoord.x, 1.0, 2.0 + one))
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 38
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %10 %33
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %10 "gl_FragCoord"
+               OpName %18 "buf0"
+               OpMemberName %18 0 "one"
+               OpName %20 ""
+               OpName %33 "_GLF_color"
+               OpDecorate %10 BuiltIn FragCoord
+               OpMemberDecorate %18 0 Offset 0
+               OpDecorate %18 Block
+               OpDecorate %20 DescriptorSet 0
+               OpDecorate %20 Binding 0
+               OpDecorate %33 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpConstant %6 3
+          %8 = OpTypeVector %6 4
+          %9 = OpTypePointer Input %8
+         %10 = OpVariable %9 Input
+         %11 = OpTypeInt 32 0
+         %12 = OpConstant %11 0
+         %13 = OpTypePointer Input %6
+         %16 = OpConstant %6 1
+         %17 = OpConstant %6 2
+         %18 = OpTypeStruct %6
+         %19 = OpTypePointer Uniform %18
+         %20 = OpVariable %19 Uniform
+         %21 = OpTypeInt 32 1
+         %22 = OpConstant %21 0
+         %23 = OpTypePointer Uniform %6
+         %28 = OpTypeBool
+         %32 = OpTypePointer Output %8
+         %33 = OpVariable %32 Output
+         %34 = OpConstant %6 0
+         %35 = OpConstantComposite %8 %16 %34 %34 %16
+         %37 = OpConstantComposite %8 %34 %34 %34 %34
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %14 = OpAccessChain %13 %10 %12
+         %15 = OpLoad %6 %14
+         %24 = OpAccessChain %23 %20 %22
+         %25 = OpLoad %6 %24
+         %26 = OpFAdd %6 %17 %25
+         %27 = OpExtInst %6 %1 FClamp %15 %16 %26
+         %29 = OpFOrdGreaterThanEqual %28 %7 %27
+               OpSelectionMerge %31 None
+               OpBranchConditional %29 %30 %36
+         %30 = OpLabel
+               OpStore %33 %35
+               OpBranch %31
+         %36 = OpLabel
+               OpStore %33 %37
+               OpBranch %31
+         %31 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE float DATA
+ 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-min-as-loop-range.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-min-as-loop-range.amber
new file mode 100644
index 0000000..1e00033
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-min-as-loop-range.amber
@@ -0,0 +1,217 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific constant folding path
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int zero;
+# };
+#
+# void main()
+# {
+#     int data[2];
+#     int highSigned = 1;
+#     uint highUnsigned = 2u;
+#
+#     for(int i = 0; i < min(10, highSigned) + zero; i++)
+#         data[i] = 5;
+#
+#     for(uint i = 1u; i < min(10u, highUnsigned) + uint(zero); i++)
+#         data[i] = 6;
+#
+#     if (data[0] == 5 && data[1] == 6)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 83
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %77
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "highSigned"
+               OpName %12 "highUnsigned"
+               OpName %14 "i"
+               OpName %25 "buf0"
+               OpMemberName %25 0 "zero"
+               OpName %27 ""
+               OpName %36 "data"
+               OpName %42 "i"
+               OpName %77 "_GLF_color"
+               OpMemberDecorate %25 0 Offset 0
+               OpDecorate %25 Block
+               OpDecorate %27 DescriptorSet 0
+               OpDecorate %27 Binding 0
+               OpDecorate %77 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %9 = OpConstant %6 1
+         %10 = OpTypeInt 32 0
+         %11 = OpTypePointer Function %10
+         %13 = OpConstant %10 2
+         %15 = OpConstant %6 0
+         %22 = OpConstant %6 10
+         %25 = OpTypeStruct %6
+         %26 = OpTypePointer Uniform %25
+         %27 = OpVariable %26 Uniform
+         %28 = OpTypePointer Uniform %6
+         %32 = OpTypeBool
+         %34 = OpTypeArray %6 %13
+         %35 = OpTypePointer Function %34
+         %38 = OpConstant %6 5
+         %43 = OpConstant %10 1
+         %50 = OpConstant %10 10
+         %59 = OpConstant %6 6
+         %74 = OpTypeFloat 32
+         %75 = OpTypeVector %74 4
+         %76 = OpTypePointer Output %75
+         %77 = OpVariable %76 Output
+         %78 = OpConstant %74 1
+         %79 = OpConstant %74 0
+         %80 = OpConstantComposite %75 %78 %79 %79 %78
+         %82 = OpConstantComposite %75 %79 %79 %79 %79
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %12 = OpVariable %11 Function
+         %14 = OpVariable %7 Function
+         %36 = OpVariable %35 Function
+         %42 = OpVariable %11 Function
+               OpStore %8 %9
+               OpStore %12 %13
+               OpStore %14 %15
+               OpBranch %16
+         %16 = OpLabel
+               OpLoopMerge %18 %19 None
+               OpBranch %20
+         %20 = OpLabel
+         %21 = OpLoad %6 %14
+         %23 = OpLoad %6 %8
+         %24 = OpExtInst %6 %1 SMin %22 %23
+         %29 = OpAccessChain %28 %27 %15
+         %30 = OpLoad %6 %29
+         %31 = OpIAdd %6 %24 %30
+         %33 = OpSLessThan %32 %21 %31
+               OpBranchConditional %33 %17 %18
+         %17 = OpLabel
+         %37 = OpLoad %6 %14
+         %39 = OpAccessChain %7 %36 %37
+               OpStore %39 %38
+               OpBranch %19
+         %19 = OpLabel
+         %40 = OpLoad %6 %14
+         %41 = OpIAdd %6 %40 %9
+               OpStore %14 %41
+               OpBranch %16
+         %18 = OpLabel
+               OpStore %42 %43
+               OpBranch %44
+         %44 = OpLabel
+               OpLoopMerge %46 %47 None
+               OpBranch %48
+         %48 = OpLabel
+         %49 = OpLoad %10 %42
+         %51 = OpLoad %10 %12
+         %52 = OpExtInst %10 %1 UMin %50 %51
+         %53 = OpAccessChain %28 %27 %15
+         %54 = OpLoad %6 %53
+         %55 = OpBitcast %10 %54
+         %56 = OpIAdd %10 %52 %55
+         %57 = OpULessThan %32 %49 %56
+               OpBranchConditional %57 %45 %46
+         %45 = OpLabel
+         %58 = OpLoad %10 %42
+         %60 = OpAccessChain %7 %36 %58
+               OpStore %60 %59
+               OpBranch %47
+         %47 = OpLabel
+         %61 = OpLoad %10 %42
+         %62 = OpIAdd %10 %61 %9
+               OpStore %42 %62
+               OpBranch %44
+         %46 = OpLabel
+         %63 = OpAccessChain %7 %36 %15
+         %64 = OpLoad %6 %63
+         %65 = OpIEqual %32 %64 %38
+               OpSelectionMerge %67 None
+               OpBranchConditional %65 %66 %67
+         %66 = OpLabel
+         %68 = OpAccessChain %7 %36 %9
+         %69 = OpLoad %6 %68
+         %70 = OpIEqual %32 %69 %59
+               OpBranch %67
+         %67 = OpLabel
+         %71 = OpPhi %32 %65 %46 %70 %66
+               OpSelectionMerge %73 None
+               OpBranchConditional %71 %72 %81
+         %72 = OpLabel
+               OpStore %77 %80
+               OpBranch %73
+         %81 = OpLabel
+               OpStore %77 %82
+               OpBranch %73
+         %73 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# zero
+BUFFER variant_zero DATA_TYPE int32 DATA
+ 0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_zero AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-same-condition.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-same-condition.amber
new file mode 100644
index 0000000..5ece850
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-same-condition.amber
@@ -0,0 +1,173 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific constant folding code path
+
+# The test passes because the shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float one;
+# };
+#
+# void main()
+# {
+#     _GLF_color = vec4(0);
+#
+#     // Always false.
+#     if(one < 0.0 || one < 1.0)
+#         return;
+#
+#     // Always false.
+#     if(one < 0.0)
+#     {
+#         while (one < 0.0)
+#         {
+#             _GLF_color = vec4(1);
+#             break;
+#         }
+#     }
+#     else
+#     {
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     }
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 50
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %9
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "_GLF_color"
+               OpName %13 "buf0"
+               OpMemberName %13 0 "one"
+               OpName %15 ""
+               OpDecorate %9 Location 0
+               OpMemberDecorate %13 0 Offset 0
+               OpDecorate %13 Block
+               OpDecorate %15 DescriptorSet 0
+               OpDecorate %15 Binding 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 4
+          %8 = OpTypePointer Output %7
+          %9 = OpVariable %8 Output
+         %10 = OpConstant %6 0
+         %11 = OpConstantComposite %7 %10 %10 %10 %10
+         %12 = OpTypeBool
+         %13 = OpTypeStruct %6
+         %14 = OpTypePointer Uniform %13
+         %15 = OpVariable %14 Uniform
+         %16 = OpTypeInt 32 1
+         %17 = OpConstant %16 0
+         %18 = OpTypePointer Uniform %6
+         %27 = OpConstant %6 1
+         %46 = OpConstantComposite %7 %27 %27 %27 %27
+         %49 = OpConstantComposite %7 %27 %10 %10 %27
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+               OpStore %9 %11
+         %19 = OpAccessChain %18 %15 %17
+         %20 = OpLoad %6 %19
+         %21 = OpFOrdLessThan %12 %20 %10
+         %22 = OpLogicalNot %12 %21
+               OpSelectionMerge %24 None
+               OpBranchConditional %22 %23 %24
+         %23 = OpLabel
+         %25 = OpAccessChain %18 %15 %17
+         %26 = OpLoad %6 %25
+         %28 = OpFOrdLessThan %12 %26 %27
+               OpBranch %24
+         %24 = OpLabel
+         %29 = OpPhi %12 %21 %5 %28 %23
+               OpSelectionMerge %31 None
+               OpBranchConditional %29 %30 %31
+         %30 = OpLabel
+               OpReturn
+         %31 = OpLabel
+         %33 = OpAccessChain %18 %15 %17
+         %34 = OpLoad %6 %33
+         %35 = OpFOrdLessThan %12 %34 %10
+               OpSelectionMerge %37 None
+               OpBranchConditional %35 %36 %48
+         %36 = OpLabel
+               OpBranch %38
+         %38 = OpLabel
+               OpLoopMerge %40 %41 None
+               OpBranch %42
+         %42 = OpLabel
+         %43 = OpAccessChain %18 %15 %17
+         %44 = OpLoad %6 %43
+         %45 = OpFOrdLessThan %12 %44 %10
+               OpBranchConditional %45 %39 %40
+         %39 = OpLabel
+               OpStore %9 %46
+               OpBranch %40
+         %41 = OpLabel
+               OpBranch %38
+         %40 = OpLabel
+               OpBranch %37
+         %48 = OpLabel
+               OpStore %9 %49
+               OpBranch %37
+         %37 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE float DATA
+ 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-sinh-inf.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-sinh-inf.amber
new file mode 100644
index 0000000..2ebcca1
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-const-folding-sinh-inf.amber
@@ -0,0 +1,147 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific const folding path
+
+# The test passes because the shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(set = 0, binding = 0) uniform buf0 {
+#     vec2 injectionSwitch;
+# };
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     float f = sinh(724.322);
+#
+#     // Always true.
+#     // injectionSwitch.x == 0.0.
+#     // injectionSwitch.y == 1.0.
+#     if (isinf(f) || injectionSwitch.x < injectionSwitch.y)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 43
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %37
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "f"
+               OpName %18 "buf0"
+               OpMemberName %18 0 "injectionSwitch"
+               OpName %20 ""
+               OpName %37 "_GLF_color"
+               OpMemberDecorate %18 0 Offset 0
+               OpDecorate %18 Block
+               OpDecorate %20 DescriptorSet 0
+               OpDecorate %20 Binding 0
+               OpDecorate %37 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypePointer Function %6
+          %9 = OpConstant %6 724.322021
+         %11 = OpTypeBool
+         %17 = OpTypeVector %6 2
+         %18 = OpTypeStruct %17
+         %19 = OpTypePointer Uniform %18
+         %20 = OpVariable %19 Uniform
+         %21 = OpTypeInt 32 1
+         %22 = OpConstant %21 0
+         %23 = OpTypeInt 32 0
+         %24 = OpConstant %23 0
+         %25 = OpTypePointer Uniform %6
+         %28 = OpConstant %23 1
+         %35 = OpTypeVector %6 4
+         %36 = OpTypePointer Output %35
+         %37 = OpVariable %36 Output
+         %38 = OpConstant %6 1
+         %39 = OpConstant %6 0
+         %40 = OpConstantComposite %35 %38 %39 %39 %38
+         %42 = OpConstantComposite %35 %39 %39 %39 %39
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %10 = OpExtInst %6 %1 Sinh %9
+               OpStore %8 %10
+         %12 = OpLoad %6 %8
+         %13 = OpIsInf %11 %12
+         %14 = OpLogicalNot %11 %13
+               OpSelectionMerge %16 None
+               OpBranchConditional %14 %15 %16
+         %15 = OpLabel
+         %26 = OpAccessChain %25 %20 %22 %24
+         %27 = OpLoad %6 %26
+         %29 = OpAccessChain %25 %20 %22 %28
+         %30 = OpLoad %6 %29
+         %31 = OpFOrdLessThan %11 %27 %30
+               OpBranch %16
+         %16 = OpLabel
+         %32 = OpPhi %11 %13 %5 %31 %15
+               OpSelectionMerge %34 None
+               OpBranchConditional %32 %33 %41
+         %33 = OpLabel
+               OpStore %37 %40
+               OpBranch %34
+         %41 = OpLabel
+               OpStore %37 %42
+               OpBranch %34
+         %34 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# injectionSwitch
+BUFFER variant_injectionSwitch DATA_TYPE vec2<float> DATA
+ 0.0 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_injectionSwitch AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-constant-folding-atan-over-tanh.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-constant-folding-atan-over-tanh.amber
new file mode 100644
index 0000000..d510860
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-constant-folding-atan-over-tanh.amber
@@ -0,0 +1,109 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific constant folding code path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     float f = atan(1.0, tanh(1.0));
+#
+#     if (f > 0.91 && f < 0.93)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 29
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %24
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "f"
+               OpName %24 "_GLF_color"
+               OpDecorate %24 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypePointer Function %6
+          %9 = OpConstant %6 1
+         %13 = OpConstant %6 0.910000026
+         %14 = OpTypeBool
+         %17 = OpConstant %6 0.930000007
+         %22 = OpTypeVector %6 4
+         %23 = OpTypePointer Output %22
+         %24 = OpVariable %23 Output
+         %25 = OpConstant %6 0
+         %26 = OpConstantComposite %22 %9 %25 %25 %9
+         %28 = OpConstantComposite %22 %25 %25 %25 %25
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %10 = OpExtInst %6 %1 Tanh %9
+         %11 = OpExtInst %6 %1 Atan2 %9 %10
+               OpStore %8 %11
+         %12 = OpLoad %6 %8
+         %15 = OpFOrdGreaterThan %14 %12 %13
+         %16 = OpLoad %6 %8
+         %18 = OpFOrdLessThan %14 %16 %17
+         %19 = OpLogicalAnd %14 %15 %18
+               OpSelectionMerge %21 None
+               OpBranchConditional %19 %20 %27
+         %20 = OpLabel
+               OpStore %24 %26
+               OpBranch %21
+         %27 = OpLabel
+               OpStore %24 %28
+               OpBranch %21
+         %21 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-dag-combiner-neg-div-pow2.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-dag-combiner-neg-div-pow2.amber
new file mode 100644
index 0000000..7fb0166
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-dag-combiner-neg-div-pow2.amber
@@ -0,0 +1,203 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific DAG combiner code path
+
+# The test passes because the shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int minusEight;
+# };
+# layout(set = 0, binding = 1) uniform buf1
+# {
+#     int ten;
+# };
+#
+# void main()
+# {
+#     int a = 0;
+#     int b = 0;
+#
+#     for(int i = 0; i < ten; i++)
+#     {
+#         // Breaks when i == 3.
+#         if(a > 5)
+#             break;
+#
+#         // Increments a by 2.
+#         a += minusEight / -4;
+#         b++;
+#     }
+#
+#     if (b == 3)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 60
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %54
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "a"
+               OpName %10 "b"
+               OpName %11 "i"
+               OpName %18 "buf1"
+               OpMemberName %18 0 "ten"
+               OpName %20 ""
+               OpName %32 "buf0"
+               OpMemberName %32 0 "minusEight"
+               OpName %34 ""
+               OpName %54 "_GLF_color"
+               OpMemberDecorate %18 0 Offset 0
+               OpDecorate %18 Block
+               OpDecorate %20 DescriptorSet 0
+               OpDecorate %20 Binding 1
+               OpMemberDecorate %32 0 Offset 0
+               OpDecorate %32 Block
+               OpDecorate %34 DescriptorSet 0
+               OpDecorate %34 Binding 0
+               OpDecorate %54 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %9 = OpConstant %6 0
+         %18 = OpTypeStruct %6
+         %19 = OpTypePointer Uniform %18
+         %20 = OpVariable %19 Uniform
+         %21 = OpTypePointer Uniform %6
+         %24 = OpTypeBool
+         %27 = OpConstant %6 5
+         %32 = OpTypeStruct %6
+         %33 = OpTypePointer Uniform %32
+         %34 = OpVariable %33 Uniform
+         %37 = OpConstant %6 -4
+         %42 = OpConstant %6 1
+         %47 = OpConstant %6 3
+         %51 = OpTypeFloat 32
+         %52 = OpTypeVector %51 4
+         %53 = OpTypePointer Output %52
+         %54 = OpVariable %53 Output
+         %55 = OpConstant %51 1
+         %56 = OpConstant %51 0
+         %57 = OpConstantComposite %52 %55 %56 %56 %55
+         %59 = OpConstantComposite %52 %56 %56 %56 %56
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %10 = OpVariable %7 Function
+         %11 = OpVariable %7 Function
+               OpStore %8 %9
+               OpStore %10 %9
+               OpStore %11 %9
+               OpBranch %12
+         %12 = OpLabel
+               OpLoopMerge %14 %15 None
+               OpBranch %16
+         %16 = OpLabel
+         %17 = OpLoad %6 %11
+         %22 = OpAccessChain %21 %20 %9
+         %23 = OpLoad %6 %22
+         %25 = OpSLessThan %24 %17 %23
+               OpBranchConditional %25 %13 %14
+         %13 = OpLabel
+         %26 = OpLoad %6 %8
+         %28 = OpSGreaterThan %24 %26 %27
+               OpSelectionMerge %30 None
+               OpBranchConditional %28 %29 %30
+         %29 = OpLabel
+               OpBranch %14
+         %30 = OpLabel
+         %35 = OpAccessChain %21 %34 %9
+         %36 = OpLoad %6 %35
+         %38 = OpSDiv %6 %36 %37
+         %39 = OpLoad %6 %8
+         %40 = OpIAdd %6 %39 %38
+               OpStore %8 %40
+         %41 = OpLoad %6 %10
+         %43 = OpIAdd %6 %41 %42
+               OpStore %10 %43
+               OpBranch %15
+         %15 = OpLabel
+         %44 = OpLoad %6 %11
+         %45 = OpIAdd %6 %44 %42
+               OpStore %11 %45
+               OpBranch %12
+         %14 = OpLabel
+         %46 = OpLoad %6 %10
+         %48 = OpIEqual %24 %46 %47
+               OpSelectionMerge %50 None
+               OpBranchConditional %48 %49 %58
+         %49 = OpLabel
+               OpStore %54 %57
+               OpBranch %50
+         %58 = OpLabel
+               OpStore %54 %59
+               OpBranch %50
+         %50 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# minuseight
+BUFFER variant_minuseight DATA_TYPE int32 DATA
+ -8
+END
+# ten
+BUFFER variant_ten DATA_TYPE int32 DATA
+ 10
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_minuseight AS uniform DESCRIPTOR_SET 0 BINDING 0
+  BIND BUFFER variant_ten AS uniform DESCRIPTOR_SET 0 BINDING 1
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-dag-combiner-same-cond-nested.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-dag-combiner-same-cond-nested.amber
new file mode 100644
index 0000000..cba71f8
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-dag-combiner-same-cond-nested.amber
@@ -0,0 +1,236 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific DAG combiner code path
+
+# The test passes because the shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float one;
+# };
+#
+# void main()
+# {
+#     vec3 v;
+#     float f = one;
+#     int a = 1, b = 0, c = 1;
+#
+#     for (int i = 0; i < 3; i++)
+#         v[i] = f + float(i);
+#
+#     if(one == 1.0)
+#     {
+#         do
+#         {
+#             _GLF_color = vec4(0);
+#         }
+#         while ((c & (a | b)) == 0);
+#
+#         if(one == 1.0)
+#             _GLF_color = vec4(1);
+#     }
+#
+#     _GLF_color.rgb = vec3(v.x == 1.0 ? 1.0 : 0.0,
+#                           v.y == 2.0 ? 0.0 : 1.0,
+#                           v.z == 3.0 ? 0.0 : 1.0);
+#     _GLF_color.a = 1.0;
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 94
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %55
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "f"
+               OpName %9 "buf0"
+               OpMemberName %9 0 "one"
+               OpName %11 ""
+               OpName %18 "a"
+               OpName %20 "b"
+               OpName %21 "c"
+               OpName %22 "i"
+               OpName %34 "v"
+               OpName %55 "_GLF_color"
+               OpMemberDecorate %9 0 Offset 0
+               OpDecorate %9 Block
+               OpDecorate %11 DescriptorSet 0
+               OpDecorate %11 Binding 0
+               OpDecorate %55 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypePointer Function %6
+          %9 = OpTypeStruct %6
+         %10 = OpTypePointer Uniform %9
+         %11 = OpVariable %10 Uniform
+         %12 = OpTypeInt 32 1
+         %13 = OpConstant %12 0
+         %14 = OpTypePointer Uniform %6
+         %17 = OpTypePointer Function %12
+         %19 = OpConstant %12 1
+         %29 = OpConstant %12 3
+         %30 = OpTypeBool
+         %32 = OpTypeVector %6 3
+         %33 = OpTypePointer Function %32
+         %45 = OpConstant %6 1
+         %53 = OpTypeVector %6 4
+         %54 = OpTypePointer Output %53
+         %55 = OpVariable %54 Output
+         %56 = OpConstant %6 0
+         %57 = OpConstantComposite %53 %56 %56 %56 %56
+         %69 = OpConstantComposite %53 %45 %45 %45 %45
+         %70 = OpTypeInt 32 0
+         %71 = OpConstant %70 0
+         %76 = OpConstant %70 1
+         %79 = OpConstant %6 2
+         %82 = OpConstant %70 2
+         %85 = OpConstant %6 3
+         %91 = OpConstant %70 3
+         %92 = OpTypePointer Output %6
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %18 = OpVariable %17 Function
+         %20 = OpVariable %17 Function
+         %21 = OpVariable %17 Function
+         %22 = OpVariable %17 Function
+         %34 = OpVariable %33 Function
+         %15 = OpAccessChain %14 %11 %13
+         %16 = OpLoad %6 %15
+               OpStore %8 %16
+               OpStore %18 %19
+               OpStore %20 %13
+               OpStore %21 %19
+               OpStore %22 %13
+               OpBranch %23
+         %23 = OpLabel
+               OpLoopMerge %25 %26 None
+               OpBranch %27
+         %27 = OpLabel
+         %28 = OpLoad %12 %22
+         %31 = OpSLessThan %30 %28 %29
+               OpBranchConditional %31 %24 %25
+         %24 = OpLabel
+         %35 = OpLoad %12 %22
+         %36 = OpLoad %6 %8
+         %37 = OpLoad %12 %22
+         %38 = OpConvertSToF %6 %37
+         %39 = OpFAdd %6 %36 %38
+         %40 = OpAccessChain %7 %34 %35
+               OpStore %40 %39
+               OpBranch %26
+         %26 = OpLabel
+         %41 = OpLoad %12 %22
+         %42 = OpIAdd %12 %41 %19
+               OpStore %22 %42
+               OpBranch %23
+         %25 = OpLabel
+         %43 = OpAccessChain %14 %11 %13
+         %44 = OpLoad %6 %43
+         %46 = OpFOrdEqual %30 %44 %45
+               OpSelectionMerge %48 None
+               OpBranchConditional %46 %47 %48
+         %47 = OpLabel
+               OpBranch %49
+         %49 = OpLabel
+               OpLoopMerge %51 %52 None
+               OpBranch %50
+         %50 = OpLabel
+               OpStore %55 %57
+               OpBranch %52
+         %52 = OpLabel
+         %58 = OpLoad %12 %21
+         %59 = OpLoad %12 %18
+         %60 = OpLoad %12 %20
+         %61 = OpBitwiseOr %12 %59 %60
+         %62 = OpBitwiseAnd %12 %58 %61
+         %63 = OpIEqual %30 %62 %13
+               OpBranchConditional %63 %49 %51
+         %51 = OpLabel
+         %64 = OpAccessChain %14 %11 %13
+         %65 = OpLoad %6 %64
+         %66 = OpFOrdEqual %30 %65 %45
+               OpSelectionMerge %68 None
+               OpBranchConditional %66 %67 %68
+         %67 = OpLabel
+               OpStore %55 %69
+               OpBranch %68
+         %68 = OpLabel
+               OpBranch %48
+         %48 = OpLabel
+         %72 = OpAccessChain %7 %34 %71
+         %73 = OpLoad %6 %72
+         %74 = OpFOrdEqual %30 %73 %45
+         %75 = OpSelect %6 %74 %45 %56
+         %77 = OpAccessChain %7 %34 %76
+         %78 = OpLoad %6 %77
+         %80 = OpFOrdEqual %30 %78 %79
+         %81 = OpSelect %6 %80 %56 %45
+         %83 = OpAccessChain %7 %34 %82
+         %84 = OpLoad %6 %83
+         %86 = OpFOrdEqual %30 %84 %85
+         %87 = OpSelect %6 %86 %56 %45
+         %88 = OpCompositeConstruct %32 %75 %81 %87
+         %89 = OpLoad %53 %55
+         %90 = OpVectorShuffle %53 %89 %88 4 5 6 3
+               OpStore %55 %90
+         %93 = OpAccessChain %92 %55 %91
+               OpStore %93 %45
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE float DATA
+ 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-dead-branch-func-return-arg.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-dead-branch-func-return-arg.amber
new file mode 100644
index 0000000..6c7dfb4
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-dead-branch-func-return-arg.amber
@@ -0,0 +1,328 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific dead branch elimination path
+
+# The test passes because shader always writes red.
+
+# Optimized using spirv-opt with the following arguments:
+# '--private-to-local'
+# '--eliminate-dead-branches'
+# '--merge-return'
+# '--eliminate-dead-branches'
+# '--merge-return'
+# '--combine-access-chains'
+# '--reduce-load-size'
+# '--eliminate-local-single-block'
+# '--eliminate-dead-branches'
+# '--merge-return'
+# '--eliminate-local-single-block'
+# '--eliminate-local-single-store'
+# '--copy-propagate-arrays'
+# '--eliminate-dead-branches'
+# '--merge-blocks'
+# '--scalar-replacement=100'
+# '--eliminate-local-single-store'
+# '--eliminate-local-single-store'
+# '--eliminate-dead-code-aggressive'
+# '--inline-entry-points-exhaustive'
+# '--eliminate-dead-branches'
+# '--merge-blocks'
+# '--eliminate-local-single-block'
+# spirv-opt commit hash: 9215c1b7df0029f27807e8c8d7ec80532ce90a87
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# float func(float x)
+# {
+#     float a = x;
+#
+#     do
+#     {
+#         if (a == x)
+#             return a;
+#
+#         a++;
+#     } while(a < x);
+#
+#     return 0.0;
+# }
+#
+# void main()
+# {
+#     float f = 0.0;
+#     float i = 0.0;
+#
+#     do
+#     {
+#         f = func(i);
+#         i += func(1.0);
+#     }
+#     while (i < 6.0);
+#
+#     if (f == 5.0)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 126
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %58
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %10 "func(f1;"
+               OpName %9 "x"
+               OpName %12 "a"
+               OpName %35 "f"
+               OpName %36 "i"
+               OpName %41 "param"
+               OpName %44 "param"
+               OpName %58 "_GLF_color"
+               OpDecorate %58 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypePointer Function %6
+          %8 = OpTypeFunction %6 %7
+         %20 = OpTypeBool
+         %27 = OpConstant %6 1
+         %32 = OpConstant %6 0
+         %49 = OpConstant %6 6
+         %52 = OpConstant %6 5
+         %56 = OpTypeVector %6 4
+         %57 = OpTypePointer Output %56
+         %58 = OpVariable %57 Output
+         %59 = OpConstantComposite %56 %27 %32 %32 %27
+         %61 = OpConstantComposite %56 %32 %32 %32 %32
+         %68 = OpConstantFalse %20
+         %69 = OpTypePointer Function %20
+         %71 = OpConstantTrue %20
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+        %100 = OpVariable %69 Function %68
+        %101 = OpVariable %7 Function
+        %102 = OpVariable %7 Function
+        %103 = OpVariable %7 Function
+         %74 = OpVariable %69 Function %68
+         %75 = OpVariable %7 Function
+         %76 = OpVariable %7 Function
+         %77 = OpVariable %7 Function
+         %35 = OpVariable %7 Function
+         %36 = OpVariable %7 Function
+         %41 = OpVariable %7 Function
+         %44 = OpVariable %7 Function
+               OpStore %35 %32
+               OpStore %36 %32
+               OpBranch %37
+         %37 = OpLabel
+         %42 = OpLoad %6 %36
+               OpStore %41 %42
+               OpStore %74 %68
+               OpLoopMerge %39 %37 None
+               OpBranch %78
+         %78 = OpLabel
+         %79 = OpLoad %6 %41
+               OpStore %76 %79
+               OpLoopMerge %80 %81 None
+               OpBranch %82
+         %82 = OpLabel
+               OpLoopMerge %83 %84 None
+               OpBranch %85
+         %85 = OpLabel
+         %86 = OpLoad %6 %76
+         %87 = OpLoad %6 %41
+         %88 = OpFOrdEqual %20 %86 %87
+               OpSelectionMerge %89 None
+               OpBranchConditional %88 %90 %89
+         %90 = OpLabel
+         %91 = OpLoad %6 %76
+               OpStore %74 %71
+               OpStore %75 %91
+               OpBranch %83
+         %89 = OpLabel
+         %92 = OpLoad %6 %76
+         %93 = OpFAdd %6 %92 %27
+               OpStore %76 %93
+               OpBranch %84
+         %84 = OpLabel
+         %94 = OpLoad %6 %76
+         %95 = OpLoad %6 %41
+         %96 = OpFOrdLessThan %20 %94 %95
+               OpBranchConditional %96 %82 %83
+         %83 = OpLabel
+         %97 = OpLoad %20 %74
+               OpSelectionMerge %98 None
+               OpBranchConditional %97 %80 %98
+         %98 = OpLabel
+               OpStore %74 %71
+               OpStore %75 %32
+               OpBranch %80
+         %81 = OpLabel
+               OpBranch %78
+         %80 = OpLabel
+         %99 = OpLoad %6 %75
+               OpStore %77 %99
+               OpStore %35 %99
+               OpStore %44 %27
+               OpStore %100 %68
+               OpBranch %104
+        %104 = OpLabel
+        %105 = OpLoad %6 %44
+               OpStore %102 %105
+               OpLoopMerge %106 %107 None
+               OpBranch %108
+        %108 = OpLabel
+               OpLoopMerge %109 %110 None
+               OpBranch %111
+        %111 = OpLabel
+        %112 = OpLoad %6 %102
+        %113 = OpLoad %6 %44
+        %114 = OpFOrdEqual %20 %112 %113
+               OpSelectionMerge %115 None
+               OpBranchConditional %114 %116 %115
+        %116 = OpLabel
+        %117 = OpLoad %6 %102
+               OpStore %100 %71
+               OpStore %101 %117
+               OpBranch %109
+        %115 = OpLabel
+        %118 = OpLoad %6 %102
+        %119 = OpFAdd %6 %118 %27
+               OpStore %102 %119
+               OpBranch %110
+        %110 = OpLabel
+        %120 = OpLoad %6 %102
+        %121 = OpLoad %6 %44
+        %122 = OpFOrdLessThan %20 %120 %121
+               OpBranchConditional %122 %108 %109
+        %109 = OpLabel
+        %123 = OpLoad %20 %100
+               OpSelectionMerge %124 None
+               OpBranchConditional %123 %106 %124
+        %124 = OpLabel
+               OpStore %100 %71
+               OpStore %101 %32
+               OpBranch %106
+        %107 = OpLabel
+               OpBranch %104
+        %106 = OpLabel
+        %125 = OpLoad %6 %101
+               OpStore %103 %125
+         %46 = OpLoad %6 %36
+         %47 = OpFAdd %6 %46 %125
+               OpStore %36 %47
+         %50 = OpFOrdLessThan %20 %47 %49
+               OpBranchConditional %50 %37 %39
+         %39 = OpLabel
+         %51 = OpLoad %6 %35
+         %53 = OpFOrdEqual %20 %51 %52
+               OpSelectionMerge %55 None
+               OpBranchConditional %53 %54 %60
+         %54 = OpLabel
+               OpStore %58 %59
+               OpBranch %55
+         %60 = OpLabel
+               OpStore %58 %61
+               OpBranch %55
+         %55 = OpLabel
+               OpReturn
+               OpFunctionEnd
+         %10 = OpFunction %6 None %8
+          %9 = OpFunctionParameter %7
+         %11 = OpLabel
+         %70 = OpVariable %69 Function %68
+         %63 = OpVariable %7 Function
+         %12 = OpVariable %7 Function
+               OpBranch %65
+         %65 = OpLabel
+         %13 = OpLoad %6 %9
+               OpStore %12 %13
+               OpLoopMerge %62 %67 None
+               OpBranch %14
+         %14 = OpLabel
+               OpLoopMerge %16 %17 None
+               OpBranch %15
+         %15 = OpLabel
+         %18 = OpLoad %6 %12
+         %19 = OpLoad %6 %9
+         %21 = OpFOrdEqual %20 %18 %19
+               OpSelectionMerge %23 None
+               OpBranchConditional %21 %22 %23
+         %22 = OpLabel
+         %24 = OpLoad %6 %12
+               OpStore %70 %71
+               OpStore %63 %24
+               OpBranch %16
+         %23 = OpLabel
+         %26 = OpLoad %6 %12
+         %28 = OpFAdd %6 %26 %27
+               OpStore %12 %28
+               OpBranch %17
+         %17 = OpLabel
+         %29 = OpLoad %6 %12
+         %30 = OpLoad %6 %9
+         %31 = OpFOrdLessThan %20 %29 %30
+               OpBranchConditional %31 %14 %16
+         %16 = OpLabel
+         %73 = OpLoad %20 %70
+               OpSelectionMerge %72 None
+               OpBranchConditional %73 %62 %72
+         %72 = OpLabel
+               OpStore %70 %71
+               OpStore %63 %32
+               OpBranch %62
+         %67 = OpLabel
+               OpBranch %65
+         %62 = OpLabel
+         %64 = OpLoad %6 %63
+               OpReturnValue %64
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-and-in-for-loop-range.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-and-in-for-loop-range.amber
new file mode 100644
index 0000000..12a0e15
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-and-in-for-loop-range.amber
@@ -0,0 +1,172 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific folding path
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int one;
+# };
+#
+# int func()
+# {
+#     int ret = 0;
+#
+#     for(int i = 3; i > (i & 1); i -= one)
+#         ret++;
+#
+#     return ret;
+# }
+#
+# void main()
+# {
+#     if (func() == 2)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 53
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %47
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "func("
+               OpName %11 "ret"
+               OpName %13 "i"
+               OpName %28 "buf0"
+               OpMemberName %28 0 "one"
+               OpName %30 ""
+               OpName %47 "_GLF_color"
+               OpMemberDecorate %28 0 Offset 0
+               OpDecorate %28 Block
+               OpDecorate %30 DescriptorSet 0
+               OpDecorate %30 Binding 0
+               OpDecorate %47 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypeFunction %6
+         %10 = OpTypePointer Function %6
+         %12 = OpConstant %6 0
+         %14 = OpConstant %6 3
+         %22 = OpConstant %6 1
+         %24 = OpTypeBool
+         %28 = OpTypeStruct %6
+         %29 = OpTypePointer Uniform %28
+         %30 = OpVariable %29 Uniform
+         %31 = OpTypePointer Uniform %6
+         %40 = OpConstant %6 2
+         %44 = OpTypeFloat 32
+         %45 = OpTypeVector %44 4
+         %46 = OpTypePointer Output %45
+         %47 = OpVariable %46 Output
+         %48 = OpConstant %44 1
+         %49 = OpConstant %44 0
+         %50 = OpConstantComposite %45 %48 %49 %49 %48
+         %52 = OpConstantComposite %45 %49 %49 %49 %49
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %39 = OpFunctionCall %6 %8
+         %41 = OpIEqual %24 %39 %40
+               OpSelectionMerge %43 None
+               OpBranchConditional %41 %42 %51
+         %42 = OpLabel
+               OpStore %47 %50
+               OpBranch %43
+         %51 = OpLabel
+               OpStore %47 %52
+               OpBranch %43
+         %43 = OpLabel
+               OpReturn
+               OpFunctionEnd
+          %8 = OpFunction %6 None %7
+          %9 = OpLabel
+         %11 = OpVariable %10 Function
+         %13 = OpVariable %10 Function
+               OpStore %11 %12
+               OpStore %13 %14
+               OpBranch %15
+         %15 = OpLabel
+               OpLoopMerge %17 %18 None
+               OpBranch %19
+         %19 = OpLabel
+         %20 = OpLoad %6 %13
+         %21 = OpLoad %6 %13
+         %23 = OpBitwiseAnd %6 %21 %22
+         %25 = OpSGreaterThan %24 %20 %23
+               OpBranchConditional %25 %16 %17
+         %16 = OpLabel
+         %26 = OpLoad %6 %11
+         %27 = OpIAdd %6 %26 %22
+               OpStore %11 %27
+               OpBranch %18
+         %18 = OpLabel
+         %32 = OpAccessChain %31 %30 %12
+         %33 = OpLoad %6 %32
+         %34 = OpLoad %6 %13
+         %35 = OpISub %6 %34 %33
+               OpStore %13 %35
+               OpBranch %15
+         %17 = OpLabel
+         %36 = OpLoad %6 %11
+               OpReturnValue %36
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE int32 DATA
+ 1
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-negate-min-int-value.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-negate-min-int-value.amber
new file mode 100644
index 0000000..ec63002
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-fold-negate-min-int-value.amber
@@ -0,0 +1,139 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int minusOne;
+# };
+#
+# void main()
+# {
+#     int minValue = -2147483648;
+#     int negMinValue = -minValue;
+#
+#     if (negMinValue == minValue * minusOne)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 36
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %30
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "minValue"
+               OpName %10 "negMinValue"
+               OpName %15 "buf0"
+               OpMemberName %15 0 "minusOne"
+               OpName %17 ""
+               OpName %30 "_GLF_color"
+               OpMemberDecorate %15 0 Offset 0
+               OpDecorate %15 Block
+               OpDecorate %17 DescriptorSet 0
+               OpDecorate %17 Binding 0
+               OpDecorate %30 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %9 = OpConstant %6 -2147483648
+         %15 = OpTypeStruct %6
+         %16 = OpTypePointer Uniform %15
+         %17 = OpVariable %16 Uniform
+         %18 = OpConstant %6 0
+         %19 = OpTypePointer Uniform %6
+         %23 = OpTypeBool
+         %27 = OpTypeFloat 32
+         %28 = OpTypeVector %27 4
+         %29 = OpTypePointer Output %28
+         %30 = OpVariable %29 Output
+         %31 = OpConstant %27 1
+         %32 = OpConstant %27 0
+         %33 = OpConstantComposite %28 %31 %32 %32 %31
+         %35 = OpConstantComposite %28 %32 %32 %32 %32
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %10 = OpVariable %7 Function
+               OpStore %8 %9
+         %11 = OpLoad %6 %8
+         %12 = OpSNegate %6 %11
+               OpStore %10 %12
+         %13 = OpLoad %6 %10
+         %14 = OpLoad %6 %8
+         %20 = OpAccessChain %19 %17 %18
+         %21 = OpLoad %6 %20
+         %22 = OpIMul %6 %14 %21
+         %24 = OpIEqual %23 %13 %22
+               OpSelectionMerge %26 None
+               OpBranchConditional %24 %25 %34
+         %25 = OpLabel
+               OpStore %30 %33
+               OpBranch %26
+         %34 = OpLabel
+               OpStore %30 %35
+               OpBranch %26
+         %26 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# minusOne
+BUFFER variant_minusOne DATA_TYPE int32 DATA
+ -1
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_minusOne AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-clamp-cmp-const-first.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-clamp-cmp-const-first.amber
new file mode 100644
index 0000000..bf995c7
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-clamp-cmp-const-first.amber
@@ -0,0 +1,155 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific constant folding path
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float one;
+# };
+#
+# void main()
+# {
+#     float f = 1.0;
+#
+#     do
+#     {
+#         f += one;
+#     }
+#     while(10.0 > clamp(f, 8.0, 9.0 + one));
+#
+#     if (f == 10.0)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 45
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %40
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "f"
+               OpName %14 "buf0"
+               OpMemberName %14 0 "one"
+               OpName %16 ""
+               OpName %40 "_GLF_color"
+               OpMemberDecorate %14 0 Offset 0
+               OpDecorate %14 Block
+               OpDecorate %16 DescriptorSet 0
+               OpDecorate %16 Binding 0
+               OpDecorate %40 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypePointer Function %6
+          %9 = OpConstant %6 1
+         %14 = OpTypeStruct %6
+         %15 = OpTypePointer Uniform %14
+         %16 = OpVariable %15 Uniform
+         %17 = OpTypeInt 32 1
+         %18 = OpConstant %17 0
+         %19 = OpTypePointer Uniform %6
+         %24 = OpConstant %6 10
+         %26 = OpConstant %6 8
+         %27 = OpConstant %6 9
+         %32 = OpTypeBool
+         %38 = OpTypeVector %6 4
+         %39 = OpTypePointer Output %38
+         %40 = OpVariable %39 Output
+         %41 = OpConstant %6 0
+         %42 = OpConstantComposite %38 %9 %41 %41 %9
+         %44 = OpConstantComposite %38 %41 %41 %41 %41
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+               OpStore %8 %9
+               OpBranch %10
+         %10 = OpLabel
+               OpLoopMerge %12 %13 None
+               OpBranch %11
+         %11 = OpLabel
+         %20 = OpAccessChain %19 %16 %18
+         %21 = OpLoad %6 %20
+         %22 = OpLoad %6 %8
+         %23 = OpFAdd %6 %22 %21
+               OpStore %8 %23
+               OpBranch %13
+         %13 = OpLabel
+         %25 = OpLoad %6 %8
+         %28 = OpAccessChain %19 %16 %18
+         %29 = OpLoad %6 %28
+         %30 = OpFAdd %6 %27 %29
+         %31 = OpExtInst %6 %1 FClamp %25 %26 %30
+         %33 = OpFOrdGreaterThan %32 %24 %31
+               OpBranchConditional %33 %10 %12
+         %12 = OpLabel
+         %34 = OpLoad %6 %8
+         %35 = OpFOrdEqual %32 %34 %24
+               OpSelectionMerge %37 None
+               OpBranchConditional %35 %36 %43
+         %36 = OpLabel
+               OpStore %40 %42
+               OpBranch %37
+         %43 = OpLabel
+               OpStore %40 %44
+               OpBranch %37
+         %37 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE float DATA
+ 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-merge-add-sub-uniform.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-merge-add-sub-uniform.amber
new file mode 100644
index 0000000..b8177d9
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-merge-add-sub-uniform.amber
@@ -0,0 +1,127 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int one;
+# };
+#
+# void main()
+# {
+#     if (1 + (3 - one) == 3)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 31
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %25
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "buf0"
+               OpMemberName %9 0 "one"
+               OpName %11 ""
+               OpName %25 "_GLF_color"
+               OpMemberDecorate %9 0 Offset 0
+               OpDecorate %9 Block
+               OpDecorate %11 DescriptorSet 0
+               OpDecorate %11 Binding 0
+               OpDecorate %25 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpConstant %6 1
+          %8 = OpConstant %6 3
+          %9 = OpTypeStruct %6
+         %10 = OpTypePointer Uniform %9
+         %11 = OpVariable %10 Uniform
+         %12 = OpConstant %6 0
+         %13 = OpTypePointer Uniform %6
+         %18 = OpTypeBool
+         %22 = OpTypeFloat 32
+         %23 = OpTypeVector %22 4
+         %24 = OpTypePointer Output %23
+         %25 = OpVariable %24 Output
+         %26 = OpConstant %22 1
+         %27 = OpConstant %22 0
+         %28 = OpConstantComposite %23 %26 %27 %27 %26
+         %30 = OpConstantComposite %23 %27 %27 %27 %27
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %14 = OpAccessChain %13 %11 %12
+         %15 = OpLoad %6 %14
+         %16 = OpISub %6 %8 %15
+         %17 = OpIAdd %6 %7 %16
+         %19 = OpIEqual %18 %17 %8
+               OpSelectionMerge %21 None
+               OpBranchConditional %19 %20 %29
+         %20 = OpLabel
+               OpStore %25 %28
+               OpBranch %21
+         %29 = OpLabel
+               OpStore %25 %30
+               OpBranch %21
+         %21 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE int32 DATA
+ 1
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-merge-div-mul.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-merge-div-mul.amber
new file mode 100644
index 0000000..3a8eb23
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-merge-div-mul.amber
@@ -0,0 +1,138 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float one;
+# };
+#
+# void main()
+# {
+#     float f = 4.0 / (2.0 * one);
+#
+#     // If condition is always true.
+#     if (f > 1.9 && f < 2.1)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 39
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %33
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "f"
+               OpName %11 "buf0"
+               OpMemberName %11 0 "one"
+               OpName %13 ""
+               OpName %33 "_GLF_color"
+               OpMemberDecorate %11 0 Offset 0
+               OpDecorate %11 Block
+               OpDecorate %13 DescriptorSet 0
+               OpDecorate %13 Binding 0
+               OpDecorate %33 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypePointer Function %6
+          %9 = OpConstant %6 4
+         %10 = OpConstant %6 2
+         %11 = OpTypeStruct %6
+         %12 = OpTypePointer Uniform %11
+         %13 = OpVariable %12 Uniform
+         %14 = OpTypeInt 32 1
+         %15 = OpConstant %14 0
+         %16 = OpTypePointer Uniform %6
+         %22 = OpConstant %6 1.89999998
+         %23 = OpTypeBool
+         %26 = OpConstant %6 2.0999999
+         %31 = OpTypeVector %6 4
+         %32 = OpTypePointer Output %31
+         %33 = OpVariable %32 Output
+         %34 = OpConstant %6 1
+         %35 = OpConstant %6 0
+         %36 = OpConstantComposite %31 %34 %35 %35 %34
+         %38 = OpConstantComposite %31 %35 %35 %35 %35
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %17 = OpAccessChain %16 %13 %15
+         %18 = OpLoad %6 %17
+         %19 = OpFMul %6 %10 %18
+         %20 = OpFDiv %6 %9 %19
+               OpStore %8 %20
+         %21 = OpLoad %6 %8
+         %24 = OpFOrdGreaterThan %23 %21 %22
+         %25 = OpLoad %6 %8
+         %27 = OpFOrdLessThan %23 %25 %26
+         %28 = OpLogicalAnd %23 %24 %27
+               OpSelectionMerge %30 None
+               OpBranchConditional %28 %29 %37
+         %29 = OpLabel
+               OpStore %33 %36
+               OpBranch %30
+         %37 = OpLabel
+               OpStore %33 %38
+               OpBranch %30
+         %30 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE float DATA
+ 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-merge-divs.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-merge-divs.amber
new file mode 100644
index 0000000..2105230
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-merge-divs.amber
@@ -0,0 +1,136 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float four;
+# };
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     float a = 2.0 / (1.0 / four);
+#     // If condition is always true.
+#     if (a > 7.9 && a < 8.1)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 38
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %33
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "a"
+               OpName %11 "buf0"
+               OpMemberName %11 0 "four"
+               OpName %13 ""
+               OpName %33 "_GLF_color"
+               OpMemberDecorate %11 0 Offset 0
+               OpDecorate %11 Block
+               OpDecorate %13 DescriptorSet 0
+               OpDecorate %13 Binding 0
+               OpDecorate %33 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypePointer Function %6
+          %9 = OpConstant %6 2
+         %10 = OpConstant %6 1
+         %11 = OpTypeStruct %6
+         %12 = OpTypePointer Uniform %11
+         %13 = OpVariable %12 Uniform
+         %14 = OpTypeInt 32 1
+         %15 = OpConstant %14 0
+         %16 = OpTypePointer Uniform %6
+         %22 = OpConstant %6 7.9000001
+         %23 = OpTypeBool
+         %26 = OpConstant %6 8.10000038
+         %31 = OpTypeVector %6 4
+         %32 = OpTypePointer Output %31
+         %33 = OpVariable %32 Output
+         %34 = OpConstant %6 0
+         %35 = OpConstantComposite %31 %10 %34 %34 %10
+         %37 = OpConstantComposite %31 %34 %34 %34 %34
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %17 = OpAccessChain %16 %13 %15
+         %18 = OpLoad %6 %17
+         %19 = OpFDiv %6 %10 %18
+         %20 = OpFDiv %6 %9 %19
+               OpStore %8 %20
+         %21 = OpLoad %6 %8
+         %24 = OpFOrdGreaterThan %23 %21 %22
+         %25 = OpLoad %6 %8
+         %27 = OpFOrdLessThan %23 %25 %26
+         %28 = OpLogicalAnd %23 %24 %27
+               OpSelectionMerge %30 None
+               OpBranchConditional %28 %29 %36
+         %29 = OpLabel
+               OpStore %33 %35
+               OpBranch %30
+         %36 = OpLabel
+               OpStore %33 %37
+               OpBranch %30
+         %30 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# four
+BUFFER variant_four DATA_TYPE float DATA
+ 4.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_four AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-merge-mul-div.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-merge-mul-div.amber
new file mode 100644
index 0000000..4d8f9fe
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-merge-mul-div.amber
@@ -0,0 +1,138 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float one;
+# };
+#
+# void main()
+# {
+#     float f = 4.0 * (2.0 / one);
+#
+#     // If condition is always true.
+#     if(f > 7.9 && f < 8.1)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 39
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %33
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "f"
+               OpName %11 "buf0"
+               OpMemberName %11 0 "one"
+               OpName %13 ""
+               OpName %33 "_GLF_color"
+               OpMemberDecorate %11 0 Offset 0
+               OpDecorate %11 Block
+               OpDecorate %13 DescriptorSet 0
+               OpDecorate %13 Binding 0
+               OpDecorate %33 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypePointer Function %6
+          %9 = OpConstant %6 4
+         %10 = OpConstant %6 2
+         %11 = OpTypeStruct %6
+         %12 = OpTypePointer Uniform %11
+         %13 = OpVariable %12 Uniform
+         %14 = OpTypeInt 32 1
+         %15 = OpConstant %14 0
+         %16 = OpTypePointer Uniform %6
+         %22 = OpConstant %6 7.9000001
+         %23 = OpTypeBool
+         %26 = OpConstant %6 8.10000038
+         %31 = OpTypeVector %6 4
+         %32 = OpTypePointer Output %31
+         %33 = OpVariable %32 Output
+         %34 = OpConstant %6 1
+         %35 = OpConstant %6 0
+         %36 = OpConstantComposite %31 %34 %35 %35 %34
+         %38 = OpConstantComposite %31 %35 %35 %35 %35
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %17 = OpAccessChain %16 %13 %15
+         %18 = OpLoad %6 %17
+         %19 = OpFDiv %6 %10 %18
+         %20 = OpFMul %6 %9 %19
+               OpStore %8 %20
+         %21 = OpLoad %6 %8
+         %24 = OpFOrdGreaterThan %23 %21 %22
+         %25 = OpLoad %6 %8
+         %27 = OpFOrdLessThan %23 %25 %26
+         %28 = OpLogicalAnd %23 %24 %27
+               OpSelectionMerge %30 None
+               OpBranchConditional %28 %29 %37
+         %29 = OpLabel
+               OpStore %33 %36
+               OpBranch %30
+         %37 = OpLabel
+               OpStore %33 %38
+               OpBranch %30
+         %30 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE float DATA
+ 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-merge-var-sub.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-merge-var-sub.amber
new file mode 100644
index 0000000..054a1d9
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-merge-var-sub.amber
@@ -0,0 +1,156 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int five;
+# };
+#
+# void main()
+# {
+#     int i = five;
+#
+#     while(i > 0)
+#     {
+#         i--;
+#         i--;
+#     }
+#
+#     if (i == -1)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 43
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %37
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "i"
+               OpName %9 "buf0"
+               OpMemberName %9 0 "five"
+               OpName %11 ""
+               OpName %37 "_GLF_color"
+               OpMemberDecorate %9 0 Offset 0
+               OpDecorate %9 Block
+               OpDecorate %11 DescriptorSet 0
+               OpDecorate %11 Binding 0
+               OpDecorate %37 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %9 = OpTypeStruct %6
+         %10 = OpTypePointer Uniform %9
+         %11 = OpVariable %10 Uniform
+         %12 = OpConstant %6 0
+         %13 = OpTypePointer Uniform %6
+         %22 = OpTypeBool
+         %25 = OpConstant %6 1
+         %30 = OpConstant %6 -1
+         %34 = OpTypeFloat 32
+         %35 = OpTypeVector %34 4
+         %36 = OpTypePointer Output %35
+         %37 = OpVariable %36 Output
+         %38 = OpConstant %34 1
+         %39 = OpConstant %34 0
+         %40 = OpConstantComposite %35 %38 %39 %39 %38
+         %42 = OpConstantComposite %35 %39 %39 %39 %39
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %14 = OpAccessChain %13 %11 %12
+         %15 = OpLoad %6 %14
+               OpStore %8 %15
+               OpBranch %16
+         %16 = OpLabel
+               OpLoopMerge %18 %19 None
+               OpBranch %20
+         %20 = OpLabel
+         %21 = OpLoad %6 %8
+         %23 = OpSGreaterThan %22 %21 %12
+               OpBranchConditional %23 %17 %18
+         %17 = OpLabel
+         %24 = OpLoad %6 %8
+         %26 = OpISub %6 %24 %25
+               OpStore %8 %26
+         %27 = OpLoad %6 %8
+         %28 = OpISub %6 %27 %25
+               OpStore %8 %28
+               OpBranch %19
+         %19 = OpLabel
+               OpBranch %16
+         %18 = OpLabel
+         %29 = OpLoad %6 %8
+         %31 = OpIEqual %22 %29 %30
+               OpSelectionMerge %33 None
+               OpBranchConditional %31 %32 %41
+         %32 = OpLabel
+               OpStore %37 %40
+               OpBranch %33
+         %41 = OpLabel
+               OpStore %37 %42
+               OpBranch %33
+         %33 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# five
+BUFFER variant_five DATA_TYPE int32 DATA
+ 5
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_five AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-mix-uniform-weight.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-mix-uniform-weight.amber
new file mode 100644
index 0000000..dff4137
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-mix-uniform-weight.amber
@@ -0,0 +1,152 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float one;
+# };
+#
+# void main()
+# {
+#     // This selects the second vector because one == 1.
+#     vec3 v = mix(vec3(5, 8, -12.2), vec3(1, 4.9, -2.1), one);
+#
+#     float d = distance(v, vec3(1, 4.9, -2.1));
+#
+#     if (d < 0.1)
+#         _GLF_color = vec4(v.x, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 49
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %40
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "v"
+               OpName %18 "buf0"
+               OpMemberName %18 0 "one"
+               OpName %20 ""
+               OpName %29 "d"
+               OpName %40 "_GLF_color"
+               OpMemberDecorate %18 0 Offset 0
+               OpDecorate %18 Block
+               OpDecorate %20 DescriptorSet 0
+               OpDecorate %20 Binding 0
+               OpDecorate %40 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 3
+          %8 = OpTypePointer Function %7
+         %10 = OpConstant %6 5
+         %11 = OpConstant %6 8
+         %12 = OpConstant %6 -12.1999998
+         %13 = OpConstantComposite %7 %10 %11 %12
+         %14 = OpConstant %6 1
+         %15 = OpConstant %6 4.9000001
+         %16 = OpConstant %6 -2.0999999
+         %17 = OpConstantComposite %7 %14 %15 %16
+         %18 = OpTypeStruct %6
+         %19 = OpTypePointer Uniform %18
+         %20 = OpVariable %19 Uniform
+         %21 = OpTypeInt 32 1
+         %22 = OpConstant %21 0
+         %23 = OpTypePointer Uniform %6
+         %28 = OpTypePointer Function %6
+         %33 = OpConstant %6 0.100000001
+         %34 = OpTypeBool
+         %38 = OpTypeVector %6 4
+         %39 = OpTypePointer Output %38
+         %40 = OpVariable %39 Output
+         %41 = OpTypeInt 32 0
+         %42 = OpConstant %41 0
+         %45 = OpConstant %6 0
+         %48 = OpConstantComposite %38 %45 %45 %45 %45
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %9 = OpVariable %8 Function
+         %29 = OpVariable %28 Function
+         %24 = OpAccessChain %23 %20 %22
+         %25 = OpLoad %6 %24
+         %26 = OpCompositeConstruct %7 %25 %25 %25
+         %27 = OpExtInst %7 %1 FMix %13 %17 %26
+               OpStore %9 %27
+         %30 = OpLoad %7 %9
+         %31 = OpExtInst %6 %1 Distance %30 %17
+               OpStore %29 %31
+         %32 = OpLoad %6 %29
+         %35 = OpFOrdLessThan %34 %32 %33
+               OpSelectionMerge %37 None
+               OpBranchConditional %35 %36 %47
+         %36 = OpLabel
+         %43 = OpAccessChain %28 %9 %42
+         %44 = OpLoad %6 %43
+         %46 = OpCompositeConstruct %38 %44 %45 %45 %14
+               OpStore %40 %46
+               OpBranch %37
+         %47 = OpLabel
+               OpStore %40 %48
+               OpBranch %37
+         %37 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE float DATA
+ 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-negate-div.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-negate-div.amber
new file mode 100644
index 0000000..d6cc914
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-negate-div.amber
@@ -0,0 +1,130 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int four;
+# };
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     // If condition is always true.
+#     if(-(four / 2) == -2)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 31
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %25
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %7 "buf0"
+               OpMemberName %7 0 "four"
+               OpName %9 ""
+               OpName %25 "_GLF_color"
+               OpMemberDecorate %7 0 RelaxedPrecision
+               OpMemberDecorate %7 0 Offset 0
+               OpDecorate %7 Block
+               OpDecorate %9 DescriptorSet 0
+               OpDecorate %9 Binding 0
+               OpDecorate %13 RelaxedPrecision
+               OpDecorate %15 RelaxedPrecision
+               OpDecorate %16 RelaxedPrecision
+               OpDecorate %25 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypeStruct %6
+          %8 = OpTypePointer Uniform %7
+          %9 = OpVariable %8 Uniform
+         %10 = OpConstant %6 0
+         %11 = OpTypePointer Uniform %6
+         %14 = OpConstant %6 2
+         %17 = OpConstant %6 -2
+         %18 = OpTypeBool
+         %22 = OpTypeFloat 32
+         %23 = OpTypeVector %22 4
+         %24 = OpTypePointer Output %23
+         %25 = OpVariable %24 Output
+         %26 = OpConstant %22 1
+         %27 = OpConstant %22 0
+         %28 = OpConstantComposite %23 %26 %27 %27 %26
+         %30 = OpConstantComposite %23 %27 %27 %27 %27
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %12 = OpAccessChain %11 %9 %10
+         %13 = OpLoad %6 %12
+         %15 = OpSDiv %6 %13 %14
+         %16 = OpSNegate %6 %15
+         %19 = OpIEqual %18 %16 %17
+               OpSelectionMerge %21 None
+               OpBranchConditional %19 %20 %29
+         %20 = OpLabel
+               OpStore %25 %28
+               OpBranch %21
+         %29 = OpLabel
+               OpStore %25 %30
+               OpBranch %21
+         %21 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# four
+BUFFER variant_four DATA_TYPE int32 DATA
+ 4
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_four AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-negate-sub.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-negate-sub.amber
new file mode 100644
index 0000000..fe5c90a
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-negate-sub.amber
@@ -0,0 +1,134 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int one;
+# };
+#
+# void main()
+# {
+#     int x = -(5 - one);
+#
+#     if (x == -4)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 34
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %28
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "x"
+               OpName %10 "buf0"
+               OpMemberName %10 0 "one"
+               OpName %12 ""
+               OpName %28 "_GLF_color"
+               OpMemberDecorate %10 0 Offset 0
+               OpDecorate %10 Block
+               OpDecorate %12 DescriptorSet 0
+               OpDecorate %12 Binding 0
+               OpDecorate %28 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %9 = OpConstant %6 5
+         %10 = OpTypeStruct %6
+         %11 = OpTypePointer Uniform %10
+         %12 = OpVariable %11 Uniform
+         %13 = OpConstant %6 0
+         %14 = OpTypePointer Uniform %6
+         %20 = OpConstant %6 -4
+         %21 = OpTypeBool
+         %25 = OpTypeFloat 32
+         %26 = OpTypeVector %25 4
+         %27 = OpTypePointer Output %26
+         %28 = OpVariable %27 Output
+         %29 = OpConstant %25 1
+         %30 = OpConstant %25 0
+         %31 = OpConstantComposite %26 %29 %30 %30 %29
+         %33 = OpConstantComposite %26 %30 %30 %30 %30
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %15 = OpAccessChain %14 %12 %13
+         %16 = OpLoad %6 %15
+         %17 = OpISub %6 %9 %16
+         %18 = OpSNegate %6 %17
+               OpStore %8 %18
+         %19 = OpLoad %6 %8
+         %22 = OpIEqual %21 %19 %20
+               OpSelectionMerge %24 None
+               OpBranchConditional %22 %23 %32
+         %23 = OpLabel
+               OpStore %28 %31
+               OpBranch %24
+         %32 = OpLabel
+               OpStore %28 %33
+               OpBranch %24
+         %24 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE int32 DATA
+ 1
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-vec-mix-uniform.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-vec-mix-uniform.amber
new file mode 100644
index 0000000..6cd9341
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-folding-rules-vec-mix-uniform.amber
@@ -0,0 +1,155 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction folding path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     vec2 zeroOne;
+# };
+#
+# void main()
+# {
+#     // Since zeroOne is (0, 1) the results will be (2, 5).
+#     vec2 v = mix(vec2(2, 3), vec2(4, 5), zeroOne);
+#     float d = distance(v, vec2(2, 5));
+#
+#     if (d < 0.1)
+#         _GLF_color = vec4(v.x - 1.0, v.y - 5.0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 53
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %38
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "v"
+               OpName %16 "buf0"
+               OpMemberName %16 0 "zeroOne"
+               OpName %18 ""
+               OpName %26 "d"
+               OpName %38 "_GLF_color"
+               OpMemberDecorate %16 0 Offset 0
+               OpDecorate %16 Block
+               OpDecorate %18 DescriptorSet 0
+               OpDecorate %18 Binding 0
+               OpDecorate %38 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 2
+          %8 = OpTypePointer Function %7
+         %10 = OpConstant %6 2
+         %11 = OpConstant %6 3
+         %12 = OpConstantComposite %7 %10 %11
+         %13 = OpConstant %6 4
+         %14 = OpConstant %6 5
+         %15 = OpConstantComposite %7 %13 %14
+         %16 = OpTypeStruct %7
+         %17 = OpTypePointer Uniform %16
+         %18 = OpVariable %17 Uniform
+         %19 = OpTypeInt 32 1
+         %20 = OpConstant %19 0
+         %21 = OpTypePointer Uniform %7
+         %25 = OpTypePointer Function %6
+         %28 = OpConstantComposite %7 %10 %14
+         %31 = OpConstant %6 0.100000001
+         %32 = OpTypeBool
+         %36 = OpTypeVector %6 4
+         %37 = OpTypePointer Output %36
+         %38 = OpVariable %37 Output
+         %39 = OpTypeInt 32 0
+         %40 = OpConstant %39 0
+         %43 = OpConstant %6 1
+         %45 = OpConstant %39 1
+         %49 = OpConstant %6 0
+         %52 = OpConstantComposite %36 %49 %49 %49 %49
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %9 = OpVariable %8 Function
+         %26 = OpVariable %25 Function
+         %22 = OpAccessChain %21 %18 %20
+         %23 = OpLoad %7 %22
+         %24 = OpExtInst %7 %1 FMix %12 %15 %23
+               OpStore %9 %24
+         %27 = OpLoad %7 %9
+         %29 = OpExtInst %6 %1 Distance %27 %28
+               OpStore %26 %29
+         %30 = OpLoad %6 %26
+         %33 = OpFOrdLessThan %32 %30 %31
+               OpSelectionMerge %35 None
+               OpBranchConditional %33 %34 %51
+         %34 = OpLabel
+         %41 = OpAccessChain %25 %9 %40
+         %42 = OpLoad %6 %41
+         %44 = OpFSub %6 %42 %43
+         %46 = OpAccessChain %25 %9 %45
+         %47 = OpLoad %6 %46
+         %48 = OpFSub %6 %47 %14
+         %50 = OpCompositeConstruct %36 %44 %48 %49 %43
+               OpStore %38 %50
+               OpBranch %35
+         %51 = OpLabel
+               OpStore %38 %52
+               OpBranch %35
+         %35 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# zeroOne
+BUFFER variant_zeroOne DATA_TYPE vec2<float> DATA
+ 0.0 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_zeroOne AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-inc-inside-switch-and-for.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-inc-inside-switch-and-for.amber
new file mode 100644
index 0000000..cb458de
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-inc-inside-switch-and-for.amber
@@ -0,0 +1,172 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific LLVM analysis code path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int three;
+# };
+#
+# void main()
+# {
+#     int a = 0;
+#     for(int i = 0; i < 7 + three; i++)
+#     {
+#         switch(i)
+#         {
+#             case 7:
+#             case 8:
+#                 a++;
+#                 break;
+#         }
+#     }
+#
+#     if (a == 2) // Always true.
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 51
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %45
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "a"
+               OpName %10 "i"
+               OpName %18 "buf0"
+               OpMemberName %18 0 "three"
+               OpName %20 ""
+               OpName %45 "_GLF_color"
+               OpMemberDecorate %18 0 Offset 0
+               OpDecorate %18 Block
+               OpDecorate %20 DescriptorSet 0
+               OpDecorate %20 Binding 0
+               OpDecorate %45 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %9 = OpConstant %6 0
+         %17 = OpConstant %6 7
+         %18 = OpTypeStruct %6
+         %19 = OpTypePointer Uniform %18
+         %20 = OpVariable %19 Uniform
+         %21 = OpTypePointer Uniform %6
+         %25 = OpTypeBool
+         %31 = OpConstant %6 1
+         %38 = OpConstant %6 2
+         %42 = OpTypeFloat 32
+         %43 = OpTypeVector %42 4
+         %44 = OpTypePointer Output %43
+         %45 = OpVariable %44 Output
+         %46 = OpConstant %42 1
+         %47 = OpConstant %42 0
+         %48 = OpConstantComposite %43 %46 %47 %47 %46
+         %50 = OpConstantComposite %43 %47 %47 %47 %47
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %10 = OpVariable %7 Function
+               OpStore %8 %9
+               OpStore %10 %9
+               OpBranch %11
+         %11 = OpLabel
+               OpLoopMerge %13 %14 None
+               OpBranch %15
+         %15 = OpLabel
+         %16 = OpLoad %6 %10
+         %22 = OpAccessChain %21 %20 %9
+         %23 = OpLoad %6 %22
+         %24 = OpIAdd %6 %17 %23
+         %26 = OpSLessThan %25 %16 %24
+               OpBranchConditional %26 %12 %13
+         %12 = OpLabel
+         %27 = OpLoad %6 %10
+               OpSelectionMerge %29 None
+               OpSwitch %27 %29 7 %28 8 %28
+         %28 = OpLabel
+         %30 = OpLoad %6 %8
+         %32 = OpIAdd %6 %30 %31
+               OpStore %8 %32
+               OpBranch %29
+         %29 = OpLabel
+               OpBranch %14
+         %14 = OpLabel
+         %35 = OpLoad %6 %10
+         %36 = OpIAdd %6 %35 %31
+               OpStore %10 %36
+               OpBranch %11
+         %13 = OpLabel
+         %37 = OpLoad %6 %8
+         %39 = OpIEqual %25 %37 %38
+               OpSelectionMerge %41 None
+               OpBranchConditional %39 %40 %49
+         %40 = OpLabel
+               OpStore %45 %48
+               OpBranch %41
+         %49 = OpLabel
+               OpStore %45 %50
+               OpBranch %41
+         %41 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# three
+BUFFER variant_three DATA_TYPE int32 DATA
+ 3
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_three AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-increment-inside-clamp.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-increment-inside-clamp.amber
new file mode 100644
index 0000000..48c1040
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-increment-inside-clamp.amber
@@ -0,0 +1,188 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers specific value tracking and simplification paths
+
+# The test passes because the shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int one;
+# };
+#
+# void main()
+# {
+#     int a[3];
+#     a[0] = 1;
+#     a[1] = 2;
+#     a[2] = 3;
+#
+#     int b = 0;
+#     int c = a[one];
+#
+#     // Always true.
+#     if(c > 1)
+#     {
+#         // This will be overwritten later.
+#         _GLF_color = vec4(0, 1, 1, 0);
+#         ++b;
+#     }
+#
+#     // Increments a[2] to 4.
+#     a[clamp(++b, 0, 2)]++;
+#
+#     if (a[2] == 4)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 59
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %38
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %11 "a"
+               OpName %20 "b"
+               OpName %21 "c"
+               OpName %22 "buf0"
+               OpMemberName %22 0 "one"
+               OpName %24 ""
+               OpName %38 "_GLF_color"
+               OpMemberDecorate %22 0 Offset 0
+               OpDecorate %22 Block
+               OpDecorate %24 DescriptorSet 0
+               OpDecorate %24 Binding 0
+               OpDecorate %38 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypeInt 32 0
+          %8 = OpConstant %7 3
+          %9 = OpTypeArray %6 %8
+         %10 = OpTypePointer Function %9
+         %12 = OpConstant %6 0
+         %13 = OpConstant %6 1
+         %14 = OpTypePointer Function %6
+         %16 = OpConstant %6 2
+         %18 = OpConstant %6 3
+         %22 = OpTypeStruct %6
+         %23 = OpTypePointer Uniform %22
+         %24 = OpVariable %23 Uniform
+         %25 = OpTypePointer Uniform %6
+         %31 = OpTypeBool
+         %35 = OpTypeFloat 32
+         %36 = OpTypeVector %35 4
+         %37 = OpTypePointer Output %36
+         %38 = OpVariable %37 Output
+         %39 = OpConstant %35 0
+         %40 = OpConstant %35 1
+         %41 = OpConstantComposite %36 %39 %40 %40 %39
+         %52 = OpConstant %6 4
+         %56 = OpConstantComposite %36 %40 %39 %39 %40
+         %58 = OpConstantComposite %36 %39 %39 %39 %39
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %11 = OpVariable %10 Function
+         %20 = OpVariable %14 Function
+         %21 = OpVariable %14 Function
+         %15 = OpAccessChain %14 %11 %12
+               OpStore %15 %13
+         %17 = OpAccessChain %14 %11 %13
+               OpStore %17 %16
+         %19 = OpAccessChain %14 %11 %16
+               OpStore %19 %18
+               OpStore %20 %12
+         %26 = OpAccessChain %25 %24 %12
+         %27 = OpLoad %6 %26
+         %28 = OpAccessChain %14 %11 %27
+         %29 = OpLoad %6 %28
+               OpStore %21 %29
+         %30 = OpLoad %6 %21
+         %32 = OpSGreaterThan %31 %30 %13
+               OpSelectionMerge %34 None
+               OpBranchConditional %32 %33 %34
+         %33 = OpLabel
+               OpStore %38 %41
+         %42 = OpLoad %6 %20
+         %43 = OpIAdd %6 %42 %13
+               OpStore %20 %43
+               OpBranch %34
+         %34 = OpLabel
+         %44 = OpLoad %6 %20
+         %45 = OpIAdd %6 %44 %13
+               OpStore %20 %45
+         %46 = OpExtInst %6 %1 SClamp %45 %12 %16
+         %47 = OpAccessChain %14 %11 %46
+         %48 = OpLoad %6 %47
+         %49 = OpIAdd %6 %48 %13
+               OpStore %47 %49
+         %50 = OpAccessChain %14 %11 %16
+         %51 = OpLoad %6 %50
+         %53 = OpIEqual %31 %51 %52
+               OpSelectionMerge %55 None
+               OpBranchConditional %53 %54 %57
+         %54 = OpLabel
+               OpStore %38 %56
+               OpBranch %55
+         %57 = OpLabel
+               OpStore %38 %58
+               OpBranch %55
+         %55 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE int32 DATA
+ 1
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-inline-pass-return-in-loop.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-inline-pass-return-in-loop.amber
new file mode 100644
index 0000000..5de3a4c
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-inline-pass-return-in-loop.amber
@@ -0,0 +1,165 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific inlining optimization path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+#
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# float func()
+# {
+#     for (int i = 0; i < 10; ++i)
+#     {
+#         if (i > 5)
+#             ++i;
+#
+#         if (i > 8)
+#             return 0.0;
+#     }
+#
+#     return 1.0;
+# }
+#
+# void main()
+# {
+#     if (false)
+#     {
+#         _GLF_color = vec4(func());
+#     }
+#     else
+#     {
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     }
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 53
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %48
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "func("
+               OpName %12 "i"
+               OpName %48 "_GLF_color"
+               OpDecorate %48 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeFunction %6
+         %10 = OpTypeInt 32 1
+         %11 = OpTypePointer Function %10
+         %13 = OpConstant %10 0
+         %20 = OpConstant %10 10
+         %21 = OpTypeBool
+         %24 = OpConstant %10 5
+         %29 = OpConstant %10 1
+         %32 = OpConstant %10 8
+         %36 = OpConstant %6 0
+         %40 = OpConstant %6 1
+         %43 = OpConstantFalse %21
+         %46 = OpTypeVector %6 4
+         %47 = OpTypePointer Output %46
+         %48 = OpVariable %47 Output
+         %52 = OpConstantComposite %46 %40 %36 %36 %40
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+               OpSelectionMerge %45 None
+               OpBranchConditional %43 %44 %51
+         %44 = OpLabel
+         %49 = OpFunctionCall %6 %8
+         %50 = OpCompositeConstruct %46 %49 %49 %49 %49
+               OpStore %48 %50
+               OpBranch %45
+         %51 = OpLabel
+               OpStore %48 %52
+               OpBranch %45
+         %45 = OpLabel
+               OpReturn
+               OpFunctionEnd
+          %8 = OpFunction %6 None %7
+          %9 = OpLabel
+         %12 = OpVariable %11 Function
+               OpStore %12 %13
+               OpBranch %14
+         %14 = OpLabel
+               OpLoopMerge %16 %17 None
+               OpBranch %18
+         %18 = OpLabel
+         %19 = OpLoad %10 %12
+         %22 = OpSLessThan %21 %19 %20
+               OpBranchConditional %22 %15 %16
+         %15 = OpLabel
+         %23 = OpLoad %10 %12
+         %25 = OpSGreaterThan %21 %23 %24
+               OpSelectionMerge %27 None
+               OpBranchConditional %25 %26 %27
+         %26 = OpLabel
+         %28 = OpLoad %10 %12
+         %30 = OpIAdd %10 %28 %29
+               OpStore %12 %30
+               OpBranch %27
+         %27 = OpLabel
+         %31 = OpLoad %10 %12
+         %33 = OpSGreaterThan %21 %31 %32
+               OpSelectionMerge %35 None
+               OpBranchConditional %33 %34 %35
+         %34 = OpLabel
+               OpReturnValue %36
+         %35 = OpLabel
+               OpBranch %17
+         %17 = OpLabel
+         %38 = OpLoad %10 %12
+         %39 = OpIAdd %10 %38 %29
+               OpStore %12 %39
+               OpBranch %14
+         %16 = OpLabel
+               OpReturnValue %40
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-irbuilder-matrix-cell-uniform.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-irbuilder-matrix-cell-uniform.amber
new file mode 100644
index 0000000..bf0ca86
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-irbuilder-matrix-cell-uniform.amber
@@ -0,0 +1,141 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific IR builder path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float one;
+# };
+#
+# void main()
+# {
+#     mat4 m = mat4(1.0, 1.0, 0.0, 1.0,
+#                   0.0, 0.0, 1.0, 1.0,
+#                   0.0, 0.0, one, 0.0,
+#                   0.0, 0.0, 0.0, 0.0);
+#
+#     if(abs(determinant(m)) < 0.01)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 39
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %35
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %10 "m"
+               OpName %13 "buf0"
+               OpMemberName %13 0 "one"
+               OpName %15 ""
+               OpName %35 "_GLF_color"
+               OpMemberDecorate %13 0 Offset 0
+               OpDecorate %13 Block
+               OpDecorate %15 DescriptorSet 0
+               OpDecorate %15 Binding 0
+               OpDecorate %35 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 4
+          %8 = OpTypeMatrix %7 4
+          %9 = OpTypePointer Function %8
+         %11 = OpConstant %6 1
+         %12 = OpConstant %6 0
+         %13 = OpTypeStruct %6
+         %14 = OpTypePointer Uniform %13
+         %15 = OpVariable %14 Uniform
+         %16 = OpTypeInt 32 1
+         %17 = OpConstant %16 0
+         %18 = OpTypePointer Uniform %6
+         %29 = OpConstant %6 0.00999999978
+         %30 = OpTypeBool
+         %34 = OpTypePointer Output %7
+         %35 = OpVariable %34 Output
+         %36 = OpConstantComposite %7 %11 %12 %12 %11
+         %38 = OpConstantComposite %7 %12 %12 %12 %12
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %10 = OpVariable %9 Function
+         %19 = OpAccessChain %18 %15 %17
+         %20 = OpLoad %6 %19
+         %21 = OpCompositeConstruct %7 %11 %11 %12 %11
+         %22 = OpCompositeConstruct %7 %12 %12 %11 %11
+         %23 = OpCompositeConstruct %7 %12 %12 %20 %12
+         %24 = OpCompositeConstruct %7 %12 %12 %12 %12
+         %25 = OpCompositeConstruct %8 %21 %22 %23 %24
+               OpStore %10 %25
+         %26 = OpLoad %8 %10
+         %27 = OpExtInst %6 %1 Determinant %26
+         %28 = OpExtInst %6 %1 FAbs %27
+         %31 = OpFOrdLessThan %30 %28 %29
+               OpSelectionMerge %33 None
+               OpBranchConditional %31 %32 %37
+         %32 = OpLabel
+               OpStore %35 %36
+               OpBranch %33
+         %37 = OpLabel
+               OpStore %35 %38
+               OpBranch %33
+         %33 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE float DATA
+ 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-loop-findmsb-findlsb.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-loop-findmsb-findlsb.amber
new file mode 100644
index 0000000..7c57b79
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-loop-findmsb-findlsb.amber
@@ -0,0 +1,222 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers specific simplification and value tracking paths
+
+# The test passes because the shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int two;
+# };
+#
+# int func(int i, int x)
+# {
+#     int r = 2;
+#
+#     // Run until x = 3 (three iterations).
+#     while(x <= r)
+#     {
+#         // Always false.
+#         if(i == 1)
+#             return -1;
+#
+#         // Always false.
+#         if(x < 1)
+#             r = 1;
+#
+#         // r is always 2.
+#         // findLSB(2) = 1
+#         // findMSB(1) = 0
+#         // --> The while loop is run only once.
+#         do
+#         {
+#             x++;
+#         }
+#         while(findMSB(findLSB(r)) > 1);
+#     }
+#
+#     return x;
+# }
+#
+# void main()
+# {
+#     if(func(two, 1) == 3)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 71
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %65
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %11 "func(i1;i1;"
+               OpName %9 "i"
+               OpName %10 "x"
+               OpName %13 "r"
+               OpName %48 "buf0"
+               OpMemberName %48 0 "two"
+               OpName %50 ""
+               OpName %52 "param"
+               OpName %56 "param"
+               OpName %65 "_GLF_color"
+               OpMemberDecorate %48 0 Offset 0
+               OpDecorate %48 Block
+               OpDecorate %50 DescriptorSet 0
+               OpDecorate %50 Binding 0
+               OpDecorate %65 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %8 = OpTypeFunction %6 %7 %7
+         %14 = OpConstant %6 2
+         %22 = OpTypeBool
+         %25 = OpConstant %6 1
+         %29 = OpConstant %6 -1
+         %48 = OpTypeStruct %6
+         %49 = OpTypePointer Uniform %48
+         %50 = OpVariable %49 Uniform
+         %51 = OpConstant %6 0
+         %53 = OpTypePointer Uniform %6
+         %58 = OpConstant %6 3
+         %62 = OpTypeFloat 32
+         %63 = OpTypeVector %62 4
+         %64 = OpTypePointer Output %63
+         %65 = OpVariable %64 Output
+         %66 = OpConstant %62 1
+         %67 = OpConstant %62 0
+         %68 = OpConstantComposite %63 %66 %67 %67 %66
+         %70 = OpConstantComposite %63 %67 %67 %67 %67
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %52 = OpVariable %7 Function
+         %56 = OpVariable %7 Function
+         %54 = OpAccessChain %53 %50 %51
+         %55 = OpLoad %6 %54
+               OpStore %52 %55
+               OpStore %56 %25
+         %57 = OpFunctionCall %6 %11 %52 %56
+         %59 = OpIEqual %22 %57 %58
+               OpSelectionMerge %61 None
+               OpBranchConditional %59 %60 %69
+         %60 = OpLabel
+               OpStore %65 %68
+               OpBranch %61
+         %69 = OpLabel
+               OpStore %65 %70
+               OpBranch %61
+         %61 = OpLabel
+               OpReturn
+               OpFunctionEnd
+         %11 = OpFunction %6 None %8
+          %9 = OpFunctionParameter %7
+         %10 = OpFunctionParameter %7
+         %12 = OpLabel
+         %13 = OpVariable %7 Function
+               OpStore %13 %14
+               OpBranch %15
+         %15 = OpLabel
+               OpLoopMerge %17 %18 None
+               OpBranch %19
+         %19 = OpLabel
+         %20 = OpLoad %6 %10
+         %21 = OpLoad %6 %13
+         %23 = OpSLessThanEqual %22 %20 %21
+               OpBranchConditional %23 %16 %17
+         %16 = OpLabel
+         %24 = OpLoad %6 %9
+         %26 = OpIEqual %22 %24 %25
+               OpSelectionMerge %28 None
+               OpBranchConditional %26 %27 %28
+         %27 = OpLabel
+               OpReturnValue %29
+         %28 = OpLabel
+         %31 = OpLoad %6 %10
+         %32 = OpSLessThan %22 %31 %25
+               OpSelectionMerge %34 None
+               OpBranchConditional %32 %33 %34
+         %33 = OpLabel
+               OpStore %13 %25
+               OpBranch %34
+         %34 = OpLabel
+               OpBranch %35
+         %35 = OpLabel
+               OpLoopMerge %37 %38 None
+               OpBranch %36
+         %36 = OpLabel
+         %39 = OpLoad %6 %10
+         %40 = OpIAdd %6 %39 %25
+               OpStore %10 %40
+               OpBranch %38
+         %38 = OpLabel
+         %41 = OpLoad %6 %13
+         %42 = OpExtInst %6 %1 FindILsb %41
+         %43 = OpExtInst %6 %1 FindSMsb %42
+         %44 = OpSGreaterThan %22 %43 %25
+               OpBranchConditional %44 %35 %37
+         %37 = OpLabel
+               OpBranch %18
+         %18 = OpLabel
+               OpBranch %15
+         %17 = OpLabel
+         %45 = OpLoad %6 %10
+               OpReturnValue %45
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# two
+BUFFER variant_two DATA_TYPE int32 DATA
+ 2
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_two AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-machinevaluetype-one-iter-loop.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-machinevaluetype-one-iter-loop.amber
new file mode 100644
index 0000000..c82366d
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-machinevaluetype-one-iter-loop.amber
@@ -0,0 +1,177 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific machine value type code path
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     vec2 injectionSwitch;
+# };
+#
+# void main()
+# {
+#     int a = 0;
+#     for(int i = 0; i < int(injectionSwitch.y); i++)
+#     {
+#         if (a > 0)
+#         {
+#             break;
+#         }
+#         // a becomes 1.
+#         a = ((int(injectionSwitch.y) * 2) / 2);
+#     }
+#
+#     if (a == 1) // Always true.
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 56
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %50
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "a"
+               OpName %10 "i"
+               OpName %19 "buf0"
+               OpMemberName %19 0 "injectionSwitch"
+               OpName %21 ""
+               OpName %50 "_GLF_color"
+               OpMemberDecorate %19 0 Offset 0
+               OpDecorate %19 Block
+               OpDecorate %21 DescriptorSet 0
+               OpDecorate %21 Binding 0
+               OpDecorate %50 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %9 = OpConstant %6 0
+         %17 = OpTypeFloat 32
+         %18 = OpTypeVector %17 2
+         %19 = OpTypeStruct %18
+         %20 = OpTypePointer Uniform %19
+         %21 = OpVariable %20 Uniform
+         %22 = OpTypeInt 32 0
+         %23 = OpConstant %22 1
+         %24 = OpTypePointer Uniform %17
+         %28 = OpTypeBool
+         %38 = OpConstant %6 2
+         %42 = OpConstant %6 1
+         %48 = OpTypeVector %17 4
+         %49 = OpTypePointer Output %48
+         %50 = OpVariable %49 Output
+         %51 = OpConstant %17 1
+         %52 = OpConstant %17 0
+         %53 = OpConstantComposite %48 %51 %52 %52 %51
+         %55 = OpConstantComposite %48 %52 %52 %52 %52
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %10 = OpVariable %7 Function
+               OpStore %8 %9
+               OpStore %10 %9
+               OpBranch %11
+         %11 = OpLabel
+               OpLoopMerge %13 %14 None
+               OpBranch %15
+         %15 = OpLabel
+         %16 = OpLoad %6 %10
+         %25 = OpAccessChain %24 %21 %9 %23
+         %26 = OpLoad %17 %25
+         %27 = OpConvertFToS %6 %26
+         %29 = OpSLessThan %28 %16 %27
+               OpBranchConditional %29 %12 %13
+         %12 = OpLabel
+         %30 = OpLoad %6 %8
+         %31 = OpSGreaterThan %28 %30 %9
+               OpSelectionMerge %33 None
+               OpBranchConditional %31 %32 %33
+         %32 = OpLabel
+               OpBranch %13
+         %33 = OpLabel
+         %35 = OpAccessChain %24 %21 %9 %23
+         %36 = OpLoad %17 %35
+         %37 = OpConvertFToS %6 %36
+         %39 = OpIMul %6 %37 %38
+         %40 = OpSDiv %6 %39 %38
+               OpStore %8 %40
+               OpBranch %14
+         %14 = OpLabel
+         %41 = OpLoad %6 %10
+         %43 = OpIAdd %6 %41 %42
+               OpStore %10 %43
+               OpBranch %11
+         %13 = OpLabel
+         %44 = OpLoad %6 %8
+         %45 = OpIEqual %28 %44 %42
+               OpSelectionMerge %47 None
+               OpBranchConditional %45 %46 %54
+         %46 = OpLabel
+               OpStore %50 %53
+               OpBranch %47
+         %54 = OpLabel
+               OpStore %50 %55
+               OpBranch %47
+         %47 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# injectionSwitch
+BUFFER variant_injectionSwitch DATA_TYPE vec2<float> DATA
+ 0.0 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_injectionSwitch AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-max-clamp-same-minval.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-max-clamp-same-minval.amber
new file mode 100644
index 0000000..8bbf5e4
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-max-clamp-same-minval.amber
@@ -0,0 +1,135 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction simplification path
+
+# The test passes because the shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#   int one;
+# };
+#
+# void main()
+# {
+#   if(max(one, clamp(one, one, 1)) == 1)
+#   {
+#     _GLF_color = vec4(1, 0, 0, 1);
+#   }
+#   else
+#   {
+#     _GLF_color = vec4(1);
+#   }
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 34
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %28
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %7 "buf0"
+               OpMemberName %7 0 "one"
+               OpName %9 ""
+               OpName %28 "_GLF_color"
+               OpMemberDecorate %7 0 Offset 0
+               OpDecorate %7 Block
+               OpDecorate %9 DescriptorSet 0
+               OpDecorate %9 Binding 0
+               OpDecorate %28 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypeStruct %6
+          %8 = OpTypePointer Uniform %7
+          %9 = OpVariable %8 Uniform
+         %10 = OpConstant %6 0
+         %11 = OpTypePointer Uniform %6
+         %18 = OpConstant %6 1
+         %21 = OpTypeBool
+         %25 = OpTypeFloat 32
+         %26 = OpTypeVector %25 4
+         %27 = OpTypePointer Output %26
+         %28 = OpVariable %27 Output
+         %29 = OpConstant %25 1
+         %30 = OpConstant %25 0
+         %31 = OpConstantComposite %26 %29 %30 %30 %29
+         %33 = OpConstantComposite %26 %29 %29 %29 %29
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %12 = OpAccessChain %11 %9 %10
+         %13 = OpLoad %6 %12
+         %14 = OpAccessChain %11 %9 %10
+         %15 = OpLoad %6 %14
+         %16 = OpAccessChain %11 %9 %10
+         %17 = OpLoad %6 %16
+         %19 = OpExtInst %6 %1 SClamp %15 %17 %18
+         %20 = OpExtInst %6 %1 SMax %13 %19
+         %22 = OpIEqual %21 %20 %18
+               OpSelectionMerge %24 None
+               OpBranchConditional %22 %23 %32
+         %23 = OpLabel
+               OpStore %28 %31
+               OpBranch %24
+         %32 = OpLabel
+               OpStore %28 %33
+               OpBranch %24
+         %24 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE int32 DATA
+ 1
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-mem-pass-sum-struct-members.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-mem-pass-sum-struct-members.amber
new file mode 100644
index 0000000..6039491
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-mem-pass-sum-struct-members.amber
@@ -0,0 +1,330 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific mem pass code path.
+
+# The test passes because shader always writes red.
+
+# Optimized using spirv-opt with the following arguments:
+# '--redundancy-elimination'
+# '--eliminate-dead-inserts'
+# '--private-to-local'
+# '--redundancy-elimination'
+# '--eliminate-local-multi-store'
+# '--if-conversion'
+# '--scalar-replacement=100'
+# '--combine-access-chains'
+# '--reduce-load-size'
+# '--eliminate-dead-branches'
+# '--merge-return'
+# '--eliminate-local-single-block'
+# '--if-conversion'
+# '--private-to-local'
+# '--eliminate-dead-inserts'
+# '--copy-propagate-arrays'
+# '--inline-entry-points-exhaustive'
+# '--copy-propagate-arrays'
+# '--convert-local-access-chains'
+# spirv-opt commit hash: 9215c1b7df0029f27807e8c8d7ec80532ce90a87
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int one;
+# };
+#
+# struct S
+# {
+#     int a;
+#     int b;
+#     int c;
+# };
+#
+# int func(S s, int x)
+# {
+#     s.a = x;
+#
+#     // Always false.
+#     if(s.a == 2)
+#         s.a = 9;
+#
+#     s.b = x + 1;
+#     s.c = x + 2;
+#
+#     // Always false.
+#     if(s.b == 2)
+#         s.b = 7;
+#
+#     return s.a + s.b + s.c;
+# }
+#
+# void main()
+# {
+#     S arr[2];
+#     arr[one].a = 2;
+#
+#     // Always false.
+#     if(arr[1].a < 1)
+#     {
+#         _GLF_color = vec4(0);
+#         return;
+#     }
+#     else
+#     {
+#         if (func(arr[1], 2 + one) == 12)
+#             _GLF_color = vec4(1, 0, 0, 1);
+#         else
+#             _GLF_color = vec4(0);
+#     }
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 136
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %71
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %7 "S"
+               OpMemberName %7 0 "a"
+               OpMemberName %7 1 "b"
+               OpMemberName %7 2 "c"
+               OpName %13 "func(struct-S-i1-i1-i11;i1;"
+               OpName %11 "s"
+               OpName %12 "x"
+               OpName %55 "arr"
+               OpName %56 "buf0"
+               OpMemberName %56 0 "one"
+               OpName %58 ""
+               OpName %71 "_GLF_color"
+               OpName %79 "param"
+               OpName %82 "param"
+               OpMemberDecorate %56 0 Offset 0
+               OpDecorate %56 Block
+               OpDecorate %58 DescriptorSet 0
+               OpDecorate %58 Binding 0
+               OpDecorate %71 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypeStruct %6 %6 %6
+          %8 = OpTypePointer Function %7
+          %9 = OpTypePointer Function %6
+         %10 = OpTypeFunction %6 %8 %9
+         %15 = OpConstant %6 0
+         %20 = OpConstant %6 2
+         %21 = OpTypeBool
+         %25 = OpConstant %6 9
+         %27 = OpConstant %6 1
+         %39 = OpConstant %6 7
+         %51 = OpTypeInt 32 0
+         %52 = OpConstant %51 2
+         %53 = OpTypeArray %7 %52
+         %54 = OpTypePointer Function %53
+         %56 = OpTypeStruct %6
+         %57 = OpTypePointer Uniform %56
+         %58 = OpVariable %57 Uniform
+         %59 = OpTypePointer Uniform %6
+         %68 = OpTypeFloat 32
+         %69 = OpTypeVector %68 4
+         %70 = OpTypePointer Output %69
+         %71 = OpVariable %70 Output
+         %72 = OpConstant %68 0
+         %73 = OpConstantComposite %69 %72 %72 %72 %72
+         %84 = OpConstant %6 12
+         %88 = OpConstant %68 1
+         %89 = OpConstantComposite %69 %88 %72 %72 %88
+         %95 = OpConstantFalse %21
+         %96 = OpTypePointer Function %21
+         %98 = OpConstantTrue %21
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %99 = OpVariable %9 Function
+         %97 = OpVariable %96 Function %95
+         %55 = OpVariable %54 Function
+         %79 = OpVariable %8 Function
+         %82 = OpVariable %9 Function
+               OpBranch %92
+         %92 = OpLabel
+               OpLoopMerge %91 %94 None
+               OpBranch %93
+         %93 = OpLabel
+         %60 = OpAccessChain %59 %58 %15
+         %61 = OpLoad %6 %60
+         %62 = OpAccessChain %9 %55 %61 %15
+               OpStore %62 %20
+         %63 = OpAccessChain %9 %55 %27 %15
+         %64 = OpLoad %6 %63
+         %65 = OpSLessThan %21 %64 %27
+               OpSelectionMerge %67 None
+               OpBranchConditional %65 %66 %75
+         %66 = OpLabel
+               OpStore %71 %73
+               OpStore %97 %98
+               OpBranch %91
+         %75 = OpLabel
+         %78 = OpIAdd %6 %20 %61
+         %80 = OpAccessChain %8 %55 %27
+         %81 = OpLoad %7 %80
+               OpStore %79 %81
+               OpStore %82 %78
+        %100 = OpLoad %6 %82
+        %101 = OpAccessChain %9 %79 %15
+        %121 = OpLoad %7 %79
+        %122 = OpCompositeInsert %7 %100 %121 0
+               OpStore %79 %122
+        %123 = OpLoad %7 %79
+        %102 = OpCompositeExtract %6 %123 0
+        %103 = OpIEqual %21 %102 %20
+               OpSelectionMerge %104 None
+               OpBranchConditional %103 %105 %104
+        %105 = OpLabel
+        %124 = OpLoad %7 %79
+        %125 = OpCompositeInsert %7 %25 %124 0
+               OpStore %79 %125
+               OpBranch %104
+        %104 = OpLabel
+        %106 = OpLoad %6 %82
+        %107 = OpIAdd %6 %106 %27
+        %108 = OpAccessChain %9 %79 %27
+        %126 = OpLoad %7 %79
+        %127 = OpCompositeInsert %7 %107 %126 1
+               OpStore %79 %127
+        %109 = OpLoad %6 %82
+        %110 = OpIAdd %6 %109 %20
+        %111 = OpAccessChain %9 %79 %20
+        %128 = OpLoad %7 %79
+        %129 = OpCompositeInsert %7 %110 %128 2
+               OpStore %79 %129
+        %130 = OpLoad %7 %79
+        %112 = OpCompositeExtract %6 %130 1
+        %113 = OpIEqual %21 %112 %20
+               OpSelectionMerge %114 None
+               OpBranchConditional %113 %115 %114
+        %115 = OpLabel
+        %131 = OpLoad %7 %79
+        %132 = OpCompositeInsert %7 %39 %131 1
+               OpStore %79 %132
+               OpBranch %114
+        %114 = OpLabel
+        %133 = OpLoad %7 %79
+        %116 = OpCompositeExtract %6 %133 0
+        %134 = OpLoad %7 %79
+        %117 = OpCompositeExtract %6 %134 1
+        %118 = OpIAdd %6 %116 %117
+        %135 = OpLoad %7 %79
+        %119 = OpCompositeExtract %6 %135 2
+        %120 = OpIAdd %6 %118 %119
+               OpStore %99 %120
+         %83 = OpLoad %6 %99
+         %85 = OpIEqual %21 %83 %84
+               OpSelectionMerge %87 None
+               OpBranchConditional %85 %86 %90
+         %86 = OpLabel
+               OpStore %71 %89
+               OpBranch %87
+         %90 = OpLabel
+               OpStore %71 %73
+               OpBranch %87
+         %87 = OpLabel
+               OpBranch %67
+         %67 = OpLabel
+               OpStore %97 %98
+               OpBranch %91
+         %94 = OpLabel
+               OpBranch %92
+         %91 = OpLabel
+               OpReturn
+               OpFunctionEnd
+         %13 = OpFunction %6 None %10
+         %11 = OpFunctionParameter %8
+         %12 = OpFunctionParameter %9
+         %14 = OpLabel
+         %16 = OpLoad %6 %12
+         %17 = OpAccessChain %9 %11 %15
+               OpStore %17 %16
+         %19 = OpLoad %6 %17
+         %22 = OpIEqual %21 %19 %20
+               OpSelectionMerge %24 None
+               OpBranchConditional %22 %23 %24
+         %23 = OpLabel
+               OpStore %17 %25
+               OpBranch %24
+         %24 = OpLabel
+         %28 = OpLoad %6 %12
+         %29 = OpIAdd %6 %28 %27
+         %30 = OpAccessChain %9 %11 %27
+               OpStore %30 %29
+         %31 = OpLoad %6 %12
+         %32 = OpIAdd %6 %31 %20
+         %33 = OpAccessChain %9 %11 %20
+               OpStore %33 %32
+         %35 = OpLoad %6 %30
+         %36 = OpIEqual %21 %35 %20
+               OpSelectionMerge %38 None
+               OpBranchConditional %36 %37 %38
+         %37 = OpLabel
+               OpStore %30 %39
+               OpBranch %38
+         %38 = OpLabel
+         %42 = OpLoad %6 %17
+         %44 = OpLoad %6 %30
+         %45 = OpIAdd %6 %42 %44
+         %47 = OpLoad %6 %33
+         %48 = OpIAdd %6 %45 %47
+               OpReturnValue %48
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE int32 DATA
+ 1
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-mem-pass-unused-component.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-mem-pass-unused-component.amber
new file mode 100644
index 0000000..0b53bba
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-mem-pass-unused-component.amber
@@ -0,0 +1,169 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific mem pass code path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float two;
+# };
+#
+# float func(vec2 v)
+# {
+#     // Never used in this function.
+#     v.x = two;
+#
+#     // Always false.
+#     if(v.y < 1.0)
+#         return 1.0;
+#
+#     return 5.0;
+# }
+#
+# void main()
+# {
+#     float f = func(vec2(1));
+#
+#     if (f == 5.0)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 52
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %47
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %11 "func(vf2;"
+               OpName %10 "v"
+               OpName %13 "buf0"
+               OpMemberName %13 0 "two"
+               OpName %15 ""
+               OpName %37 "f"
+               OpName %39 "param"
+               OpName %47 "_GLF_color"
+               OpMemberDecorate %13 0 Offset 0
+               OpDecorate %13 Block
+               OpDecorate %15 DescriptorSet 0
+               OpDecorate %15 Binding 0
+               OpDecorate %47 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 2
+          %8 = OpTypePointer Function %7
+          %9 = OpTypeFunction %6 %8
+         %13 = OpTypeStruct %6
+         %14 = OpTypePointer Uniform %13
+         %15 = OpVariable %14 Uniform
+         %16 = OpTypeInt 32 1
+         %17 = OpConstant %16 0
+         %18 = OpTypePointer Uniform %6
+         %21 = OpTypeInt 32 0
+         %22 = OpConstant %21 0
+         %23 = OpTypePointer Function %6
+         %25 = OpConstant %21 1
+         %28 = OpConstant %6 1
+         %29 = OpTypeBool
+         %34 = OpConstant %6 5
+         %38 = OpConstantComposite %7 %28 %28
+         %45 = OpTypeVector %6 4
+         %46 = OpTypePointer Output %45
+         %47 = OpVariable %46 Output
+         %48 = OpConstant %6 0
+         %49 = OpConstantComposite %45 %28 %48 %48 %28
+         %51 = OpConstantComposite %45 %48 %48 %48 %48
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %37 = OpVariable %23 Function
+         %39 = OpVariable %8 Function
+               OpStore %39 %38
+         %40 = OpFunctionCall %6 %11 %39
+               OpStore %37 %40
+         %41 = OpLoad %6 %37
+         %42 = OpFOrdEqual %29 %41 %34
+               OpSelectionMerge %44 None
+               OpBranchConditional %42 %43 %50
+         %43 = OpLabel
+               OpStore %47 %49
+               OpBranch %44
+         %50 = OpLabel
+               OpStore %47 %51
+               OpBranch %44
+         %44 = OpLabel
+               OpReturn
+               OpFunctionEnd
+         %11 = OpFunction %6 None %9
+         %10 = OpFunctionParameter %8
+         %12 = OpLabel
+         %19 = OpAccessChain %18 %15 %17
+         %20 = OpLoad %6 %19
+         %24 = OpAccessChain %23 %10 %22
+               OpStore %24 %20
+         %26 = OpAccessChain %23 %10 %25
+         %27 = OpLoad %6 %26
+         %30 = OpFOrdLessThan %29 %27 %28
+               OpSelectionMerge %32 None
+               OpBranchConditional %30 %31 %32
+         %31 = OpLabel
+               OpReturnValue %28
+         %32 = OpLabel
+               OpReturnValue %34
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# two
+BUFFER variant_two DATA_TYPE float DATA
+ 2.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_two AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-pattern-match-signum.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-pattern-match-signum.amber
new file mode 100644
index 0000000..a2a1662
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-pattern-match-signum.amber
@@ -0,0 +1,156 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific pattern matching path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int one;
+# };
+#
+# int func(int x)
+# {
+#     // Always true.
+#     if (one == 1)
+#         return x;
+#
+#     return one;
+# }
+#
+# void main()
+# {
+#     if(func(-1) <= 0)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 45
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %39
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %10 "func(i1;"
+               OpName %9 "x"
+               OpName %12 "buf0"
+               OpMemberName %12 0 "one"
+               OpName %14 ""
+               OpName %31 "param"
+               OpName %39 "_GLF_color"
+               OpMemberDecorate %12 0 Offset 0
+               OpDecorate %12 Block
+               OpDecorate %14 DescriptorSet 0
+               OpDecorate %14 Binding 0
+               OpDecorate %39 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %8 = OpTypeFunction %6 %7
+         %12 = OpTypeStruct %6
+         %13 = OpTypePointer Uniform %12
+         %14 = OpVariable %13 Uniform
+         %15 = OpConstant %6 0
+         %16 = OpTypePointer Uniform %6
+         %19 = OpConstant %6 1
+         %20 = OpTypeBool
+         %30 = OpConstant %6 -1
+         %36 = OpTypeFloat 32
+         %37 = OpTypeVector %36 4
+         %38 = OpTypePointer Output %37
+         %39 = OpVariable %38 Output
+         %40 = OpConstant %36 1
+         %41 = OpConstant %36 0
+         %42 = OpConstantComposite %37 %40 %41 %41 %40
+         %44 = OpConstantComposite %37 %41 %41 %41 %41
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %31 = OpVariable %7 Function
+               OpStore %31 %30
+         %32 = OpFunctionCall %6 %10 %31
+         %33 = OpSLessThanEqual %20 %32 %15
+               OpSelectionMerge %35 None
+               OpBranchConditional %33 %34 %43
+         %34 = OpLabel
+               OpStore %39 %42
+               OpBranch %35
+         %43 = OpLabel
+               OpStore %39 %44
+               OpBranch %35
+         %35 = OpLabel
+               OpReturn
+               OpFunctionEnd
+         %10 = OpFunction %6 None %8
+          %9 = OpFunctionParameter %7
+         %11 = OpLabel
+         %17 = OpAccessChain %16 %14 %15
+         %18 = OpLoad %6 %17
+         %21 = OpIEqual %20 %18 %19
+               OpSelectionMerge %23 None
+               OpBranchConditional %21 %22 %23
+         %22 = OpLabel
+         %24 = OpLoad %6 %9
+               OpReturnValue %24
+         %23 = OpLabel
+         %26 = OpAccessChain %16 %14 %15
+         %27 = OpLoad %6 %26
+               OpReturnValue %27
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE int32 DATA
+ 1
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-pattern-match-single-bit.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-pattern-match-single-bit.amber
new file mode 100644
index 0000000..38564aa
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-pattern-match-single-bit.amber
@@ -0,0 +1,128 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific pattern matching path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int three;
+# };
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     if(10 / (2 & three) == 5)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 32
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %26
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "buf0"
+               OpMemberName %9 0 "three"
+               OpName %11 ""
+               OpName %26 "_GLF_color"
+               OpMemberDecorate %9 0 Offset 0
+               OpDecorate %9 Block
+               OpDecorate %11 DescriptorSet 0
+               OpDecorate %11 Binding 0
+               OpDecorate %26 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpConstant %6 10
+          %8 = OpConstant %6 2
+          %9 = OpTypeStruct %6
+         %10 = OpTypePointer Uniform %9
+         %11 = OpVariable %10 Uniform
+         %12 = OpConstant %6 0
+         %13 = OpTypePointer Uniform %6
+         %18 = OpConstant %6 5
+         %19 = OpTypeBool
+         %23 = OpTypeFloat 32
+         %24 = OpTypeVector %23 4
+         %25 = OpTypePointer Output %24
+         %26 = OpVariable %25 Output
+         %27 = OpConstant %23 1
+         %28 = OpConstant %23 0
+         %29 = OpConstantComposite %24 %27 %28 %28 %27
+         %31 = OpConstantComposite %24 %28 %28 %28 %28
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %14 = OpAccessChain %13 %11 %12
+         %15 = OpLoad %6 %14
+         %16 = OpBitwiseAnd %6 %8 %15
+         %17 = OpSDiv %6 %7 %16
+         %20 = OpIEqual %19 %17 %18
+               OpSelectionMerge %22 None
+               OpBranchConditional %20 %21 %30
+         %21 = OpLabel
+               OpStore %26 %29
+               OpBranch %22
+         %30 = OpLabel
+               OpStore %26 %31
+               OpBranch %22
+         %22 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# three
+BUFFER variant_three DATA_TYPE int32 DATA
+ 3
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_three AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-replace-copy-object.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-replace-copy-object.amber
new file mode 100644
index 0000000..8ff1d1e
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-replace-copy-object.amber
@@ -0,0 +1,276 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific shader simplification path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision lowp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int one;
+# };
+#
+# struct S
+# {
+#     int data;
+# };
+#
+# int func(inout S s, int x)
+# {
+#     if (s.data == 1)
+#         return x + s.data;
+#     else
+#         return x;
+# }
+#
+# void main()
+# {
+#     int a = 0;
+#     S arr[1];
+#
+#     arr[0].data = one;
+#
+#     for(int i = 0; i < 5 + one; i++)
+#     {
+#         if (i % 2 != 0)
+#             a = func(arr[0], i);
+#         else
+#             a = func(arr[0], 1);
+#     }
+#
+#     if (a == 6)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 95
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %89
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %7 "S"
+               OpMemberName %7 0 "data"
+               OpName %13 "func(struct-S-i11;i1;"
+               OpName %11 "s"
+               OpName %12 "x"
+               OpName %32 "a"
+               OpName %37 "arr"
+               OpName %38 "buf0"
+               OpMemberName %38 0 "one"
+               OpName %40 ""
+               OpName %45 "i"
+               OpName %63 "param"
+               OpName %66 "param"
+               OpName %72 "param"
+               OpName %75 "param"
+               OpName %89 "_GLF_color"
+               OpMemberDecorate %7 0 RelaxedPrecision
+               OpDecorate %13 RelaxedPrecision
+               OpDecorate %12 RelaxedPrecision
+               OpDecorate %17 RelaxedPrecision
+               OpDecorate %23 RelaxedPrecision
+               OpDecorate %25 RelaxedPrecision
+               OpDecorate %26 RelaxedPrecision
+               OpDecorate %29 RelaxedPrecision
+               OpDecorate %32 RelaxedPrecision
+               OpMemberDecorate %38 0 RelaxedPrecision
+               OpMemberDecorate %38 0 Offset 0
+               OpDecorate %38 Block
+               OpDecorate %40 DescriptorSet 0
+               OpDecorate %40 Binding 0
+               OpDecorate %43 RelaxedPrecision
+               OpDecorate %45 RelaxedPrecision
+               OpDecorate %51 RelaxedPrecision
+               OpDecorate %54 RelaxedPrecision
+               OpDecorate %55 RelaxedPrecision
+               OpDecorate %57 RelaxedPrecision
+               OpDecorate %59 RelaxedPrecision
+               OpDecorate %67 RelaxedPrecision
+               OpDecorate %68 RelaxedPrecision
+               OpDecorate %76 RelaxedPrecision
+               OpDecorate %79 RelaxedPrecision
+               OpDecorate %80 RelaxedPrecision
+               OpDecorate %81 RelaxedPrecision
+               OpDecorate %89 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypeStruct %6
+          %8 = OpTypePointer Function %7
+          %9 = OpTypePointer Function %6
+         %10 = OpTypeFunction %6 %8 %9
+         %15 = OpConstant %6 0
+         %18 = OpConstant %6 1
+         %19 = OpTypeBool
+         %33 = OpTypeInt 32 0
+         %34 = OpConstant %33 1
+         %35 = OpTypeArray %7 %34
+         %36 = OpTypePointer Function %35
+         %38 = OpTypeStruct %6
+         %39 = OpTypePointer Uniform %38
+         %40 = OpVariable %39 Uniform
+         %41 = OpTypePointer Uniform %6
+         %52 = OpConstant %6 5
+         %58 = OpConstant %6 2
+         %82 = OpConstant %6 6
+         %86 = OpTypeFloat 32
+         %87 = OpTypeVector %86 4
+         %88 = OpTypePointer Output %87
+         %89 = OpVariable %88 Output
+         %90 = OpConstant %86 1
+         %91 = OpConstant %86 0
+         %92 = OpConstantComposite %87 %90 %91 %91 %90
+         %94 = OpConstantComposite %87 %91 %91 %91 %91
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %32 = OpVariable %9 Function
+         %37 = OpVariable %36 Function
+         %45 = OpVariable %9 Function
+         %63 = OpVariable %8 Function
+         %66 = OpVariable %9 Function
+         %72 = OpVariable %8 Function
+         %75 = OpVariable %9 Function
+               OpStore %32 %15
+         %42 = OpAccessChain %41 %40 %15
+         %43 = OpLoad %6 %42
+         %44 = OpAccessChain %9 %37 %15 %15
+               OpStore %44 %43
+               OpStore %45 %15
+               OpBranch %46
+         %46 = OpLabel
+               OpLoopMerge %48 %49 None
+               OpBranch %50
+         %50 = OpLabel
+         %51 = OpLoad %6 %45
+         %53 = OpAccessChain %41 %40 %15
+         %54 = OpLoad %6 %53
+         %55 = OpIAdd %6 %52 %54
+         %56 = OpSLessThan %19 %51 %55
+               OpBranchConditional %56 %47 %48
+         %47 = OpLabel
+         %57 = OpLoad %6 %45
+         %59 = OpSMod %6 %57 %58
+         %60 = OpINotEqual %19 %59 %15
+               OpSelectionMerge %62 None
+               OpBranchConditional %60 %61 %71
+         %61 = OpLabel
+         %64 = OpAccessChain %8 %37 %15
+         %65 = OpLoad %7 %64
+               OpStore %63 %65
+         %67 = OpLoad %6 %45
+               OpStore %66 %67
+         %68 = OpFunctionCall %6 %13 %63 %66
+         %69 = OpLoad %7 %63
+         %70 = OpAccessChain %8 %37 %15
+               OpStore %70 %69
+               OpStore %32 %68
+               OpBranch %62
+         %71 = OpLabel
+         %73 = OpAccessChain %8 %37 %15
+         %74 = OpLoad %7 %73
+               OpStore %72 %74
+               OpStore %75 %18
+         %76 = OpFunctionCall %6 %13 %72 %75
+         %77 = OpLoad %7 %72
+         %78 = OpAccessChain %8 %37 %15
+               OpStore %78 %77
+               OpStore %32 %76
+               OpBranch %62
+         %62 = OpLabel
+               OpBranch %49
+         %49 = OpLabel
+         %79 = OpLoad %6 %45
+         %80 = OpIAdd %6 %79 %18
+               OpStore %45 %80
+               OpBranch %46
+         %48 = OpLabel
+         %81 = OpLoad %6 %32
+         %83 = OpIEqual %19 %81 %82
+               OpSelectionMerge %85 None
+               OpBranchConditional %83 %84 %93
+         %84 = OpLabel
+               OpStore %89 %92
+               OpBranch %85
+         %93 = OpLabel
+               OpStore %89 %94
+               OpBranch %85
+         %85 = OpLabel
+               OpReturn
+               OpFunctionEnd
+         %13 = OpFunction %6 None %10
+         %11 = OpFunctionParameter %8
+         %12 = OpFunctionParameter %9
+         %14 = OpLabel
+         %16 = OpAccessChain %9 %11 %15
+         %17 = OpLoad %6 %16
+         %20 = OpIEqual %19 %17 %18
+               OpSelectionMerge %22 None
+               OpBranchConditional %20 %21 %28
+         %21 = OpLabel
+         %23 = OpLoad %6 %12
+         %24 = OpAccessChain %9 %11 %15
+         %25 = OpLoad %6 %24
+         %26 = OpIAdd %6 %23 %25
+               OpReturnValue %26
+         %28 = OpLabel
+         %29 = OpLoad %6 %12
+               OpReturnValue %29
+         %22 = OpLabel
+               OpUnreachable
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE int32 DATA
+ 1
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-scaled-number-nested-loops.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-scaled-number-nested-loops.amber
new file mode 100644
index 0000000..09a1e5d
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-scaled-number-nested-loops.amber
@@ -0,0 +1,381 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific scaled number code path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int one;
+# };
+#
+# void main()
+# {
+#     int a = 0;
+#
+#     for(int i0 = 0; i0 < one; i0++)
+#         for( int i1 = 0; i1 < one; i1++)
+#             for(int i2 = 0; i2 < one; i2++)
+#                 // While other loops iterate only once, this one
+#                 // does three iterations.
+#                 for(int i3 = 0; i3 < one + 2; i3++)
+#                     for(int i4 = 0; i4 < one; i4++)
+#                         for(int i5 = 0; i5 < one; i5++)
+#                         {
+#                             // Always true, but will break at the end of the loop.
+#                             while(one > 0)
+#                             {
+#                                 for( int i6 = 0; i6 < one; i6++)
+#                                     for( int i7 = 0; i7 < one; i7++)
+#                                         for( int i8 = 0; i8 < one; i8++)
+#                                             for( int i9 = 0; i9 < one; i9++)
+#                                                 a++;
+#
+#                                 break;
+#                             }
+#                         }
+#
+#     if (a == 3)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 163
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %157
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "a"
+               OpName %10 "i0"
+               OpName %17 "buf0"
+               OpMemberName %17 0 "one"
+               OpName %19 ""
+               OpName %25 "i1"
+               OpName %35 "i2"
+               OpName %45 "i3"
+               OpName %57 "i4"
+               OpName %67 "i5"
+               OpName %85 "i6"
+               OpName %95 "i7"
+               OpName %105 "i8"
+               OpName %115 "i9"
+               OpName %157 "_GLF_color"
+               OpMemberDecorate %17 0 Offset 0
+               OpDecorate %17 Block
+               OpDecorate %19 DescriptorSet 0
+               OpDecorate %19 Binding 0
+               OpDecorate %157 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %9 = OpConstant %6 0
+         %17 = OpTypeStruct %6
+         %18 = OpTypePointer Uniform %17
+         %19 = OpVariable %18 Uniform
+         %20 = OpTypePointer Uniform %6
+         %23 = OpTypeBool
+         %54 = OpConstant %6 2
+        %126 = OpConstant %6 1
+        %150 = OpConstant %6 3
+        %154 = OpTypeFloat 32
+        %155 = OpTypeVector %154 4
+        %156 = OpTypePointer Output %155
+        %157 = OpVariable %156 Output
+        %158 = OpConstant %154 1
+        %159 = OpConstant %154 0
+        %160 = OpConstantComposite %155 %158 %159 %159 %158
+        %162 = OpConstantComposite %155 %159 %159 %159 %159
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %10 = OpVariable %7 Function
+         %25 = OpVariable %7 Function
+         %35 = OpVariable %7 Function
+         %45 = OpVariable %7 Function
+         %57 = OpVariable %7 Function
+         %67 = OpVariable %7 Function
+         %85 = OpVariable %7 Function
+         %95 = OpVariable %7 Function
+        %105 = OpVariable %7 Function
+        %115 = OpVariable %7 Function
+               OpStore %8 %9
+               OpStore %10 %9
+               OpBranch %11
+         %11 = OpLabel
+               OpLoopMerge %13 %14 None
+               OpBranch %15
+         %15 = OpLabel
+         %16 = OpLoad %6 %10
+         %21 = OpAccessChain %20 %19 %9
+         %22 = OpLoad %6 %21
+         %24 = OpSLessThan %23 %16 %22
+               OpBranchConditional %24 %12 %13
+         %12 = OpLabel
+               OpStore %25 %9
+               OpBranch %26
+         %26 = OpLabel
+               OpLoopMerge %28 %29 None
+               OpBranch %30
+         %30 = OpLabel
+         %31 = OpLoad %6 %25
+         %32 = OpAccessChain %20 %19 %9
+         %33 = OpLoad %6 %32
+         %34 = OpSLessThan %23 %31 %33
+               OpBranchConditional %34 %27 %28
+         %27 = OpLabel
+               OpStore %35 %9
+               OpBranch %36
+         %36 = OpLabel
+               OpLoopMerge %38 %39 None
+               OpBranch %40
+         %40 = OpLabel
+         %41 = OpLoad %6 %35
+         %42 = OpAccessChain %20 %19 %9
+         %43 = OpLoad %6 %42
+         %44 = OpSLessThan %23 %41 %43
+               OpBranchConditional %44 %37 %38
+         %37 = OpLabel
+               OpStore %45 %9
+               OpBranch %46
+         %46 = OpLabel
+               OpLoopMerge %48 %49 None
+               OpBranch %50
+         %50 = OpLabel
+         %51 = OpLoad %6 %45
+         %52 = OpAccessChain %20 %19 %9
+         %53 = OpLoad %6 %52
+         %55 = OpIAdd %6 %53 %54
+         %56 = OpSLessThan %23 %51 %55
+               OpBranchConditional %56 %47 %48
+         %47 = OpLabel
+               OpStore %57 %9
+               OpBranch %58
+         %58 = OpLabel
+               OpLoopMerge %60 %61 None
+               OpBranch %62
+         %62 = OpLabel
+         %63 = OpLoad %6 %57
+         %64 = OpAccessChain %20 %19 %9
+         %65 = OpLoad %6 %64
+         %66 = OpSLessThan %23 %63 %65
+               OpBranchConditional %66 %59 %60
+         %59 = OpLabel
+               OpStore %67 %9
+               OpBranch %68
+         %68 = OpLabel
+               OpLoopMerge %70 %71 None
+               OpBranch %72
+         %72 = OpLabel
+         %73 = OpLoad %6 %67
+         %74 = OpAccessChain %20 %19 %9
+         %75 = OpLoad %6 %74
+         %76 = OpSLessThan %23 %73 %75
+               OpBranchConditional %76 %69 %70
+         %69 = OpLabel
+               OpBranch %77
+         %77 = OpLabel
+               OpLoopMerge %79 %80 None
+               OpBranch %81
+         %81 = OpLabel
+         %82 = OpAccessChain %20 %19 %9
+         %83 = OpLoad %6 %82
+         %84 = OpSGreaterThan %23 %83 %9
+               OpBranchConditional %84 %78 %79
+         %78 = OpLabel
+               OpStore %85 %9
+               OpBranch %86
+         %86 = OpLabel
+               OpLoopMerge %88 %89 None
+               OpBranch %90
+         %90 = OpLabel
+         %91 = OpLoad %6 %85
+         %92 = OpAccessChain %20 %19 %9
+         %93 = OpLoad %6 %92
+         %94 = OpSLessThan %23 %91 %93
+               OpBranchConditional %94 %87 %88
+         %87 = OpLabel
+               OpStore %95 %9
+               OpBranch %96
+         %96 = OpLabel
+               OpLoopMerge %98 %99 None
+               OpBranch %100
+        %100 = OpLabel
+        %101 = OpLoad %6 %95
+        %102 = OpAccessChain %20 %19 %9
+        %103 = OpLoad %6 %102
+        %104 = OpSLessThan %23 %101 %103
+               OpBranchConditional %104 %97 %98
+         %97 = OpLabel
+               OpStore %105 %9
+               OpBranch %106
+        %106 = OpLabel
+               OpLoopMerge %108 %109 None
+               OpBranch %110
+        %110 = OpLabel
+        %111 = OpLoad %6 %105
+        %112 = OpAccessChain %20 %19 %9
+        %113 = OpLoad %6 %112
+        %114 = OpSLessThan %23 %111 %113
+               OpBranchConditional %114 %107 %108
+        %107 = OpLabel
+               OpStore %115 %9
+               OpBranch %116
+        %116 = OpLabel
+               OpLoopMerge %118 %119 None
+               OpBranch %120
+        %120 = OpLabel
+        %121 = OpLoad %6 %115
+        %122 = OpAccessChain %20 %19 %9
+        %123 = OpLoad %6 %122
+        %124 = OpSLessThan %23 %121 %123
+               OpBranchConditional %124 %117 %118
+        %117 = OpLabel
+        %125 = OpLoad %6 %8
+        %127 = OpIAdd %6 %125 %126
+               OpStore %8 %127
+               OpBranch %119
+        %119 = OpLabel
+        %128 = OpLoad %6 %115
+        %129 = OpIAdd %6 %128 %126
+               OpStore %115 %129
+               OpBranch %116
+        %118 = OpLabel
+               OpBranch %109
+        %109 = OpLabel
+        %130 = OpLoad %6 %105
+        %131 = OpIAdd %6 %130 %126
+               OpStore %105 %131
+               OpBranch %106
+        %108 = OpLabel
+               OpBranch %99
+         %99 = OpLabel
+        %132 = OpLoad %6 %95
+        %133 = OpIAdd %6 %132 %126
+               OpStore %95 %133
+               OpBranch %96
+         %98 = OpLabel
+               OpBranch %89
+         %89 = OpLabel
+        %134 = OpLoad %6 %85
+        %135 = OpIAdd %6 %134 %126
+               OpStore %85 %135
+               OpBranch %86
+         %88 = OpLabel
+               OpBranch %79
+         %80 = OpLabel
+               OpBranch %77
+         %79 = OpLabel
+               OpBranch %71
+         %71 = OpLabel
+        %137 = OpLoad %6 %67
+        %138 = OpIAdd %6 %137 %126
+               OpStore %67 %138
+               OpBranch %68
+         %70 = OpLabel
+               OpBranch %61
+         %61 = OpLabel
+        %139 = OpLoad %6 %57
+        %140 = OpIAdd %6 %139 %126
+               OpStore %57 %140
+               OpBranch %58
+         %60 = OpLabel
+               OpBranch %49
+         %49 = OpLabel
+        %141 = OpLoad %6 %45
+        %142 = OpIAdd %6 %141 %126
+               OpStore %45 %142
+               OpBranch %46
+         %48 = OpLabel
+               OpBranch %39
+         %39 = OpLabel
+        %143 = OpLoad %6 %35
+        %144 = OpIAdd %6 %143 %126
+               OpStore %35 %144
+               OpBranch %36
+         %38 = OpLabel
+               OpBranch %29
+         %29 = OpLabel
+        %145 = OpLoad %6 %25
+        %146 = OpIAdd %6 %145 %126
+               OpStore %25 %146
+               OpBranch %26
+         %28 = OpLabel
+               OpBranch %14
+         %14 = OpLabel
+        %147 = OpLoad %6 %10
+        %148 = OpIAdd %6 %147 %126
+               OpStore %10 %148
+               OpBranch %11
+         %13 = OpLabel
+        %149 = OpLoad %6 %8
+        %151 = OpIEqual %23 %149 %150
+               OpSelectionMerge %153 None
+               OpBranchConditional %151 %152 %161
+        %152 = OpLabel
+               OpStore %157 %160
+               OpBranch %153
+        %161 = OpLabel
+               OpStore %157 %162
+               OpBranch %153
+        %153 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE int32 DATA
+ 1
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-selection-dag-same-cond-twice.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-selection-dag-same-cond-twice.amber
new file mode 100644
index 0000000..f77fc35
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-selection-dag-same-cond-twice.amber
@@ -0,0 +1,140 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific selection DAG code path
+
+# The test passes because the shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float one;
+# };
+#
+# void main()
+# {
+#     _GLF_color = vec4(0);
+#
+#     // Always false.
+#     if(one < 0.0 && one < 0.0)
+#     {
+#         _GLF_color = vec4(1);
+#     }
+#     else
+#     {
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     }
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 34
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %9
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "_GLF_color"
+               OpName %13 "buf0"
+               OpMemberName %13 0 "one"
+               OpName %15 ""
+               OpDecorate %9 Location 0
+               OpMemberDecorate %13 0 Offset 0
+               OpDecorate %13 Block
+               OpDecorate %15 DescriptorSet 0
+               OpDecorate %15 Binding 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 4
+          %8 = OpTypePointer Output %7
+          %9 = OpVariable %8 Output
+         %10 = OpConstant %6 0
+         %11 = OpConstantComposite %7 %10 %10 %10 %10
+         %12 = OpTypeBool
+         %13 = OpTypeStruct %6
+         %14 = OpTypePointer Uniform %13
+         %15 = OpVariable %14 Uniform
+         %16 = OpTypeInt 32 1
+         %17 = OpConstant %16 0
+         %18 = OpTypePointer Uniform %6
+         %30 = OpConstant %6 1
+         %31 = OpConstantComposite %7 %30 %30 %30 %30
+         %33 = OpConstantComposite %7 %30 %10 %10 %30
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+               OpStore %9 %11
+         %19 = OpAccessChain %18 %15 %17
+         %20 = OpLoad %6 %19
+         %21 = OpFOrdLessThan %12 %20 %10
+               OpSelectionMerge %23 None
+               OpBranchConditional %21 %22 %23
+         %22 = OpLabel
+         %24 = OpAccessChain %18 %15 %17
+         %25 = OpLoad %6 %24
+         %26 = OpFOrdLessThan %12 %25 %10
+               OpBranch %23
+         %23 = OpLabel
+         %27 = OpPhi %12 %21 %5 %26 %22
+               OpSelectionMerge %29 None
+               OpBranchConditional %27 %28 %32
+         %28 = OpLabel
+               OpStore %9 %31
+               OpBranch %29
+         %32 = OpLabel
+               OpStore %9 %33
+               OpBranch %29
+         %29 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE float DATA
+ 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-set-vector-cos-fragcoord.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-set-vector-cos-fragcoord.amber
new file mode 100644
index 0000000..8903293
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-set-vector-cos-fragcoord.amber
@@ -0,0 +1,273 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific set vector code path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float one;
+# };
+#
+# void main()
+# {
+#     vec2 a = vec2(1);
+#     vec3 b = vec3(0);
+#
+#     if(int(gl_FragCoord.y) < 40)
+#     {
+#         b = vec3(0.1);
+#     }
+#     else if(int(gl_FragCoord.y) < 60)
+#     {
+#         b = vec3(0.2);
+#     }
+#     else if(gl_FragCoord.y < 80.0)
+#     {
+#         b = cos(a.x + vec3(one)) + 0.01;
+#     }
+#     else if(int(gl_FragCoord.y) < 100)
+#     {
+#         b = cos(vec3(one));
+#     }
+#     else if(int(gl_FragCoord.y) < 500)
+#     {
+#         b = cos(vec3(1.0, 1.0, 22.0));
+#     }
+#
+#     // Always true.
+#     if (b.x < 1.02 && b.y < 1.02 && b.z < 1.02)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 116
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %19 %112
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "a"
+               OpName %14 "b"
+               OpName %19 "gl_FragCoord"
+               OpName %55 "buf0"
+               OpMemberName %55 0 "one"
+               OpName %57 ""
+               OpName %112 "_GLF_color"
+               OpDecorate %19 BuiltIn FragCoord
+               OpMemberDecorate %55 0 Offset 0
+               OpDecorate %55 Block
+               OpDecorate %57 DescriptorSet 0
+               OpDecorate %57 Binding 0
+               OpDecorate %112 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 2
+          %8 = OpTypePointer Function %7
+         %10 = OpConstant %6 1
+         %11 = OpConstantComposite %7 %10 %10
+         %12 = OpTypeVector %6 3
+         %13 = OpTypePointer Function %12
+         %15 = OpConstant %6 0
+         %16 = OpConstantComposite %12 %15 %15 %15
+         %17 = OpTypeVector %6 4
+         %18 = OpTypePointer Input %17
+         %19 = OpVariable %18 Input
+         %20 = OpTypeInt 32 0
+         %21 = OpConstant %20 1
+         %22 = OpTypePointer Input %6
+         %25 = OpTypeInt 32 1
+         %27 = OpConstant %25 40
+         %28 = OpTypeBool
+         %32 = OpConstant %6 0.100000001
+         %33 = OpConstantComposite %12 %32 %32 %32
+         %38 = OpConstant %25 60
+         %42 = OpConstant %6 0.200000003
+         %43 = OpConstantComposite %12 %42 %42 %42
+         %47 = OpConstant %6 80
+         %51 = OpConstant %20 0
+         %52 = OpTypePointer Function %6
+         %55 = OpTypeStruct %6
+         %56 = OpTypePointer Uniform %55
+         %57 = OpVariable %56 Uniform
+         %58 = OpConstant %25 0
+         %59 = OpTypePointer Uniform %6
+         %66 = OpConstant %6 0.00999999978
+         %73 = OpConstant %25 100
+         %85 = OpConstant %25 500
+         %89 = OpConstant %6 0.540302277
+         %90 = OpConstant %6 -0.99996084
+         %91 = OpConstantComposite %12 %89 %89 %90
+         %94 = OpConstant %6 1.01999998
+        %104 = OpConstant %20 2
+        %111 = OpTypePointer Output %17
+        %112 = OpVariable %111 Output
+        %113 = OpConstantComposite %17 %10 %15 %15 %10
+        %115 = OpConstantComposite %17 %15 %15 %15 %15
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %9 = OpVariable %8 Function
+         %14 = OpVariable %13 Function
+               OpStore %9 %11
+               OpStore %14 %16
+         %23 = OpAccessChain %22 %19 %21
+         %24 = OpLoad %6 %23
+         %26 = OpConvertFToS %25 %24
+         %29 = OpSLessThan %28 %26 %27
+               OpSelectionMerge %31 None
+               OpBranchConditional %29 %30 %34
+         %30 = OpLabel
+               OpStore %14 %33
+               OpBranch %31
+         %34 = OpLabel
+         %35 = OpAccessChain %22 %19 %21
+         %36 = OpLoad %6 %35
+         %37 = OpConvertFToS %25 %36
+         %39 = OpSLessThan %28 %37 %38
+               OpSelectionMerge %41 None
+               OpBranchConditional %39 %40 %44
+         %40 = OpLabel
+               OpStore %14 %43
+               OpBranch %41
+         %44 = OpLabel
+         %45 = OpAccessChain %22 %19 %21
+         %46 = OpLoad %6 %45
+         %48 = OpFOrdLessThan %28 %46 %47
+               OpSelectionMerge %50 None
+               OpBranchConditional %48 %49 %69
+         %49 = OpLabel
+         %53 = OpAccessChain %52 %9 %51
+         %54 = OpLoad %6 %53
+         %60 = OpAccessChain %59 %57 %58
+         %61 = OpLoad %6 %60
+         %62 = OpCompositeConstruct %12 %61 %61 %61
+         %63 = OpCompositeConstruct %12 %54 %54 %54
+         %64 = OpFAdd %12 %63 %62
+         %65 = OpExtInst %12 %1 Cos %64
+         %67 = OpCompositeConstruct %12 %66 %66 %66
+         %68 = OpFAdd %12 %65 %67
+               OpStore %14 %68
+               OpBranch %50
+         %69 = OpLabel
+         %70 = OpAccessChain %22 %19 %21
+         %71 = OpLoad %6 %70
+         %72 = OpConvertFToS %25 %71
+         %74 = OpSLessThan %28 %72 %73
+               OpSelectionMerge %76 None
+               OpBranchConditional %74 %75 %81
+         %75 = OpLabel
+         %77 = OpAccessChain %59 %57 %58
+         %78 = OpLoad %6 %77
+         %79 = OpCompositeConstruct %12 %78 %78 %78
+         %80 = OpExtInst %12 %1 Cos %79
+               OpStore %14 %80
+               OpBranch %76
+         %81 = OpLabel
+         %82 = OpAccessChain %22 %19 %21
+         %83 = OpLoad %6 %82
+         %84 = OpConvertFToS %25 %83
+         %86 = OpSLessThan %28 %84 %85
+               OpSelectionMerge %88 None
+               OpBranchConditional %86 %87 %88
+         %87 = OpLabel
+               OpStore %14 %91
+               OpBranch %88
+         %88 = OpLabel
+               OpBranch %76
+         %76 = OpLabel
+               OpBranch %50
+         %50 = OpLabel
+               OpBranch %41
+         %41 = OpLabel
+               OpBranch %31
+         %31 = OpLabel
+         %92 = OpAccessChain %52 %14 %51
+         %93 = OpLoad %6 %92
+         %95 = OpFOrdLessThan %28 %93 %94
+               OpSelectionMerge %97 None
+               OpBranchConditional %95 %96 %97
+         %96 = OpLabel
+         %98 = OpAccessChain %52 %14 %21
+         %99 = OpLoad %6 %98
+        %100 = OpFOrdLessThan %28 %99 %94
+               OpBranch %97
+         %97 = OpLabel
+        %101 = OpPhi %28 %95 %31 %100 %96
+               OpSelectionMerge %103 None
+               OpBranchConditional %101 %102 %103
+        %102 = OpLabel
+        %105 = OpAccessChain %52 %14 %104
+        %106 = OpLoad %6 %105
+        %107 = OpFOrdLessThan %28 %106 %94
+               OpBranch %103
+        %103 = OpLabel
+        %108 = OpPhi %28 %101 %97 %107 %102
+               OpSelectionMerge %110 None
+               OpBranchConditional %108 %109 %114
+        %109 = OpLabel
+               OpStore %112 %113
+               OpBranch %110
+        %114 = OpLabel
+               OpStore %112 %115
+               OpBranch %110
+        %110 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE float DATA
+ 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplification-unused-struct.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplification-unused-struct.amber
new file mode 100644
index 0000000..fd13d0a
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplification-unused-struct.amber
@@ -0,0 +1,283 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific shader simplification path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision lowp int;
+#
+# struct S
+# {
+#     int arr[2];
+# };
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int one;
+# };
+#
+# int func(S s, int x)
+# {
+#     s.arr[1] = x + 1;
+#
+#     // Always false.
+#     if(s.arr[one] == x)
+#         return -1;
+#
+#     return x;
+# }
+#
+# void main()
+# {
+#     S s;
+#     int a = 0;
+#
+#     for(int i = 0; i < 2 + one; i++)
+#     {
+#         for( int j = 0; j < 3 + one; j++)
+#         {
+#             // a is incremented with the following values:
+#             // (0 + 1 + 2 + 3) + (1 + 2 + 3 + 4) + (2 + 3 + 4 + 5)
+#             a += func(s, i + j);
+#         }
+#     }
+#
+#     // Always true.
+#     if (a == 30)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 94
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %88
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %10 "S"
+               OpMemberName %10 0 "arr"
+               OpName %16 "func(struct-S-i1[2]1;i1;"
+               OpName %14 "s"
+               OpName %15 "x"
+               OpName %23 "buf0"
+               OpMemberName %23 0 "one"
+               OpName %25 ""
+               OpName %41 "a"
+               OpName %42 "i"
+               OpName %54 "j"
+               OpName %66 "s"
+               OpName %70 "param"
+               OpName %72 "param"
+               OpName %88 "_GLF_color"
+               OpMemberDecorate %10 0 RelaxedPrecision
+               OpDecorate %16 RelaxedPrecision
+               OpDecorate %15 RelaxedPrecision
+               OpDecorate %20 RelaxedPrecision
+               OpDecorate %21 RelaxedPrecision
+               OpMemberDecorate %23 0 RelaxedPrecision
+               OpMemberDecorate %23 0 Offset 0
+               OpDecorate %23 Block
+               OpDecorate %25 DescriptorSet 0
+               OpDecorate %25 Binding 0
+               OpDecorate %28 RelaxedPrecision
+               OpDecorate %30 RelaxedPrecision
+               OpDecorate %31 RelaxedPrecision
+               OpDecorate %38 RelaxedPrecision
+               OpDecorate %41 RelaxedPrecision
+               OpDecorate %42 RelaxedPrecision
+               OpDecorate %48 RelaxedPrecision
+               OpDecorate %51 RelaxedPrecision
+               OpDecorate %52 RelaxedPrecision
+               OpDecorate %54 RelaxedPrecision
+               OpDecorate %60 RelaxedPrecision
+               OpDecorate %63 RelaxedPrecision
+               OpDecorate %64 RelaxedPrecision
+               OpDecorate %67 RelaxedPrecision
+               OpDecorate %68 RelaxedPrecision
+               OpDecorate %69 RelaxedPrecision
+               OpDecorate %73 RelaxedPrecision
+               OpDecorate %74 RelaxedPrecision
+               OpDecorate %75 RelaxedPrecision
+               OpDecorate %76 RelaxedPrecision
+               OpDecorate %77 RelaxedPrecision
+               OpDecorate %78 RelaxedPrecision
+               OpDecorate %79 RelaxedPrecision
+               OpDecorate %80 RelaxedPrecision
+               OpDecorate %88 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypeInt 32 0
+          %8 = OpConstant %7 2
+          %9 = OpTypeArray %6 %8
+         %10 = OpTypeStruct %9
+         %11 = OpTypePointer Function %10
+         %12 = OpTypePointer Function %6
+         %13 = OpTypeFunction %6 %11 %12
+         %18 = OpConstant %6 0
+         %19 = OpConstant %6 1
+         %23 = OpTypeStruct %6
+         %24 = OpTypePointer Uniform %23
+         %25 = OpVariable %24 Uniform
+         %26 = OpTypePointer Uniform %6
+         %32 = OpTypeBool
+         %36 = OpConstant %6 -1
+         %49 = OpConstant %6 2
+         %61 = OpConstant %6 3
+         %81 = OpConstant %6 30
+         %85 = OpTypeFloat 32
+         %86 = OpTypeVector %85 4
+         %87 = OpTypePointer Output %86
+         %88 = OpVariable %87 Output
+         %89 = OpConstant %85 1
+         %90 = OpConstant %85 0
+         %91 = OpConstantComposite %86 %89 %90 %90 %89
+         %93 = OpConstantComposite %86 %90 %90 %90 %90
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %41 = OpVariable %12 Function
+         %42 = OpVariable %12 Function
+         %54 = OpVariable %12 Function
+         %66 = OpVariable %11 Function
+         %70 = OpVariable %11 Function
+         %72 = OpVariable %12 Function
+               OpStore %41 %18
+               OpStore %42 %18
+               OpBranch %43
+         %43 = OpLabel
+               OpLoopMerge %45 %46 None
+               OpBranch %47
+         %47 = OpLabel
+         %48 = OpLoad %6 %42
+         %50 = OpAccessChain %26 %25 %18
+         %51 = OpLoad %6 %50
+         %52 = OpIAdd %6 %49 %51
+         %53 = OpSLessThan %32 %48 %52
+               OpBranchConditional %53 %44 %45
+         %44 = OpLabel
+               OpStore %54 %18
+               OpBranch %55
+         %55 = OpLabel
+               OpLoopMerge %57 %58 None
+               OpBranch %59
+         %59 = OpLabel
+         %60 = OpLoad %6 %54
+         %62 = OpAccessChain %26 %25 %18
+         %63 = OpLoad %6 %62
+         %64 = OpIAdd %6 %61 %63
+         %65 = OpSLessThan %32 %60 %64
+               OpBranchConditional %65 %56 %57
+         %56 = OpLabel
+         %67 = OpLoad %6 %42
+         %68 = OpLoad %6 %54
+         %69 = OpIAdd %6 %67 %68
+         %71 = OpLoad %10 %66
+               OpStore %70 %71
+               OpStore %72 %69
+         %73 = OpFunctionCall %6 %16 %70 %72
+         %74 = OpLoad %6 %41
+         %75 = OpIAdd %6 %74 %73
+               OpStore %41 %75
+               OpBranch %58
+         %58 = OpLabel
+         %76 = OpLoad %6 %54
+         %77 = OpIAdd %6 %76 %19
+               OpStore %54 %77
+               OpBranch %55
+         %57 = OpLabel
+               OpBranch %46
+         %46 = OpLabel
+         %78 = OpLoad %6 %42
+         %79 = OpIAdd %6 %78 %19
+               OpStore %42 %79
+               OpBranch %43
+         %45 = OpLabel
+         %80 = OpLoad %6 %41
+         %82 = OpIEqual %32 %80 %81
+               OpSelectionMerge %84 None
+               OpBranchConditional %82 %83 %92
+         %83 = OpLabel
+               OpStore %88 %91
+               OpBranch %84
+         %92 = OpLabel
+               OpStore %88 %93
+               OpBranch %84
+         %84 = OpLabel
+               OpReturn
+               OpFunctionEnd
+         %16 = OpFunction %6 None %13
+         %14 = OpFunctionParameter %11
+         %15 = OpFunctionParameter %12
+         %17 = OpLabel
+         %20 = OpLoad %6 %15
+         %21 = OpIAdd %6 %20 %19
+         %22 = OpAccessChain %12 %14 %18 %19
+               OpStore %22 %21
+         %27 = OpAccessChain %26 %25 %18
+         %28 = OpLoad %6 %27
+         %29 = OpAccessChain %12 %14 %18 %28
+         %30 = OpLoad %6 %29
+         %31 = OpLoad %6 %15
+         %33 = OpIEqual %32 %30 %31
+               OpSelectionMerge %35 None
+               OpBranchConditional %33 %34 %35
+         %34 = OpLabel
+               OpReturnValue %36
+         %35 = OpLabel
+         %38 = OpLoad %6 %15
+               OpReturnValue %38
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE int32 DATA
+ 1
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplify-clamp-max-itself.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplify-clamp-max-itself.amber
new file mode 100644
index 0000000..9a4cbb7
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplify-clamp-max-itself.amber
@@ -0,0 +1,207 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction simplification code path
+
+# The test passes because the shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     // (0, 1, 2, 3)
+#     ivec4 sequence;
+# };
+#
+# void main()
+# {
+#     ivec4 a = ivec4(0);
+#
+#     // Sets a = (0, 5, 2, 3)
+#     for(int i = 0; i < sequence.w + 1; i++)
+#     {
+#         if(sequence[clamp(i, sequence.x, i)] == 1)
+#             a[i] = 5;
+#         else
+#             a[i] = i;
+#     }
+#
+#     int sum = a.x + a.y + a.z + a.w;
+#     if (sum == 10)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 80
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %74
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "a"
+               OpName %13 "i"
+               OpName %20 "buf0"
+               OpMemberName %20 0 "sequence"
+               OpName %22 ""
+               OpName %52 "sum"
+               OpName %74 "_GLF_color"
+               OpMemberDecorate %20 0 Offset 0
+               OpDecorate %20 Block
+               OpDecorate %22 DescriptorSet 0
+               OpDecorate %22 Binding 0
+               OpDecorate %74 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypeVector %6 4
+          %8 = OpTypePointer Function %7
+         %10 = OpConstant %6 0
+         %11 = OpConstantComposite %7 %10 %10 %10 %10
+         %12 = OpTypePointer Function %6
+         %20 = OpTypeStruct %7
+         %21 = OpTypePointer Uniform %20
+         %22 = OpVariable %21 Uniform
+         %23 = OpTypeInt 32 0
+         %24 = OpConstant %23 3
+         %25 = OpTypePointer Uniform %6
+         %28 = OpConstant %6 1
+         %30 = OpTypeBool
+         %33 = OpConstant %23 0
+         %44 = OpConstant %6 5
+         %55 = OpConstant %23 1
+         %59 = OpConstant %23 2
+         %67 = OpConstant %6 10
+         %71 = OpTypeFloat 32
+         %72 = OpTypeVector %71 4
+         %73 = OpTypePointer Output %72
+         %74 = OpVariable %73 Output
+         %75 = OpConstant %71 1
+         %76 = OpConstant %71 0
+         %77 = OpConstantComposite %72 %75 %76 %76 %75
+         %79 = OpConstantComposite %72 %76 %76 %76 %76
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %9 = OpVariable %8 Function
+         %13 = OpVariable %12 Function
+         %52 = OpVariable %12 Function
+               OpStore %9 %11
+               OpStore %13 %10
+               OpBranch %14
+         %14 = OpLabel
+               OpLoopMerge %16 %17 None
+               OpBranch %18
+         %18 = OpLabel
+         %19 = OpLoad %6 %13
+         %26 = OpAccessChain %25 %22 %10 %24
+         %27 = OpLoad %6 %26
+         %29 = OpIAdd %6 %27 %28
+         %31 = OpSLessThan %30 %19 %29
+               OpBranchConditional %31 %15 %16
+         %15 = OpLabel
+         %32 = OpLoad %6 %13
+         %34 = OpAccessChain %25 %22 %10 %33
+         %35 = OpLoad %6 %34
+         %36 = OpLoad %6 %13
+         %37 = OpExtInst %6 %1 SClamp %32 %35 %36
+         %38 = OpAccessChain %25 %22 %10 %37
+         %39 = OpLoad %6 %38
+         %40 = OpIEqual %30 %39 %28
+               OpSelectionMerge %42 None
+               OpBranchConditional %40 %41 %46
+         %41 = OpLabel
+         %43 = OpLoad %6 %13
+         %45 = OpAccessChain %12 %9 %43
+               OpStore %45 %44
+               OpBranch %42
+         %46 = OpLabel
+         %47 = OpLoad %6 %13
+         %48 = OpLoad %6 %13
+         %49 = OpAccessChain %12 %9 %47
+               OpStore %49 %48
+               OpBranch %42
+         %42 = OpLabel
+               OpBranch %17
+         %17 = OpLabel
+         %50 = OpLoad %6 %13
+         %51 = OpIAdd %6 %50 %28
+               OpStore %13 %51
+               OpBranch %14
+         %16 = OpLabel
+         %53 = OpAccessChain %12 %9 %33
+         %54 = OpLoad %6 %53
+         %56 = OpAccessChain %12 %9 %55
+         %57 = OpLoad %6 %56
+         %58 = OpIAdd %6 %54 %57
+         %60 = OpAccessChain %12 %9 %59
+         %61 = OpLoad %6 %60
+         %62 = OpIAdd %6 %58 %61
+         %63 = OpAccessChain %12 %9 %24
+         %64 = OpLoad %6 %63
+         %65 = OpIAdd %6 %62 %64
+               OpStore %52 %65
+         %66 = OpLoad %6 %52
+         %68 = OpIEqual %30 %66 %67
+               OpSelectionMerge %70 None
+               OpBranchConditional %68 %69 %78
+         %69 = OpLabel
+               OpStore %74 %77
+               OpBranch %70
+         %78 = OpLabel
+               OpStore %74 %79
+               OpBranch %70
+         %70 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# sequence
+BUFFER variant_sequence DATA_TYPE vec4<int32> DATA
+ 0 1 2 3
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_sequence AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplify-component-uniform-idx.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplify-component-uniform-idx.amber
new file mode 100644
index 0000000..3cdd9df
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplify-component-uniform-idx.amber
@@ -0,0 +1,167 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction simplification code path
+
+# The test passes because the shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int two;
+# };
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     int i = 0;
+#
+#     for(int r = 0; r < two * 4; r += 2)
+#         i += ivec4(1, 2, 3, 4)[r / two];
+#
+#     if (i == 10)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 55
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %49
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "i"
+               OpName %10 "r"
+               OpName %17 "buf0"
+               OpMemberName %17 0 "two"
+               OpName %19 ""
+               OpName %49 "_GLF_color"
+               OpMemberDecorate %17 0 Offset 0
+               OpDecorate %17 Block
+               OpDecorate %19 DescriptorSet 0
+               OpDecorate %19 Binding 0
+               OpDecorate %49 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %9 = OpConstant %6 0
+         %17 = OpTypeStruct %6
+         %18 = OpTypePointer Uniform %17
+         %19 = OpVariable %18 Uniform
+         %20 = OpTypePointer Uniform %6
+         %23 = OpConstant %6 4
+         %25 = OpTypeBool
+         %27 = OpTypeVector %6 4
+         %28 = OpConstant %6 1
+         %29 = OpConstant %6 2
+         %30 = OpConstant %6 3
+         %31 = OpConstantComposite %27 %28 %29 %30 %23
+         %42 = OpConstant %6 10
+         %46 = OpTypeFloat 32
+         %47 = OpTypeVector %46 4
+         %48 = OpTypePointer Output %47
+         %49 = OpVariable %48 Output
+         %50 = OpConstant %46 1
+         %51 = OpConstant %46 0
+         %52 = OpConstantComposite %47 %50 %51 %51 %50
+         %54 = OpConstantComposite %47 %51 %51 %51 %51
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %10 = OpVariable %7 Function
+               OpStore %8 %9
+               OpStore %10 %9
+               OpBranch %11
+         %11 = OpLabel
+               OpLoopMerge %13 %14 None
+               OpBranch %15
+         %15 = OpLabel
+         %16 = OpLoad %6 %10
+         %21 = OpAccessChain %20 %19 %9
+         %22 = OpLoad %6 %21
+         %24 = OpIMul %6 %22 %23
+         %26 = OpSLessThan %25 %16 %24
+               OpBranchConditional %26 %12 %13
+         %12 = OpLabel
+         %32 = OpLoad %6 %10
+         %33 = OpAccessChain %20 %19 %9
+         %34 = OpLoad %6 %33
+         %35 = OpSDiv %6 %32 %34
+         %36 = OpVectorExtractDynamic %6 %31 %35
+         %37 = OpLoad %6 %8
+         %38 = OpIAdd %6 %37 %36
+               OpStore %8 %38
+               OpBranch %14
+         %14 = OpLabel
+         %39 = OpLoad %6 %10
+         %40 = OpIAdd %6 %39 %29
+               OpStore %10 %40
+               OpBranch %11
+         %13 = OpLabel
+         %41 = OpLoad %6 %8
+         %43 = OpIEqual %25 %41 %42
+               OpSelectionMerge %45 None
+               OpBranchConditional %43 %44 %53
+         %44 = OpLabel
+               OpStore %49 %52
+               OpBranch %45
+         %53 = OpLabel
+               OpStore %49 %54
+               OpBranch %45
+         %45 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# two
+BUFFER variant_two DATA_TYPE int32 DATA
+ 2
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_two AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplify-div-by-uint-one.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplify-div-by-uint-one.amber
new file mode 100644
index 0000000..bbb8b56
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplify-div-by-uint-one.amber
@@ -0,0 +1,135 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction simplification code path
+
+# The test passes because the shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     uint two;
+# };
+#
+# void main()
+# {
+#     uint a = two / 1u;
+#
+#     if (a == 2u)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+#
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 34
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %28
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "a"
+               OpName %9 "buf0"
+               OpMemberName %9 0 "two"
+               OpName %11 ""
+               OpName %28 "_GLF_color"
+               OpMemberDecorate %9 0 Offset 0
+               OpDecorate %9 Block
+               OpDecorate %11 DescriptorSet 0
+               OpDecorate %11 Binding 0
+               OpDecorate %28 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 0
+          %7 = OpTypePointer Function %6
+          %9 = OpTypeStruct %6
+         %10 = OpTypePointer Uniform %9
+         %11 = OpVariable %10 Uniform
+         %12 = OpTypeInt 32 1
+         %13 = OpConstant %12 0
+         %14 = OpTypePointer Uniform %6
+         %17 = OpConstant %6 1
+         %20 = OpConstant %6 2
+         %21 = OpTypeBool
+         %25 = OpTypeFloat 32
+         %26 = OpTypeVector %25 4
+         %27 = OpTypePointer Output %26
+         %28 = OpVariable %27 Output
+         %29 = OpConstant %25 1
+         %30 = OpConstant %25 0
+         %31 = OpConstantComposite %26 %29 %30 %30 %29
+         %33 = OpConstantComposite %26 %30 %30 %30 %30
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %15 = OpAccessChain %14 %11 %13
+         %16 = OpLoad %6 %15
+         %18 = OpUDiv %6 %16 %17
+               OpStore %8 %18
+         %19 = OpLoad %6 %8
+         %22 = OpIEqual %21 %19 %20
+               OpSelectionMerge %24 None
+               OpBranchConditional %22 %23 %32
+         %23 = OpLabel
+               OpStore %28 %31
+               OpBranch %24
+         %32 = OpLabel
+               OpStore %28 %33
+               OpBranch %24
+         %24 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# two
+BUFFER variant_two DATA_TYPE uint32 DATA
+ 2
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_two AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplify-ldexp-exponent-zero.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplify-ldexp-exponent-zero.amber
new file mode 100644
index 0000000..0ce67d7
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplify-ldexp-exponent-zero.amber
@@ -0,0 +1,132 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction simplification code path
+
+# The test passes because the shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float three;
+# };
+#
+# void main()
+# {
+#     // f becomes 3.0 * 2^0 = 3.0.
+#     float f = ldexp(three, 0);
+#
+#     if (f == 3.0)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 32
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %26
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "f"
+               OpName %9 "buf0"
+               OpMemberName %9 0 "three"
+               OpName %11 ""
+               OpName %26 "_GLF_color"
+               OpMemberDecorate %9 0 Offset 0
+               OpDecorate %9 Block
+               OpDecorate %11 DescriptorSet 0
+               OpDecorate %11 Binding 0
+               OpDecorate %26 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypePointer Function %6
+          %9 = OpTypeStruct %6
+         %10 = OpTypePointer Uniform %9
+         %11 = OpVariable %10 Uniform
+         %12 = OpTypeInt 32 1
+         %13 = OpConstant %12 0
+         %14 = OpTypePointer Uniform %6
+         %19 = OpConstant %6 3
+         %20 = OpTypeBool
+         %24 = OpTypeVector %6 4
+         %25 = OpTypePointer Output %24
+         %26 = OpVariable %25 Output
+         %27 = OpConstant %6 1
+         %28 = OpConstant %6 0
+         %29 = OpConstantComposite %24 %27 %28 %28 %27
+         %31 = OpConstantComposite %24 %28 %28 %28 %28
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %15 = OpAccessChain %14 %11 %13
+         %16 = OpLoad %6 %15
+         %17 = OpExtInst %6 %1 Ldexp %16 %13
+               OpStore %8 %17
+         %18 = OpLoad %6 %8
+         %21 = OpFOrdEqual %20 %18 %19
+               OpSelectionMerge %23 None
+               OpBranchConditional %21 %22 %30
+         %22 = OpLabel
+               OpStore %26 %29
+               OpBranch %23
+         %30 = OpLabel
+               OpStore %26 %31
+               OpBranch %23
+         %23 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# three
+BUFFER variant_three DATA_TYPE float DATA
+ 3.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_three AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplify-mul-identity.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplify-mul-identity.amber
new file mode 100644
index 0000000..3c301d7
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplify-mul-identity.amber
@@ -0,0 +1,148 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction simplification code path
+
+# The test passes because the shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float one;
+# };
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     vec4 v = vec4(8.4, -864.665, 945.420, 1.0);
+#     // Multiplying with an identity matrix returns the original vector.
+#     vec4 res = mat4(one) * v;
+#
+#     if (distance(v, res) < 0.01)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 46
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %42
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "v"
+               OpName %15 "res"
+               OpName %16 "buf0"
+               OpMemberName %16 0 "one"
+               OpName %18 ""
+               OpName %42 "_GLF_color"
+               OpMemberDecorate %16 0 Offset 0
+               OpDecorate %16 Block
+               OpDecorate %18 DescriptorSet 0
+               OpDecorate %18 Binding 0
+               OpDecorate %42 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 4
+          %8 = OpTypePointer Function %7
+         %10 = OpConstant %6 8.39999962
+         %11 = OpConstant %6 -864.664978
+         %12 = OpConstant %6 945.419983
+         %13 = OpConstant %6 1
+         %14 = OpConstantComposite %7 %10 %11 %12 %13
+         %16 = OpTypeStruct %6
+         %17 = OpTypePointer Uniform %16
+         %18 = OpVariable %17 Uniform
+         %19 = OpTypeInt 32 1
+         %20 = OpConstant %19 0
+         %21 = OpTypePointer Uniform %6
+         %24 = OpTypeMatrix %7 4
+         %25 = OpConstant %6 0
+         %36 = OpConstant %6 0.00999999978
+         %37 = OpTypeBool
+         %41 = OpTypePointer Output %7
+         %42 = OpVariable %41 Output
+         %43 = OpConstantComposite %7 %13 %25 %25 %13
+         %45 = OpConstantComposite %7 %25 %25 %25 %25
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %9 = OpVariable %8 Function
+         %15 = OpVariable %8 Function
+               OpStore %9 %14
+         %22 = OpAccessChain %21 %18 %20
+         %23 = OpLoad %6 %22
+         %26 = OpCompositeConstruct %7 %23 %25 %25 %25
+         %27 = OpCompositeConstruct %7 %25 %23 %25 %25
+         %28 = OpCompositeConstruct %7 %25 %25 %23 %25
+         %29 = OpCompositeConstruct %7 %25 %25 %25 %23
+         %30 = OpCompositeConstruct %24 %26 %27 %28 %29
+         %31 = OpLoad %7 %9
+         %32 = OpMatrixTimesVector %7 %30 %31
+               OpStore %15 %32
+         %33 = OpLoad %7 %9
+         %34 = OpLoad %7 %15
+         %35 = OpExtInst %6 %1 Distance %33 %34
+         %38 = OpFOrdLessThan %37 %35 %36
+               OpSelectionMerge %40 None
+               OpBranchConditional %38 %39 %44
+         %39 = OpLabel
+               OpStore %42 %43
+               OpBranch %40
+         %44 = OpLabel
+               OpStore %42 %45
+               OpBranch %40
+         %40 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE float DATA
+ 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplify-not-less-than-neg.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplify-not-less-than-neg.amber
new file mode 100644
index 0000000..9d6c9f9
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplify-not-less-than-neg.amber
@@ -0,0 +1,143 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction simplification code path
+
+# The test passes because the shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int three;
+# };
+#
+# void main()
+# {
+#     // Always true.
+#     if(three > 1 && !(gl_FragCoord.y < -5.0))
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 41
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %22 %35
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "buf0"
+               OpMemberName %8 0 "three"
+               OpName %10 ""
+               OpName %22 "gl_FragCoord"
+               OpName %35 "_GLF_color"
+               OpMemberDecorate %8 0 Offset 0
+               OpDecorate %8 Block
+               OpDecorate %10 DescriptorSet 0
+               OpDecorate %10 Binding 0
+               OpDecorate %22 BuiltIn FragCoord
+               OpDecorate %35 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeBool
+          %7 = OpTypeInt 32 1
+          %8 = OpTypeStruct %7
+          %9 = OpTypePointer Uniform %8
+         %10 = OpVariable %9 Uniform
+         %11 = OpConstant %7 0
+         %12 = OpTypePointer Uniform %7
+         %15 = OpConstant %7 1
+         %19 = OpTypeFloat 32
+         %20 = OpTypeVector %19 4
+         %21 = OpTypePointer Input %20
+         %22 = OpVariable %21 Input
+         %23 = OpTypeInt 32 0
+         %24 = OpConstant %23 1
+         %25 = OpTypePointer Input %19
+         %28 = OpConstant %19 -5
+         %34 = OpTypePointer Output %20
+         %35 = OpVariable %34 Output
+         %36 = OpConstant %19 1
+         %37 = OpConstant %19 0
+         %38 = OpConstantComposite %20 %36 %37 %37 %36
+         %40 = OpConstantComposite %20 %37 %37 %37 %37
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %13 = OpAccessChain %12 %10 %11
+         %14 = OpLoad %7 %13
+         %16 = OpSGreaterThan %6 %14 %15
+               OpSelectionMerge %18 None
+               OpBranchConditional %16 %17 %18
+         %17 = OpLabel
+         %26 = OpAccessChain %25 %22 %24
+         %27 = OpLoad %19 %26
+         %29 = OpFOrdLessThan %6 %27 %28
+         %30 = OpLogicalNot %6 %29
+               OpBranch %18
+         %18 = OpLabel
+         %31 = OpPhi %6 %16 %5 %30 %17
+               OpSelectionMerge %33 None
+               OpBranchConditional %31 %32 %39
+         %32 = OpLabel
+               OpStore %35 %38
+               OpBranch %33
+         %39 = OpLabel
+               OpStore %35 %40
+               OpBranch %33
+         %33 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# three
+BUFFER variant_three DATA_TYPE int32 DATA
+ 3
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_three AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplify-select-fragcoord.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplify-select-fragcoord.amber
new file mode 100644
index 0000000..15c1152
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplify-select-fragcoord.amber
@@ -0,0 +1,147 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction simplification code path
+
+# The test passes because the shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float one;
+# };
+#
+# void main()
+# {
+#     // Always selects 1.0.
+#     float f = mix(1.0, 0.0, gl_FragCoord.y < 0.0);
+#
+#     if(determinant(mat3(f)) == one)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 46
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %13 %42
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "f"
+               OpName %13 "gl_FragCoord"
+               OpName %30 "buf0"
+               OpMemberName %30 0 "one"
+               OpName %32 ""
+               OpName %42 "_GLF_color"
+               OpDecorate %13 BuiltIn FragCoord
+               OpMemberDecorate %30 0 Offset 0
+               OpDecorate %30 Block
+               OpDecorate %32 DescriptorSet 0
+               OpDecorate %32 Binding 0
+               OpDecorate %42 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypePointer Function %6
+          %9 = OpConstant %6 1
+         %10 = OpConstant %6 0
+         %11 = OpTypeVector %6 4
+         %12 = OpTypePointer Input %11
+         %13 = OpVariable %12 Input
+         %14 = OpTypeInt 32 0
+         %15 = OpConstant %14 1
+         %16 = OpTypePointer Input %6
+         %19 = OpTypeBool
+         %23 = OpTypeVector %6 3
+         %24 = OpTypeMatrix %23 3
+         %30 = OpTypeStruct %6
+         %31 = OpTypePointer Uniform %30
+         %32 = OpVariable %31 Uniform
+         %33 = OpTypeInt 32 1
+         %34 = OpConstant %33 0
+         %35 = OpTypePointer Uniform %6
+         %41 = OpTypePointer Output %11
+         %42 = OpVariable %41 Output
+         %43 = OpConstantComposite %11 %9 %10 %10 %9
+         %45 = OpConstantComposite %11 %10 %10 %10 %10
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %17 = OpAccessChain %16 %13 %15
+         %18 = OpLoad %6 %17
+         %20 = OpFOrdLessThan %19 %18 %10
+         %21 = OpSelect %6 %20 %10 %9
+               OpStore %8 %21
+         %22 = OpLoad %6 %8
+         %25 = OpCompositeConstruct %23 %22 %10 %10
+         %26 = OpCompositeConstruct %23 %10 %22 %10
+         %27 = OpCompositeConstruct %23 %10 %10 %22
+         %28 = OpCompositeConstruct %24 %25 %26 %27
+         %29 = OpExtInst %6 %1 Determinant %28
+         %36 = OpAccessChain %35 %32 %34
+         %37 = OpLoad %6 %36
+         %38 = OpFOrdEqual %19 %29 %37
+               OpSelectionMerge %40 None
+               OpBranchConditional %38 %39 %44
+         %39 = OpLabel
+               OpStore %42 %43
+               OpBranch %40
+         %44 = OpLabel
+               OpStore %42 %45
+               OpBranch %40
+         %40 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE float DATA
+ 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplify-sign-cosh.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplify-sign-cosh.amber
new file mode 100644
index 0000000..9d7679e
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplify-sign-cosh.amber
@@ -0,0 +1,139 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction simplification path
+
+# The test passes because the shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int one;
+# };
+#
+# void main()
+# {
+#   if (sign(cosh(709.)) == 1. || one == 1)
+#   {
+#     _GLF_color = vec4(1, 0, 0, 1);
+#   }
+#   else
+#   {
+#     _GLF_color = vec4(1);
+#   }
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 36
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %31
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %17 "buf0"
+               OpMemberName %17 0 "one"
+               OpName %19 ""
+               OpName %31 "_GLF_color"
+               OpMemberDecorate %17 0 RelaxedPrecision
+               OpMemberDecorate %17 0 Offset 0
+               OpDecorate %17 Block
+               OpDecorate %19 DescriptorSet 0
+               OpDecorate %19 Binding 0
+               OpDecorate %23 RelaxedPrecision
+               OpDecorate %31 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeBool
+          %7 = OpTypeFloat 32
+          %8 = OpConstant %7 709
+         %11 = OpConstant %7 1
+         %16 = OpTypeInt 32 1
+         %17 = OpTypeStruct %16
+         %18 = OpTypePointer Uniform %17
+         %19 = OpVariable %18 Uniform
+         %20 = OpConstant %16 0
+         %21 = OpTypePointer Uniform %16
+         %24 = OpConstant %16 1
+         %29 = OpTypeVector %7 4
+         %30 = OpTypePointer Output %29
+         %31 = OpVariable %30 Output
+         %32 = OpConstant %7 0
+         %33 = OpConstantComposite %29 %11 %32 %32 %11
+         %35 = OpConstantComposite %29 %11 %11 %11 %11
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %9 = OpExtInst %7 %1 Cosh %8
+         %10 = OpExtInst %7 %1 FSign %9
+         %12 = OpFOrdEqual %6 %10 %11
+         %13 = OpLogicalNot %6 %12
+               OpSelectionMerge %15 None
+               OpBranchConditional %13 %14 %15
+         %14 = OpLabel
+         %22 = OpAccessChain %21 %19 %20
+         %23 = OpLoad %16 %22
+         %25 = OpIEqual %6 %23 %24
+               OpBranch %15
+         %15 = OpLabel
+         %26 = OpPhi %6 %12 %5 %25 %14
+               OpSelectionMerge %28 None
+               OpBranchConditional %26 %27 %34
+         %27 = OpLabel
+               OpStore %31 %33
+               OpBranch %28
+         %34 = OpLabel
+               OpStore %31 %35
+               OpBranch %28
+         %28 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE int32 DATA
+ 1
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplify-smoothstep-undef.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplify-smoothstep-undef.amber
new file mode 100644
index 0000000..62d5e62
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-simplify-smoothstep-undef.amber
@@ -0,0 +1,183 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific instruction simplification code path
+
+# The test passes because the shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float zero;
+# };
+#
+# void main()
+# {
+#     float f = gl_FragCoord.x;
+#
+#     // (1.0 / 0.0) -> Inf.
+#     // (Inf * 0.0) -> Nan.
+#     // So: f += Nan.
+#     f += (1.0 / 0.0) * 0.0;
+#
+#     // Doesn't matter if this is executed or not.
+#     if (5.0 / f == 0.0)
+#         f += 1.0;
+#
+#     if (isnan(f) || f != zero)
+#         f = 0.0;
+#
+#     // Always true.
+#     if (f == 0.0)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 58
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %11 %54
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "f"
+               OpName %11 "gl_FragCoord"
+               OpName %37 "buf0"
+               OpMemberName %37 0 "zero"
+               OpName %39 ""
+               OpName %54 "_GLF_color"
+               OpDecorate %11 BuiltIn FragCoord
+               OpMemberDecorate %37 0 Offset 0
+               OpDecorate %37 Block
+               OpDecorate %39 DescriptorSet 0
+               OpDecorate %39 Binding 0
+               OpDecorate %54 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypePointer Function %6
+          %9 = OpTypeVector %6 4
+         %10 = OpTypePointer Input %9
+         %11 = OpVariable %10 Input
+         %12 = OpTypeInt 32 0
+         %13 = OpConstant %12 0
+         %14 = OpTypePointer Input %6
+         %17 = OpConstant %6 -0x1.8p+128
+         %20 = OpConstant %6 5
+         %23 = OpConstant %6 0
+         %24 = OpTypeBool
+         %28 = OpConstant %6 1
+         %37 = OpTypeStruct %6
+         %38 = OpTypePointer Uniform %37
+         %39 = OpVariable %38 Uniform
+         %40 = OpTypeInt 32 1
+         %41 = OpConstant %40 0
+         %42 = OpTypePointer Uniform %6
+         %53 = OpTypePointer Output %9
+         %54 = OpVariable %53 Output
+         %55 = OpConstantComposite %9 %28 %23 %23 %28
+         %57 = OpConstantComposite %9 %23 %23 %23 %23
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %15 = OpAccessChain %14 %11 %13
+         %16 = OpLoad %6 %15
+               OpStore %8 %16
+         %18 = OpLoad %6 %8
+         %19 = OpFAdd %6 %18 %17
+               OpStore %8 %19
+         %21 = OpLoad %6 %8
+         %22 = OpFDiv %6 %20 %21
+         %25 = OpFOrdEqual %24 %22 %23
+               OpSelectionMerge %27 None
+               OpBranchConditional %25 %26 %27
+         %26 = OpLabel
+         %29 = OpLoad %6 %8
+         %30 = OpFAdd %6 %29 %28
+               OpStore %8 %30
+               OpBranch %27
+         %27 = OpLabel
+         %31 = OpLoad %6 %8
+         %32 = OpIsNan %24 %31
+         %33 = OpLogicalNot %24 %32
+               OpSelectionMerge %35 None
+               OpBranchConditional %33 %34 %35
+         %34 = OpLabel
+         %36 = OpLoad %6 %8
+         %43 = OpAccessChain %42 %39 %41
+         %44 = OpLoad %6 %43
+         %45 = OpFOrdNotEqual %24 %36 %44
+               OpBranch %35
+         %35 = OpLabel
+         %46 = OpPhi %24 %32 %27 %45 %34
+               OpSelectionMerge %48 None
+               OpBranchConditional %46 %47 %48
+         %47 = OpLabel
+               OpStore %8 %23
+               OpBranch %48
+         %48 = OpLabel
+         %49 = OpLoad %6 %8
+         %50 = OpFOrdEqual %24 %49 %23
+               OpSelectionMerge %52 None
+               OpBranchConditional %50 %51 %56
+         %51 = OpLabel
+               OpStore %54 %55
+               OpBranch %52
+         %56 = OpLabel
+               OpStore %54 %57
+               OpBranch %52
+         %52 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# zero
+BUFFER variant_zero DATA_TYPE float DATA
+ 0.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_zero AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-single-store-elim-assume-store.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-single-store-elim-assume-store.amber
new file mode 100644
index 0000000..ecd2d49
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-single-store-elim-assume-store.amber
@@ -0,0 +1,215 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific single store elimination path.
+
+# The test passes because shader always writes red.
+
+# Optimized using spirv-opt with the following arguments:
+# '--if-conversion'
+# '--eliminate-local-single-block'
+# '--redundancy-elimination'
+# '--reduce-load-size'
+# spirv-opt commit hash: 9215c1b7df0029f27807e8c8d7ec80532ce90a87
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int one;
+# };
+#
+# void main()
+# {
+#     ivec2 v0 = ivec2(0);
+#     ivec2 v1 = ivec2(2);
+#     int a = one;
+#
+#     do
+#     {
+#         // Always false.
+#         if (a > 10)
+#         {
+#             _GLF_color = vec4(0);
+#             return;
+#         }
+#
+#         v0 = v1.x > a ? ivec2(0) : ivec2(1);
+#         a++;
+#     } while(a < 9);
+#
+#     // After the loop v0 == (1, 1).
+#
+#     if(v1.x > 1)
+#         v0 += ivec2(1);
+#
+#     if (v0 == ivec2(2))
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 71
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %36
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "v0"
+               OpName %12 "v1"
+               OpName %16 "a"
+               OpName %17 "buf0"
+               OpMemberName %17 0 "one"
+               OpName %19 ""
+               OpName %36 "_GLF_color"
+               OpMemberDecorate %17 0 Offset 0
+               OpDecorate %17 Block
+               OpDecorate %19 DescriptorSet 0
+               OpDecorate %19 Binding 0
+               OpDecorate %36 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypeVector %6 2
+          %8 = OpTypePointer Function %7
+         %10 = OpConstant %6 0
+         %11 = OpConstantComposite %7 %10 %10
+         %13 = OpConstant %6 2
+         %14 = OpConstantComposite %7 %13 %13
+         %15 = OpTypePointer Function %6
+         %17 = OpTypeStruct %6
+         %18 = OpTypePointer Uniform %17
+         %19 = OpVariable %18 Uniform
+         %20 = OpTypePointer Uniform %6
+         %28 = OpConstant %6 10
+         %29 = OpTypeBool
+         %33 = OpTypeFloat 32
+         %34 = OpTypeVector %33 4
+         %35 = OpTypePointer Output %34
+         %36 = OpVariable %35 Output
+         %37 = OpConstant %33 0
+         %38 = OpConstantComposite %34 %37 %37 %37 %37
+         %40 = OpTypeInt 32 0
+         %41 = OpConstant %40 0
+         %46 = OpConstant %6 1
+         %47 = OpConstantComposite %7 %46 %46
+         %48 = OpTypeVector %29 2
+         %54 = OpConstant %6 9
+         %68 = OpConstant %33 1
+         %69 = OpConstantComposite %34 %68 %37 %37 %68
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %9 = OpVariable %8 Function
+         %12 = OpVariable %8 Function
+         %16 = OpVariable %15 Function
+               OpStore %9 %11
+               OpStore %12 %14
+         %21 = OpAccessChain %20 %19 %10
+         %22 = OpLoad %6 %21
+               OpStore %16 %22
+               OpBranch %23
+         %23 = OpLabel
+               OpLoopMerge %25 %26 None
+               OpBranch %24
+         %24 = OpLabel
+         %27 = OpLoad %6 %16
+         %30 = OpSGreaterThan %29 %27 %28
+               OpSelectionMerge %32 None
+               OpBranchConditional %30 %31 %32
+         %31 = OpLabel
+               OpStore %36 %38
+               OpReturn
+         %32 = OpLabel
+         %42 = OpAccessChain %15 %12 %41
+         %43 = OpLoad %6 %42
+         %44 = OpLoad %6 %16
+         %45 = OpSGreaterThan %29 %43 %44
+         %49 = OpCompositeConstruct %48 %45 %45
+         %50 = OpSelect %7 %49 %11 %47
+               OpStore %9 %50
+         %52 = OpIAdd %6 %44 %46
+               OpStore %16 %52
+               OpBranch %26
+         %26 = OpLabel
+         %53 = OpLoad %6 %16
+         %55 = OpSLessThan %29 %53 %54
+               OpBranchConditional %55 %23 %25
+         %25 = OpLabel
+         %57 = OpLoad %6 %42
+         %58 = OpSGreaterThan %29 %57 %46
+               OpSelectionMerge %60 None
+               OpBranchConditional %58 %59 %60
+         %59 = OpLabel
+         %61 = OpLoad %7 %9
+         %62 = OpIAdd %7 %61 %47
+               OpStore %9 %62
+               OpBranch %60
+         %60 = OpLabel
+         %63 = OpLoad %7 %9
+         %64 = OpIEqual %48 %63 %14
+         %65 = OpAll %29 %64
+               OpSelectionMerge %67 None
+               OpBranchConditional %65 %66 %70
+         %66 = OpLabel
+               OpStore %36 %69
+               OpBranch %67
+         %70 = OpLabel
+               OpStore %36 %38
+               OpBranch %67
+         %67 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE int32 DATA
+ 1
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-target-lowering-dfdx-cos.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-target-lowering-dfdx-cos.amber
new file mode 100644
index 0000000..79c58c5
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-target-lowering-dfdx-cos.amber
@@ -0,0 +1,154 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific target lowering code path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float two;
+# };
+#
+# void main()
+# {
+#     float a = dFdx(cos(gl_FragCoord.x));
+#
+#     // The weight value doesn't matter since two equals 2.
+#     float b = mix(2.0, two, a);
+#
+#     // Always true.
+#     if (b >= 1.9 && b <= 2.1)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 48
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %11 %42
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "a"
+               OpName %11 "gl_FragCoord"
+               OpName %19 "b"
+               OpName %21 "buf0"
+               OpMemberName %21 0 "two"
+               OpName %23 ""
+               OpName %42 "_GLF_color"
+               OpDecorate %11 BuiltIn FragCoord
+               OpMemberDecorate %21 0 Offset 0
+               OpDecorate %21 Block
+               OpDecorate %23 DescriptorSet 0
+               OpDecorate %23 Binding 0
+               OpDecorate %42 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypePointer Function %6
+          %9 = OpTypeVector %6 4
+         %10 = OpTypePointer Input %9
+         %11 = OpVariable %10 Input
+         %12 = OpTypeInt 32 0
+         %13 = OpConstant %12 0
+         %14 = OpTypePointer Input %6
+         %20 = OpConstant %6 2
+         %21 = OpTypeStruct %6
+         %22 = OpTypePointer Uniform %21
+         %23 = OpVariable %22 Uniform
+         %24 = OpTypeInt 32 1
+         %25 = OpConstant %24 0
+         %26 = OpTypePointer Uniform %6
+         %32 = OpConstant %6 1.89999998
+         %33 = OpTypeBool
+         %36 = OpConstant %6 2.0999999
+         %41 = OpTypePointer Output %9
+         %42 = OpVariable %41 Output
+         %43 = OpConstant %6 1
+         %44 = OpConstant %6 0
+         %45 = OpConstantComposite %9 %43 %44 %44 %43
+         %47 = OpConstantComposite %9 %44 %44 %44 %44
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %19 = OpVariable %7 Function
+         %15 = OpAccessChain %14 %11 %13
+         %16 = OpLoad %6 %15
+         %17 = OpExtInst %6 %1 Cos %16
+         %18 = OpDPdx %6 %17
+               OpStore %8 %18
+         %27 = OpAccessChain %26 %23 %25
+         %28 = OpLoad %6 %27
+         %29 = OpLoad %6 %8
+         %30 = OpExtInst %6 %1 FMix %20 %28 %29
+               OpStore %19 %30
+         %31 = OpLoad %6 %19
+         %34 = OpFOrdGreaterThanEqual %33 %31 %32
+         %35 = OpLoad %6 %19
+         %37 = OpFOrdLessThanEqual %33 %35 %36
+         %38 = OpLogicalAnd %33 %34 %37
+               OpSelectionMerge %40 None
+               OpBranchConditional %38 %39 %46
+         %39 = OpLabel
+               OpStore %42 %45
+               OpBranch %40
+         %46 = OpLabel
+               OpStore %42 %47
+               OpBranch %40
+         %40 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# two
+BUFFER variant_two DATA_TYPE float DATA
+ 2.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_two AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-val-cfg-case-fallthrough.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-val-cfg-case-fallthrough.amber
new file mode 100644
index 0000000..898cad0
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-val-cfg-case-fallthrough.amber
@@ -0,0 +1,154 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific shader validation path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int one;
+# };
+#
+# void main()
+# {
+#     int a = 0;
+#
+#     switch(one)
+#     {
+#         case 2:
+#         case 3:
+#             a = 1;
+#         case 4:
+#             break;
+#         default:
+#             a = 2;
+#             break;
+#     }
+#
+#     if (a == 2)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 39
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %33
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "a"
+               OpName %10 "buf0"
+               OpMemberName %10 0 "one"
+               OpName %12 ""
+               OpName %33 "_GLF_color"
+               OpMemberDecorate %10 0 Offset 0
+               OpDecorate %10 Block
+               OpDecorate %12 DescriptorSet 0
+               OpDecorate %12 Binding 0
+               OpDecorate %33 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %9 = OpConstant %6 0
+         %10 = OpTypeStruct %6
+         %11 = OpTypePointer Uniform %10
+         %12 = OpVariable %11 Uniform
+         %13 = OpTypePointer Uniform %6
+         %20 = OpConstant %6 1
+         %22 = OpConstant %6 2
+         %26 = OpTypeBool
+         %30 = OpTypeFloat 32
+         %31 = OpTypeVector %30 4
+         %32 = OpTypePointer Output %31
+         %33 = OpVariable %32 Output
+         %34 = OpConstant %30 1
+         %35 = OpConstant %30 0
+         %36 = OpConstantComposite %31 %34 %35 %35 %34
+         %38 = OpConstantComposite %31 %35 %35 %35 %35
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+               OpStore %8 %9
+         %14 = OpAccessChain %13 %12 %9
+         %15 = OpLoad %6 %14
+               OpSelectionMerge %19 None
+               OpSwitch %15 %18 2 %16 3 %16 4 %17
+         %18 = OpLabel
+               OpStore %8 %22
+               OpBranch %19
+         %16 = OpLabel
+               OpStore %8 %20
+               OpBranch %17
+         %17 = OpLabel
+               OpBranch %19
+         %19 = OpLabel
+         %25 = OpLoad %6 %8
+         %27 = OpIEqual %26 %25 %22
+               OpSelectionMerge %29 None
+               OpBranchConditional %27 %28 %37
+         %28 = OpLabel
+               OpStore %33 %36
+               OpBranch %29
+         %37 = OpLabel
+               OpStore %33 %38
+               OpBranch %29
+         %29 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# one
+BUFFER variant_one DATA_TYPE int32 DATA
+ 1
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_one AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-value-tracking-const-dfdy.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-value-tracking-const-dfdy.amber
new file mode 100644
index 0000000..11e1583
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-value-tracking-const-dfdy.amber
@@ -0,0 +1,113 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific value tracking code path
+
+# The test passes because the shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     // Constant vector doesn't change between fragments.
+#     vec4 diff = dFdy(acosh(vec4(8.0, 2.0, 3.5, 3.4)));
+#
+#     if (diff == vec4(0))
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = diff;
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 32
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %27
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "diff"
+               OpName %27 "_GLF_color"
+               OpDecorate %27 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 4
+          %8 = OpTypePointer Function %7
+         %10 = OpConstant %6 8
+         %11 = OpConstant %6 2
+         %12 = OpConstant %6 3.5
+         %13 = OpConstant %6 3.4000001
+         %14 = OpConstantComposite %7 %10 %11 %12 %13
+         %18 = OpConstant %6 0
+         %19 = OpConstantComposite %7 %18 %18 %18 %18
+         %20 = OpTypeBool
+         %21 = OpTypeVector %20 4
+         %26 = OpTypePointer Output %7
+         %27 = OpVariable %26 Output
+         %28 = OpConstant %6 1
+         %29 = OpConstantComposite %7 %28 %18 %18 %28
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %9 = OpVariable %8 Function
+         %15 = OpExtInst %7 %1 Acosh %14
+         %16 = OpDPdy %7 %15
+               OpStore %9 %16
+         %17 = OpLoad %7 %9
+         %22 = OpFOrdEqual %21 %17 %19
+         %23 = OpAll %20 %22
+               OpSelectionMerge %25 None
+               OpBranchConditional %23 %24 %30
+         %24 = OpLabel
+               OpStore %27 %29
+               OpBranch %25
+         %30 = OpLabel
+         %31 = OpLoad %7 %9
+               OpStore %27 %31
+               OpBranch %25
+         %25 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-value-tracking-inclusive-or.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-value-tracking-inclusive-or.amber
new file mode 100644
index 0000000..4233ea5
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-value-tracking-inclusive-or.amber
@@ -0,0 +1,160 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific value tracking path
+
+# The test passes because the shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int two;
+# };
+#
+# void main()
+# {
+#   int a = 0;
+#   for (int i = 0; i < 2; i++)
+#   {
+#     a = (i | -2) - 1;
+#   }
+#
+#   if (a == -2)
+#   {
+#     _GLF_color = vec4(1, 0, 0, 1);
+#   }
+#   else
+#   {
+#     _GLF_color = vec4(0);
+#   }
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 43
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %34
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "a"
+               OpName %10 "i"
+               OpName %34 "_GLF_color"
+               OpName %40 "buf0"
+               OpMemberName %40 0 "two"
+               OpName %42 ""
+               OpDecorate %34 Location 0
+               OpMemberDecorate %40 0 Offset 0
+               OpDecorate %40 Block
+               OpDecorate %42 DescriptorSet 0
+               OpDecorate %42 Binding 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %9 = OpConstant %6 0
+         %17 = OpConstant %6 2
+         %18 = OpTypeBool
+         %21 = OpConstant %6 -2
+         %23 = OpConstant %6 1
+         %31 = OpTypeFloat 32
+         %32 = OpTypeVector %31 4
+         %33 = OpTypePointer Output %32
+         %34 = OpVariable %33 Output
+         %35 = OpConstant %31 1
+         %36 = OpConstant %31 0
+         %37 = OpConstantComposite %32 %35 %36 %36 %35
+         %39 = OpConstantComposite %32 %36 %36 %36 %36
+         %40 = OpTypeStruct %6
+         %41 = OpTypePointer Uniform %40
+         %42 = OpVariable %41 Uniform
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %10 = OpVariable %7 Function
+               OpStore %8 %9
+               OpStore %10 %9
+               OpBranch %11
+         %11 = OpLabel
+               OpLoopMerge %13 %14 None
+               OpBranch %15
+         %15 = OpLabel
+         %16 = OpLoad %6 %10
+         %19 = OpSLessThan %18 %16 %17
+               OpBranchConditional %19 %12 %13
+         %12 = OpLabel
+         %20 = OpLoad %6 %10
+         %22 = OpBitwiseOr %6 %20 %21
+         %24 = OpISub %6 %22 %23
+               OpStore %8 %24
+               OpBranch %14
+         %14 = OpLabel
+         %25 = OpLoad %6 %10
+         %26 = OpIAdd %6 %25 %23
+               OpStore %10 %26
+               OpBranch %11
+         %13 = OpLabel
+         %27 = OpLoad %6 %8
+         %28 = OpIEqual %18 %27 %21
+               OpSelectionMerge %30 None
+               OpBranchConditional %28 %29 %38
+         %29 = OpLabel
+               OpStore %34 %37
+               OpBranch %30
+         %38 = OpLabel
+               OpStore %34 %39
+               OpBranch %30
+         %30 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# two
+BUFFER variant_two DATA_TYPE int32 DATA
+ 2
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_two AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-value-tracking-uniform-incident.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-value-tracking-uniform-incident.amber
new file mode 100644
index 0000000..e651c77
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-value-tracking-uniform-incident.amber
@@ -0,0 +1,164 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific value tracking code path
+
+# The test passes because the shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float quarter;
+# };
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     vec4 N = vec4(1, 2, 3, 4);
+#     vec4 I = vec4(4.0, 87.59, quarter, 92.51);
+#     vec4 Nref = vec4(17.05, -6.1, 4329.3705, 2.7);
+#     vec4 v = faceforward(N, I, Nref);
+#
+#     if (v == vec4(-1, -2, -3, -4))
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 56
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %51
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "N"
+               OpName %15 "I"
+               OpName %17 "buf0"
+               OpMemberName %17 0 "quarter"
+               OpName %19 ""
+               OpName %27 "Nref"
+               OpName %33 "v"
+               OpName %51 "_GLF_color"
+               OpMemberDecorate %17 0 Offset 0
+               OpDecorate %17 Block
+               OpDecorate %19 DescriptorSet 0
+               OpDecorate %19 Binding 0
+               OpDecorate %51 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 4
+          %8 = OpTypePointer Function %7
+         %10 = OpConstant %6 1
+         %11 = OpConstant %6 2
+         %12 = OpConstant %6 3
+         %13 = OpConstant %6 4
+         %14 = OpConstantComposite %7 %10 %11 %12 %13
+         %16 = OpConstant %6 87.5899963
+         %17 = OpTypeStruct %6
+         %18 = OpTypePointer Uniform %17
+         %19 = OpVariable %18 Uniform
+         %20 = OpTypeInt 32 1
+         %21 = OpConstant %20 0
+         %22 = OpTypePointer Uniform %6
+         %25 = OpConstant %6 92.5100021
+         %28 = OpConstant %6 17.0499992
+         %29 = OpConstant %6 -6.0999999
+         %30 = OpConstant %6 4329.37061
+         %31 = OpConstant %6 2.70000005
+         %32 = OpConstantComposite %7 %28 %29 %30 %31
+         %39 = OpConstant %6 -1
+         %40 = OpConstant %6 -2
+         %41 = OpConstant %6 -3
+         %42 = OpConstant %6 -4
+         %43 = OpConstantComposite %7 %39 %40 %41 %42
+         %44 = OpTypeBool
+         %45 = OpTypeVector %44 4
+         %50 = OpTypePointer Output %7
+         %51 = OpVariable %50 Output
+         %52 = OpConstant %6 0
+         %53 = OpConstantComposite %7 %10 %52 %52 %10
+         %55 = OpConstantComposite %7 %52 %52 %52 %52
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %9 = OpVariable %8 Function
+         %15 = OpVariable %8 Function
+         %27 = OpVariable %8 Function
+         %33 = OpVariable %8 Function
+               OpStore %9 %14
+         %23 = OpAccessChain %22 %19 %21
+         %24 = OpLoad %6 %23
+         %26 = OpCompositeConstruct %7 %13 %16 %24 %25
+               OpStore %15 %26
+               OpStore %27 %32
+         %34 = OpLoad %7 %9
+         %35 = OpLoad %7 %15
+         %36 = OpLoad %7 %27
+         %37 = OpExtInst %7 %1 FaceForward %34 %35 %36
+               OpStore %33 %37
+         %38 = OpLoad %7 %33
+         %46 = OpFOrdEqual %45 %38 %43
+         %47 = OpAll %44 %46
+               OpSelectionMerge %49 None
+               OpBranchConditional %47 %48 %54
+         %48 = OpLabel
+               OpStore %51 %53
+               OpBranch %49
+         %54 = OpLabel
+               OpStore %51 %55
+               OpBranch %49
+         %49 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# quarter
+BUFFER variant_quarter DATA_TYPE float DATA
+ 0.25
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_quarter AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-vector-log2-cosh.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-vector-log2-cosh.amber
new file mode 100644
index 0000000..14acaf1
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-vector-log2-cosh.amber
@@ -0,0 +1,114 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific vector log2 and cosh code path.
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     vec2 v = log2(cosh(vec2(1, 100)));
+#
+#     if (v.x < v.y)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 34
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %29
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "v"
+               OpName %29 "_GLF_color"
+               OpDecorate %29 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 2
+          %8 = OpTypePointer Function %7
+         %10 = OpConstant %6 1
+         %11 = OpConstant %6 100
+         %12 = OpConstantComposite %7 %10 %11
+         %15 = OpTypeInt 32 0
+         %16 = OpConstant %15 0
+         %17 = OpTypePointer Function %6
+         %20 = OpConstant %15 1
+         %23 = OpTypeBool
+         %27 = OpTypeVector %6 4
+         %28 = OpTypePointer Output %27
+         %29 = OpVariable %28 Output
+         %30 = OpConstant %6 0
+         %31 = OpConstantComposite %27 %10 %30 %30 %10
+         %33 = OpConstantComposite %27 %30 %30 %30 %30
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %9 = OpVariable %8 Function
+         %13 = OpExtInst %7 %1 Cosh %12
+         %14 = OpExtInst %7 %1 Log2 %13
+               OpStore %9 %14
+         %18 = OpAccessChain %17 %9 %16
+         %19 = OpLoad %6 %18
+         %21 = OpAccessChain %17 %9 %20
+         %22 = OpLoad %6 %21
+         %24 = OpFOrdLessThan %23 %19 %22
+               OpSelectionMerge %26 None
+               OpBranchConditional %24 %25 %32
+         %25 = OpLabel
+               OpStore %29 %31
+               OpBranch %26
+         %32 = OpLabel
+               OpStore %29 %33
+               OpBranch %26
+         %26 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-wrap-op-kill-for-loop.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-wrap-op-kill-for-loop.amber
new file mode 100644
index 0000000..2b5233d
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-wrap-op-kill-for-loop.amber
@@ -0,0 +1,193 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific OpKill wrapping code path
+
+# The test passes because shader always writes red.
+
+# Optimized using spirv-opt with the following arguments:
+# '--vector-dce'
+# '--combine-access-chains'
+# '--eliminate-local-multi-store'
+# '--scalar-replacement=100'
+# '--simplify-instructions'
+# '--eliminate-dead-branches'
+# '--merge-return'
+# '--combine-access-chains'
+# '--simplify-instructions'
+# '--eliminate-dead-branches'
+# '--merge-blocks'
+# spirv-opt commit hash: 9215c1b7df0029f27807e8c8d7ec80532ce90a87
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int zero;
+# };
+#
+# void func(int x)
+# {
+#     // Always false.
+#     if (x < zero)
+#         discard;
+#
+#     if (x > 8)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+#
+# void main()
+# {
+#     _GLF_color = vec4(0);
+#
+#     for (int i = 0; i < 10 + zero; i++)
+#         func(i);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 58
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %33
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %10 "func(i1;"
+               OpName %9 "x"
+               OpName %13 "buf0"
+               OpMemberName %13 0 "zero"
+               OpName %15 ""
+               OpName %33 "_GLF_color"
+               OpName %39 "i"
+               OpName %51 "param"
+               OpMemberDecorate %13 0 Offset 0
+               OpDecorate %13 Block
+               OpDecorate %15 DescriptorSet 0
+               OpDecorate %15 Binding 0
+               OpDecorate %33 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %8 = OpTypeFunction %2 %7
+         %13 = OpTypeStruct %6
+         %14 = OpTypePointer Uniform %13
+         %15 = OpVariable %14 Uniform
+         %16 = OpConstant %6 0
+         %17 = OpTypePointer Uniform %6
+         %20 = OpTypeBool
+         %26 = OpConstant %6 8
+         %30 = OpTypeFloat 32
+         %31 = OpTypeVector %30 4
+         %32 = OpTypePointer Output %31
+         %33 = OpVariable %32 Output
+         %34 = OpConstant %30 1
+         %35 = OpConstant %30 0
+         %36 = OpConstantComposite %31 %34 %35 %35 %34
+         %38 = OpConstantComposite %31 %35 %35 %35 %35
+         %46 = OpConstant %6 10
+         %55 = OpConstant %6 1
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %39 = OpVariable %7 Function
+         %51 = OpVariable %7 Function
+               OpStore %33 %38
+               OpStore %39 %16
+               OpBranch %40
+         %40 = OpLabel
+         %57 = OpPhi %6 %16 %5 %56 %41
+         %47 = OpAccessChain %17 %15 %16
+         %48 = OpLoad %6 %47
+         %49 = OpIAdd %6 %46 %48
+         %50 = OpSLessThan %20 %57 %49
+               OpLoopMerge %42 %41 None
+               OpBranchConditional %50 %41 %42
+         %41 = OpLabel
+               OpStore %51 %57
+         %53 = OpFunctionCall %2 %10 %51
+         %56 = OpIAdd %6 %57 %55
+               OpStore %39 %56
+               OpBranch %40
+         %42 = OpLabel
+               OpReturn
+               OpFunctionEnd
+         %10 = OpFunction %2 None %8
+          %9 = OpFunctionParameter %7
+         %11 = OpLabel
+         %12 = OpLoad %6 %9
+         %18 = OpAccessChain %17 %15 %16
+         %19 = OpLoad %6 %18
+         %21 = OpSLessThan %20 %12 %19
+               OpSelectionMerge %23 None
+               OpBranchConditional %21 %22 %23
+         %22 = OpLabel
+               OpKill
+         %23 = OpLabel
+         %25 = OpLoad %6 %9
+         %27 = OpSGreaterThan %20 %25 %26
+               OpSelectionMerge %29 None
+               OpBranchConditional %27 %28 %37
+         %28 = OpLabel
+               OpStore %33 %36
+               OpBranch %29
+         %37 = OpLabel
+               OpStore %33 %38
+               OpBranch %29
+         %29 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# zero
+BUFFER variant_zero DATA_TYPE int32 DATA
+ 0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_zero AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-wrap-op-kill-two-branches.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-wrap-op-kill-two-branches.amber
new file mode 100644
index 0000000..a3ded97
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/cov-wrap-op-kill-two-branches.amber
@@ -0,0 +1,240 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a coverage-gap found by GraphicsFuzz.
+
+# Short description: A fragment shader that covers a specific OpKill wrapping path.
+
+# The test passes because shader always writes red.
+
+# Optimized using spirv-opt with the following arguments:
+# '--convert-local-access-chains'
+# '--eliminate-dead-branches'
+# '--merge-blocks'
+# '--eliminate-local-single-store'
+# '--eliminate-dead-branches'
+# '--merge-return'
+# '--inline-entry-points-exhaustive'
+# '--copy-propagate-arrays'
+# '--if-conversion'
+# '--reduce-load-size'
+# '--convert-local-access-chains'
+# '--if-conversion'
+# '--redundancy-elimination'
+# '--if-conversion'
+# '--simplify-instructions'
+# '--scalar-replacement=100'
+# '--simplify-instructions'
+# '--if-conversion'
+# '--eliminate-dead-inserts'
+# '--eliminate-dead-branches'
+# '--eliminate-dead-code-aggressive'
+# spirv-opt commit hash: 9215c1b7df0029f27807e8c8d7ec80532ce90a87
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int five;
+# };
+#
+# float func(float x)
+# {
+#     if (x > 5.0)
+#     {
+#         if (gl_FragCoord.x < 0.5)
+#             discard;
+#         else if (gl_FragCoord.y < 0.5)
+#             discard;
+#     }
+#
+#     return x + 1.0;
+# }
+#
+# void main()
+# {
+#     float f = 0.0;
+#
+#     for(int i = 0; i < five; i++)
+#         f = func(float(i));
+#
+#     if (f == 5.0)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 79
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %20 %75
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %10 "func(f1;"
+               OpName %9 "x"
+               OpName %20 "gl_FragCoord"
+               OpName %44 "f"
+               OpName %48 "i"
+               OpName %56 "buf0"
+               OpMemberName %56 0 "five"
+               OpName %58 ""
+               OpName %65 "param"
+               OpName %75 "_GLF_color"
+               OpDecorate %20 BuiltIn FragCoord
+               OpMemberDecorate %56 0 Offset 0
+               OpDecorate %56 Block
+               OpDecorate %58 DescriptorSet 0
+               OpDecorate %58 Binding 0
+               OpDecorate %75 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypePointer Function %6
+          %8 = OpTypeFunction %6 %7
+         %13 = OpConstant %6 5
+         %14 = OpTypeBool
+         %18 = OpTypeVector %6 4
+         %19 = OpTypePointer Input %18
+         %20 = OpVariable %19 Input
+         %21 = OpTypeInt 32 0
+         %22 = OpConstant %21 0
+         %23 = OpTypePointer Input %6
+         %26 = OpConstant %6 0.5
+         %32 = OpConstant %21 1
+         %40 = OpConstant %6 1
+         %45 = OpConstant %6 0
+         %46 = OpTypeInt 32 1
+         %47 = OpTypePointer Function %46
+         %49 = OpConstant %46 0
+         %56 = OpTypeStruct %46
+         %57 = OpTypePointer Uniform %56
+         %58 = OpVariable %57 Uniform
+         %59 = OpTypePointer Uniform %46
+         %68 = OpConstant %46 1
+         %74 = OpTypePointer Output %18
+         %75 = OpVariable %74 Output
+         %76 = OpConstantComposite %18 %40 %45 %45 %40
+         %78 = OpConstantComposite %18 %45 %45 %45 %45
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %44 = OpVariable %7 Function
+         %48 = OpVariable %47 Function
+         %65 = OpVariable %7 Function
+               OpStore %44 %45
+               OpStore %48 %49
+               OpBranch %50
+         %50 = OpLabel
+         %55 = OpLoad %46 %48
+         %60 = OpAccessChain %59 %58 %49
+         %61 = OpLoad %46 %60
+         %62 = OpSLessThan %14 %55 %61
+               OpLoopMerge %52 %51 None
+               OpBranchConditional %62 %51 %52
+         %51 = OpLabel
+         %63 = OpLoad %46 %48
+         %64 = OpConvertSToF %6 %63
+               OpStore %65 %64
+         %66 = OpFunctionCall %6 %10 %65
+               OpStore %44 %66
+         %67 = OpLoad %46 %48
+         %69 = OpIAdd %46 %67 %68
+               OpStore %48 %69
+               OpBranch %50
+         %52 = OpLabel
+         %70 = OpLoad %6 %44
+         %71 = OpFOrdEqual %14 %70 %13
+               OpSelectionMerge %73 None
+               OpBranchConditional %71 %72 %77
+         %72 = OpLabel
+               OpStore %75 %76
+               OpBranch %73
+         %77 = OpLabel
+               OpStore %75 %78
+               OpBranch %73
+         %73 = OpLabel
+               OpReturn
+               OpFunctionEnd
+         %10 = OpFunction %6 None %8
+          %9 = OpFunctionParameter %7
+         %11 = OpLabel
+         %12 = OpLoad %6 %9
+         %15 = OpFOrdGreaterThan %14 %12 %13
+               OpSelectionMerge %17 None
+               OpBranchConditional %15 %16 %17
+         %16 = OpLabel
+         %24 = OpAccessChain %23 %20 %22
+         %25 = OpLoad %6 %24
+         %27 = OpFOrdLessThan %14 %25 %26
+               OpSelectionMerge %29 None
+               OpBranchConditional %27 %28 %31
+         %28 = OpLabel
+               OpKill
+         %31 = OpLabel
+         %33 = OpAccessChain %23 %20 %32
+         %34 = OpLoad %6 %33
+         %35 = OpFOrdLessThan %14 %34 %26
+               OpSelectionMerge %37 None
+               OpBranchConditional %35 %36 %37
+         %36 = OpLabel
+               OpKill
+         %37 = OpLabel
+               OpBranch %29
+         %29 = OpLabel
+               OpBranch %17
+         %17 = OpLabel
+         %39 = OpLoad %6 %9
+         %41 = OpFAdd %6 %39 %40
+               OpReturnValue %41
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# five
+BUFFER variant_five DATA_TYPE int32 DATA
+ 5
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_five AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/create-color-in-do-while-for-loop.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/create-color-in-do-while-for-loop.amber
new file mode 100644
index 0000000..3fc9fe5
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/create-color-in-do-while-for-loop.amber
@@ -0,0 +1,285 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: A fragment shader that creates the color inside two loops
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     vec2 injectionSwitch;
+# };
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     vec2 v = vec2(0);
+#     float floats[9];
+#     floats[1] = 0.0;
+#     int one = int(injectionSwitch.y);
+#
+#     // Iterates once.
+#     do
+#     {
+#         for (int i = 0; i < one; i++)
+#         {
+#             if (i == 0)
+#             {
+#                 bool alwaysFalse = injectionSwitch.x > injectionSwitch.y;
+#
+#                 if (!alwaysFalse)
+#                 {
+#                     floats[one] = 1.0;
+#                     _GLF_color = vec4(1.0, 1.0, 0.0, 1.0);
+#                 }
+#
+#                 v[one] = 1.0;
+#
+#                 if (alwaysFalse)
+#                     discard;
+#
+#                 // Always false.
+#                 if (injectionSwitch.y < 0.0)
+#                     _GLF_color = vec4(0.0, 1.0, 0.0, 1.0);
+#             }
+#         }
+#     } while (one < 0);
+#
+#     // Always true.
+#     if (gl_FragCoord.y >= 0.0)
+#     {
+#         // Always true.
+#         if (v.y == 1.0 && floats[1] == 1.0)
+#             _GLF_color = vec4(1, 0, 0, 1);
+#     }
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 107
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %67 %86
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "v"
+               OpName %16 "floats"
+               OpName %22 "one"
+               OpName %23 "buf0"
+               OpMemberName %23 0 "injectionSwitch"
+               OpName %25 ""
+               OpName %36 "i"
+               OpName %51 "alwaysFalse"
+               OpName %67 "_GLF_color"
+               OpName %86 "gl_FragCoord"
+               OpMemberDecorate %23 0 Offset 0
+               OpDecorate %23 Block
+               OpDecorate %25 DescriptorSet 0
+               OpDecorate %25 Binding 0
+               OpDecorate %67 Location 0
+               OpDecorate %86 BuiltIn FragCoord
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 2
+          %8 = OpTypePointer Function %7
+         %10 = OpConstant %6 0
+         %11 = OpConstantComposite %7 %10 %10
+         %12 = OpTypeInt 32 0
+         %13 = OpConstant %12 9
+         %14 = OpTypeArray %6 %13
+         %15 = OpTypePointer Function %14
+         %17 = OpTypeInt 32 1
+         %18 = OpConstant %17 1
+         %19 = OpTypePointer Function %6
+         %21 = OpTypePointer Function %17
+         %23 = OpTypeStruct %7
+         %24 = OpTypePointer Uniform %23
+         %25 = OpVariable %24 Uniform
+         %26 = OpConstant %17 0
+         %27 = OpConstant %12 1
+         %28 = OpTypePointer Uniform %6
+         %44 = OpTypeBool
+         %50 = OpTypePointer Function %44
+         %52 = OpConstant %12 0
+         %63 = OpConstant %6 1
+         %65 = OpTypeVector %6 4
+         %66 = OpTypePointer Output %65
+         %67 = OpVariable %66 Output
+         %68 = OpConstantComposite %65 %63 %63 %10 %63
+         %80 = OpConstantComposite %65 %10 %63 %10 %63
+         %85 = OpTypePointer Input %65
+         %86 = OpVariable %85 Input
+         %87 = OpTypePointer Input %6
+        %104 = OpConstantComposite %65 %63 %10 %10 %63
+        %106 = OpConstantComposite %65 %10 %10 %10 %10
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %9 = OpVariable %8 Function
+         %16 = OpVariable %15 Function
+         %22 = OpVariable %21 Function
+         %36 = OpVariable %21 Function
+         %51 = OpVariable %50 Function
+               OpStore %9 %11
+         %20 = OpAccessChain %19 %16 %18
+               OpStore %20 %10
+         %29 = OpAccessChain %28 %25 %26 %27
+         %30 = OpLoad %6 %29
+         %31 = OpConvertFToS %17 %30
+               OpStore %22 %31
+               OpBranch %32
+         %32 = OpLabel
+               OpLoopMerge %34 %35 None
+               OpBranch %33
+         %33 = OpLabel
+               OpStore %36 %26
+               OpBranch %37
+         %37 = OpLabel
+               OpLoopMerge %39 %40 None
+               OpBranch %41
+         %41 = OpLabel
+         %42 = OpLoad %17 %36
+         %43 = OpLoad %17 %22
+         %45 = OpSLessThan %44 %42 %43
+               OpBranchConditional %45 %38 %39
+         %38 = OpLabel
+         %46 = OpLoad %17 %36
+         %47 = OpIEqual %44 %46 %26
+               OpSelectionMerge %49 None
+               OpBranchConditional %47 %48 %49
+         %48 = OpLabel
+         %53 = OpAccessChain %28 %25 %26 %52
+         %54 = OpLoad %6 %53
+         %55 = OpAccessChain %28 %25 %26 %27
+         %56 = OpLoad %6 %55
+         %57 = OpFOrdGreaterThan %44 %54 %56
+               OpStore %51 %57
+         %58 = OpLoad %44 %51
+         %59 = OpLogicalNot %44 %58
+               OpSelectionMerge %61 None
+               OpBranchConditional %59 %60 %61
+         %60 = OpLabel
+         %62 = OpLoad %17 %22
+         %64 = OpAccessChain %19 %16 %62
+               OpStore %64 %63
+               OpStore %67 %68
+               OpBranch %61
+         %61 = OpLabel
+         %69 = OpLoad %17 %22
+         %70 = OpAccessChain %19 %9 %69
+               OpStore %70 %63
+         %71 = OpLoad %44 %51
+               OpSelectionMerge %73 None
+               OpBranchConditional %71 %72 %73
+         %72 = OpLabel
+               OpKill
+         %73 = OpLabel
+         %75 = OpAccessChain %28 %25 %26 %27
+         %76 = OpLoad %6 %75
+         %77 = OpFOrdLessThan %44 %76 %10
+               OpSelectionMerge %79 None
+               OpBranchConditional %77 %78 %79
+         %78 = OpLabel
+               OpStore %67 %80
+               OpBranch %79
+         %79 = OpLabel
+               OpBranch %49
+         %49 = OpLabel
+               OpBranch %40
+         %40 = OpLabel
+         %81 = OpLoad %17 %36
+         %82 = OpIAdd %17 %81 %18
+               OpStore %36 %82
+               OpBranch %37
+         %39 = OpLabel
+               OpBranch %35
+         %35 = OpLabel
+         %83 = OpLoad %17 %22
+         %84 = OpSLessThan %44 %83 %26
+               OpBranchConditional %84 %32 %34
+         %34 = OpLabel
+         %88 = OpAccessChain %87 %86 %27
+         %89 = OpLoad %6 %88
+         %90 = OpFOrdGreaterThanEqual %44 %89 %10
+               OpSelectionMerge %92 None
+               OpBranchConditional %90 %91 %105
+         %91 = OpLabel
+         %93 = OpAccessChain %19 %9 %27
+         %94 = OpLoad %6 %93
+         %95 = OpFOrdEqual %44 %94 %63
+               OpSelectionMerge %97 None
+               OpBranchConditional %95 %96 %97
+         %96 = OpLabel
+         %98 = OpAccessChain %19 %16 %18
+         %99 = OpLoad %6 %98
+        %100 = OpFOrdEqual %44 %99 %63
+               OpBranch %97
+         %97 = OpLabel
+        %101 = OpPhi %44 %95 %91 %100 %96
+               OpSelectionMerge %103 None
+               OpBranchConditional %101 %102 %103
+        %102 = OpLabel
+               OpStore %67 %104
+               OpBranch %103
+        %103 = OpLabel
+               OpBranch %92
+        %105 = OpLabel
+               OpStore %67 %106
+               OpBranch %92
+         %92 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# injectionSwitch
+BUFFER variant_injectionSwitch DATA_TYPE vec2<float> DATA
+ 0.0 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_injectionSwitch AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/do-while-false-loops.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/do-while-false-loops.amber
new file mode 100644
index 0000000..ea0a7dd
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/do-while-false-loops.amber
@@ -0,0 +1,199 @@
+#!amber
+
+# Copyright 2019 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: Code wrapped in nested single iteration loops
+
+# The test passes because the first return statement in 'f' is guaranteed to be hit on the first loop iteration, so that red is written to the framebuffer
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# vec3 f()
+# {
+#  int iteration = 0;
+#  for(
+#      int k = 0;
+#      k < 100;
+#      k ++
+#  )
+#   {
+#    iteration ++;
+#   }
+#  if(iteration < 100)
+#   {
+#    return vec3(1.0, float(iteration - 1), float(iteration - 1));
+#   }
+#  else
+#   {
+#    do
+#     {
+#      do
+#       {
+#        return vec3(1.0, 0.0, 0.0);
+#       }
+#      while(false);
+#     }
+#    while(false);
+#   }
+# }
+# void main()
+# {
+#  _GLF_color = vec4(f(), 1.0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 65
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %59
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %9 "f("
+               OpName %13 "iteration"
+               OpName %15 "k"
+               OpName %59 "_GLF_color"
+               OpDecorate %13 RelaxedPrecision
+               OpDecorate %15 RelaxedPrecision
+               OpDecorate %21 RelaxedPrecision
+               OpDecorate %25 RelaxedPrecision
+               OpDecorate %27 RelaxedPrecision
+               OpDecorate %28 RelaxedPrecision
+               OpDecorate %29 RelaxedPrecision
+               OpDecorate %30 RelaxedPrecision
+               OpDecorate %35 RelaxedPrecision
+               OpDecorate %36 RelaxedPrecision
+               OpDecorate %38 RelaxedPrecision
+               OpDecorate %39 RelaxedPrecision
+               OpDecorate %59 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 3
+          %8 = OpTypeFunction %7
+         %11 = OpTypeInt 32 1
+         %12 = OpTypePointer Function %11
+         %14 = OpConstant %11 0
+         %22 = OpConstant %11 100
+         %23 = OpTypeBool
+         %26 = OpConstant %11 1
+         %34 = OpConstant %6 1
+         %52 = OpConstant %6 0
+         %53 = OpConstantComposite %7 %34 %52 %52
+         %55 = OpConstantFalse %23
+         %57 = OpTypeVector %6 4
+         %58 = OpTypePointer Output %57
+         %59 = OpVariable %58 Output
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %60 = OpFunctionCall %7 %9
+         %61 = OpCompositeExtract %6 %60 0
+         %62 = OpCompositeExtract %6 %60 1
+         %63 = OpCompositeExtract %6 %60 2
+         %64 = OpCompositeConstruct %57 %61 %62 %63 %34
+               OpStore %59 %64
+               OpReturn
+               OpFunctionEnd
+          %9 = OpFunction %7 None %8
+         %10 = OpLabel
+         %13 = OpVariable %12 Function
+         %15 = OpVariable %12 Function
+               OpStore %13 %14
+               OpStore %15 %14
+               OpBranch %16
+         %16 = OpLabel
+               OpLoopMerge %18 %19 None
+               OpBranch %20
+         %20 = OpLabel
+         %21 = OpLoad %11 %15
+         %24 = OpSLessThan %23 %21 %22
+               OpBranchConditional %24 %17 %18
+         %17 = OpLabel
+         %25 = OpLoad %11 %13
+         %27 = OpIAdd %11 %25 %26
+               OpStore %13 %27
+               OpBranch %19
+         %19 = OpLabel
+         %28 = OpLoad %11 %15
+         %29 = OpIAdd %11 %28 %26
+               OpStore %15 %29
+               OpBranch %16
+         %18 = OpLabel
+         %30 = OpLoad %11 %13
+         %31 = OpSLessThan %23 %30 %22
+               OpSelectionMerge %33 None
+               OpBranchConditional %31 %32 %43
+         %32 = OpLabel
+         %35 = OpLoad %11 %13
+         %36 = OpISub %11 %35 %26
+         %37 = OpConvertSToF %6 %36
+         %38 = OpLoad %11 %13
+         %39 = OpISub %11 %38 %26
+         %40 = OpConvertSToF %6 %39
+         %41 = OpCompositeConstruct %7 %34 %37 %40
+               OpReturnValue %41
+         %43 = OpLabel
+               OpBranch %44
+         %44 = OpLabel
+               OpLoopMerge %46 %47 None
+               OpBranch %45
+         %45 = OpLabel
+               OpBranch %48
+         %48 = OpLabel
+               OpLoopMerge %50 %51 None
+               OpBranch %49
+         %49 = OpLabel
+               OpReturnValue %53
+         %51 = OpLabel
+               OpBranch %48
+         %50 = OpLabel
+               OpUnreachable
+         %47 = OpLabel
+               OpBranch %44
+         %46 = OpLabel
+               OpUnreachable
+         %33 = OpLabel
+               OpUnreachable
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/do-while-with-if-condition.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/do-while-with-if-condition.amber
new file mode 100644
index 0000000..f174922
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/do-while-with-if-condition.amber
@@ -0,0 +1,208 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: A fragment shader that has nested if condition in do while
+
+# The test passes because shader always writes red.
+
+# Optimized using spirv-opt with the following arguments:
+# '--eliminate-dead-code-aggressive'
+# '--copy-propagate-arrays'
+# '--copy-propagate-arrays'
+# '--vector-dce'
+# '--redundancy-elimination'
+# '--eliminate-local-single-block'
+# '--redundancy-elimination'
+# '--eliminate-dead-branches'
+# '--merge-return'
+# '--eliminate-dead-branches'
+# '--merge-return'
+# '--combine-access-chains'
+# '--redundancy-elimination'
+# '--private-to-local'
+# '--simplify-instructions'
+# '--ccp'
+# '--eliminate-local-multi-store'
+# '--inline-entry-points-exhaustive'
+# '--if-conversion'
+# '--eliminate-dead-inserts'
+# spirv-opt commit hash: ab7ac60f14ae66006bed5c989a2cfd4c4881704c
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# float one()
+# {
+#     return 1.0;
+# }
+#
+# void main()
+# {
+#     vec2 v = vec2(0);
+#     bool alwaysFalse = gl_FragCoord.x < -1.0;
+#
+#     do
+#     {
+#         if (v.x < 2.0) // Always true
+#         {
+#             if (!alwaysFalse)
+#                 v[int(one())] = 1.0;
+#         }
+#     } while (alwaysFalse);
+#
+#     if (v[0] == 0.0 && v[1] == 1.0)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 72
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %23 %64
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "one("
+               OpName %15 "v"
+               OpName %20 "alwaysFalse"
+               OpName %23 "gl_FragCoord"
+               OpName %64 "_GLF_color"
+               OpDecorate %23 BuiltIn FragCoord
+               OpDecorate %64 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeFunction %6
+         %10 = OpConstant %6 1
+         %13 = OpTypeVector %6 2
+         %14 = OpTypePointer Function %13
+         %16 = OpConstant %6 0
+         %17 = OpConstantComposite %13 %16 %16
+         %18 = OpTypeBool
+         %19 = OpTypePointer Function %18
+         %21 = OpTypeVector %6 4
+         %22 = OpTypePointer Input %21
+         %23 = OpVariable %22 Input
+         %24 = OpTypeInt 32 0
+         %25 = OpConstant %24 0
+         %26 = OpTypePointer Input %6
+         %29 = OpConstant %6 -1
+         %35 = OpTypePointer Function %6
+         %38 = OpConstant %6 2
+         %47 = OpTypeInt 32 1
+         %56 = OpConstant %24 1
+         %63 = OpTypePointer Output %21
+         %64 = OpVariable %63 Output
+         %65 = OpConstantComposite %21 %10 %16 %16 %10
+         %67 = OpConstantComposite %21 %16 %16 %16 %16
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %71 = OpVariable %35 Function
+         %15 = OpVariable %14 Function
+         %20 = OpVariable %19 Function
+               OpStore %15 %17
+         %27 = OpAccessChain %26 %23 %25
+         %28 = OpLoad %6 %27
+         %30 = OpFOrdLessThan %18 %28 %29
+               OpStore %20 %30
+               OpBranch %31
+         %31 = OpLabel
+               OpLoopMerge %33 %34 None
+               OpBranch %32
+         %32 = OpLabel
+         %36 = OpAccessChain %35 %15 %25
+         %37 = OpLoad %6 %36
+         %39 = OpFOrdLessThan %18 %37 %38
+               OpSelectionMerge %41 None
+               OpBranchConditional %39 %40 %41
+         %40 = OpLabel
+         %43 = OpLogicalNot %18 %30
+               OpSelectionMerge %45 None
+               OpBranchConditional %43 %44 %45
+         %44 = OpLabel
+               OpStore %71 %10
+         %46 = OpLoad %6 %71
+         %48 = OpConvertFToS %47 %46
+         %49 = OpAccessChain %35 %15 %48
+               OpStore %49 %10
+               OpBranch %45
+         %45 = OpLabel
+               OpBranch %41
+         %41 = OpLabel
+               OpBranch %34
+         %34 = OpLabel
+               OpBranchConditional %30 %31 %33
+         %33 = OpLabel
+         %52 = OpLoad %6 %36
+         %53 = OpFOrdEqual %18 %52 %16
+               OpSelectionMerge %55 None
+               OpBranchConditional %53 %54 %55
+         %54 = OpLabel
+         %57 = OpAccessChain %35 %15 %56
+         %58 = OpLoad %6 %57
+         %59 = OpFOrdEqual %18 %58 %10
+               OpBranch %55
+         %55 = OpLabel
+         %60 = OpPhi %18 %53 %33 %59 %54
+               OpSelectionMerge %62 None
+               OpBranchConditional %60 %61 %66
+         %61 = OpLabel
+               OpStore %64 %65
+               OpBranch %62
+         %66 = OpLabel
+               OpStore %64 %67
+               OpBranch %62
+         %62 = OpLabel
+               OpReturn
+               OpFunctionEnd
+          %8 = OpFunction %6 None %7
+          %9 = OpLabel
+               OpReturnValue %10
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/find-msb-from-lsb.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/find-msb-from-lsb.amber
new file mode 100644
index 0000000..8670e77
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/find-msb-from-lsb.amber
@@ -0,0 +1,191 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: A fragment shader that finds MSB from LSB
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     // State of variables/expressions after "result += x;".
+#     //
+#     // i  x  i >> x  findLSB  findMSB  result
+#     // 0  0  0       -1       -1       0
+#     // 0  1  0       -1       -1       1
+#     // 1  0  1        0       -1       1
+#     // 1  1  0       -1       -1       2
+#
+#     int result = 0;
+#     for (int i = 0; i < 2; i++)
+#     {
+#         for (int x = 0; x < 2; x++)
+#         {
+#             // findMSB(findLSB(i >> x)) is always -1.
+#             for ( ; x > findMSB(findLSB(i >> x)) && x < 2; x++)
+#             {
+#                 result += x;
+#             }
+#         }
+#     }
+#     if (result == 2)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0, 0, 0, 1);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 66
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %60
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "result"
+               OpName %10 "i"
+               OpName %20 "x"
+               OpName %60 "_GLF_color"
+               OpDecorate %60 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %9 = OpConstant %6 0
+         %17 = OpConstant %6 2
+         %18 = OpTypeBool
+         %47 = OpConstant %6 1
+         %57 = OpTypeFloat 32
+         %58 = OpTypeVector %57 4
+         %59 = OpTypePointer Output %58
+         %60 = OpVariable %59 Output
+         %61 = OpConstant %57 1
+         %62 = OpConstant %57 0
+         %63 = OpConstantComposite %58 %61 %62 %62 %61
+         %65 = OpConstantComposite %58 %62 %62 %62 %61
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %10 = OpVariable %7 Function
+         %20 = OpVariable %7 Function
+               OpStore %8 %9
+               OpStore %10 %9
+               OpBranch %11
+         %11 = OpLabel
+               OpLoopMerge %13 %14 None
+               OpBranch %15
+         %15 = OpLabel
+         %16 = OpLoad %6 %10
+         %19 = OpSLessThan %18 %16 %17
+               OpBranchConditional %19 %12 %13
+         %12 = OpLabel
+               OpStore %20 %9
+               OpBranch %21
+         %21 = OpLabel
+               OpLoopMerge %23 %24 None
+               OpBranch %25
+         %25 = OpLabel
+         %26 = OpLoad %6 %20
+         %27 = OpSLessThan %18 %26 %17
+               OpBranchConditional %27 %22 %23
+         %22 = OpLabel
+               OpBranch %28
+         %28 = OpLabel
+               OpLoopMerge %30 %31 None
+               OpBranch %32
+         %32 = OpLabel
+         %33 = OpLoad %6 %20
+         %34 = OpLoad %6 %10
+         %35 = OpLoad %6 %20
+         %36 = OpShiftRightArithmetic %6 %34 %35
+         %37 = OpExtInst %6 %1 FindILsb %36
+         %38 = OpExtInst %6 %1 FindSMsb %37
+         %39 = OpSGreaterThan %18 %33 %38
+         %40 = OpLoad %6 %20
+         %41 = OpSLessThan %18 %40 %17
+         %42 = OpLogicalAnd %18 %39 %41
+               OpBranchConditional %42 %29 %30
+         %29 = OpLabel
+         %43 = OpLoad %6 %20
+         %44 = OpLoad %6 %8
+         %45 = OpIAdd %6 %44 %43
+               OpStore %8 %45
+               OpBranch %31
+         %31 = OpLabel
+         %46 = OpLoad %6 %20
+         %48 = OpIAdd %6 %46 %47
+               OpStore %20 %48
+               OpBranch %28
+         %30 = OpLabel
+               OpBranch %24
+         %24 = OpLabel
+         %49 = OpLoad %6 %20
+         %50 = OpIAdd %6 %49 %47
+               OpStore %20 %50
+               OpBranch %21
+         %23 = OpLabel
+               OpBranch %14
+         %14 = OpLabel
+         %51 = OpLoad %6 %10
+         %52 = OpIAdd %6 %51 %47
+               OpStore %10 %52
+               OpBranch %11
+         %13 = OpLabel
+         %53 = OpLoad %6 %8
+         %54 = OpIEqual %18 %53 %17
+               OpSelectionMerge %56 None
+               OpBranchConditional %54 %55 %64
+         %55 = OpLabel
+               OpStore %60 %63
+               OpBranch %56
+         %64 = OpLabel
+               OpStore %60 %65
+               OpBranch %56
+         %56 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/frag-coord-func-call-and-ifs.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/frag-coord-func-call-and-ifs.amber
new file mode 100644
index 0000000..455aed9
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/frag-coord-func-call-and-ifs.amber
@@ -0,0 +1,350 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: A fragment shader with many uses of gl_FragCoord
+
+# The test passes because the shader always write red.
+
+# Optimized using spirv-opt with the following arguments:
+# '--scalar-replacement=100'
+# '--vector-dce'
+# '--combine-access-chains'
+# '--convert-local-access-chains'
+# '--eliminate-dead-code-aggressive'
+# '--private-to-local'
+# '--combine-access-chains'
+# '--reduce-load-size'
+# '--eliminate-dead-inserts'
+# '--combine-access-chains'
+# '--eliminate-local-single-store'
+# '--eliminate-local-single-block'
+# '--inline-entry-points-exhaustive'
+# '--combine-access-chains'
+# spirv-opt commit hash: e95fbfb1f509ad7a7fdfb72ac35fe412d72fc4a4
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+#
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0 {
+#   // Always (0.0, 1.0).
+#   vec2 injectionSwitch;
+# };
+#
+# // coord is gl_FragCoord.xy.
+# // Always returns 0.
+# int alwaysZero(vec2 coord)
+# {
+#   // injectionSwitch.y is 1.0.
+#   float a = coord.y        < 50.0 ? injectionSwitch.y : 0.0;
+#   float b = gl_FragCoord.y < 50.0 ? 1.0               : 0.0;
+#
+#   // a == b. Thus, the condition is always true.
+#   if (a - b < 1.0)
+#   {
+#     return 0;
+#   }
+#   return 1;
+# }
+#
+# void main()
+# {
+#   int zero = alwaysZero(gl_FragCoord.xy);
+#
+#   // Always false.
+#   if (zero == 1)
+#   {
+#     return;
+#   }
+#
+#   // All conditions below are true.
+#   // So _GLF_color will end up as red: (1.0, 0.0, 0.0, 1.0).
+#    _GLF_color = vec4(0.0, 1.0, 1.0, 1.0);
+#
+#   // Always true.
+#   if (gl_FragCoord.x >= injectionSwitch.x)
+#   {
+#     // Always true.
+#     if (gl_FragCoord.y >= 0.0)
+#     {
+#       // _GLF_color.x = 1.0;
+#       _GLF_color.x = injectionSwitch.y;
+#     }
+#   }
+#
+#   // Always true.
+#   if (gl_FragCoord.y >= 0.0)
+#   {
+#     // _GLF_color.y = 0.0;
+#     _GLF_color.y = injectionSwitch.x;
+#   }
+#
+#   vec2 temp = vec2(gl_FragCoord.xy);
+#
+#   // Always true.
+#   if (temp.y >= 0.0)
+#   {
+#     // _GLF_color.z = 0.0;
+#     _GLF_color.z = injectionSwitch.x;
+#   }
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 137
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %39 %68
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %12 "alwaysZero(vf2;"
+               OpName %11 "coord"
+               OpName %15 "a"
+               OpName %26 "buf0"
+               OpMemberName %26 0 "injectionSwitch"
+               OpName %28 ""
+               OpName %36 "b"
+               OpName %39 "gl_FragCoord"
+               OpName %57 "zero"
+               OpName %58 "param"
+               OpName %68 "_GLF_color"
+               OpName %95 "temp"
+               OpMemberDecorate %26 0 Offset 0
+               OpDecorate %26 Block
+               OpDecorate %28 DescriptorSet 0
+               OpDecorate %28 Binding 0
+               OpDecorate %39 BuiltIn FragCoord
+               OpDecorate %68 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 2
+          %8 = OpTypePointer Function %7
+          %9 = OpTypeInt 32 1
+         %10 = OpTypeFunction %9 %8
+         %14 = OpTypePointer Function %6
+         %16 = OpTypeInt 32 0
+         %17 = OpConstant %16 1
+         %20 = OpConstant %6 50
+         %21 = OpTypeBool
+         %26 = OpTypeStruct %7
+         %27 = OpTypePointer Uniform %26
+         %28 = OpVariable %27 Uniform
+         %29 = OpConstant %9 0
+         %30 = OpTypePointer Uniform %6
+         %34 = OpConstant %6 0
+         %37 = OpTypeVector %6 4
+         %38 = OpTypePointer Input %37
+         %39 = OpVariable %38 Input
+         %40 = OpTypePointer Input %6
+         %44 = OpConstant %6 1
+         %53 = OpConstant %9 1
+         %56 = OpTypePointer Function %9
+         %67 = OpTypePointer Output %37
+         %68 = OpVariable %67 Output
+         %69 = OpConstantComposite %37 %34 %44 %44 %44
+         %70 = OpConstant %16 0
+         %85 = OpTypePointer Output %6
+        %108 = OpConstant %16 2
+        %136 = OpConstantFalse %21
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+        %111 = OpVariable %14 Function
+        %112 = OpVariable %14 Function
+        %113 = OpVariable %14 Function
+        %114 = OpVariable %56 Function
+         %57 = OpVariable %56 Function
+         %58 = OpVariable %8 Function
+         %95 = OpVariable %8 Function
+         %59 = OpLoad %37 %39
+         %60 = OpVectorShuffle %7 %59 %59 0 1
+               OpStore %58 %60
+               OpBranch %115
+        %115 = OpLabel
+               OpLoopMerge %116 %117 None
+               OpBranch %118
+        %118 = OpLabel
+        %119 = OpAccessChain %14 %58 %17
+        %120 = OpLoad %6 %119
+        %121 = OpFOrdLessThan %21 %120 %20
+               OpSelectionMerge %122 None
+               OpBranchConditional %121 %123 %124
+        %123 = OpLabel
+        %125 = OpAccessChain %30 %28 %29 %17
+        %126 = OpLoad %6 %125
+               OpStore %112 %126
+               OpBranch %122
+        %124 = OpLabel
+               OpStore %112 %34
+               OpBranch %122
+        %122 = OpLabel
+        %127 = OpLoad %6 %112
+               OpStore %111 %127
+        %128 = OpAccessChain %40 %39 %17
+        %129 = OpLoad %6 %128
+        %130 = OpFOrdLessThan %21 %129 %20
+        %131 = OpSelect %6 %130 %44 %34
+               OpStore %113 %131
+        %132 = OpFSub %6 %127 %131
+        %133 = OpFOrdLessThan %21 %132 %44
+               OpSelectionMerge %134 None
+               OpBranchConditional %133 %135 %134
+        %135 = OpLabel
+               OpStore %114 %29
+               OpBranch %116
+        %134 = OpLabel
+               OpStore %114 %53
+               OpBranch %116
+        %117 = OpLabel
+               OpBranchConditional %136 %115 %116
+        %116 = OpLabel
+         %61 = OpLoad %9 %114
+               OpStore %57 %61
+         %63 = OpIEqual %21 %61 %53
+               OpSelectionMerge %65 None
+               OpBranchConditional %63 %64 %65
+         %64 = OpLabel
+               OpReturn
+         %65 = OpLabel
+               OpStore %68 %69
+         %71 = OpAccessChain %40 %39 %70
+         %72 = OpLoad %6 %71
+         %73 = OpAccessChain %30 %28 %29 %70
+         %74 = OpLoad %6 %73
+         %75 = OpFOrdGreaterThanEqual %21 %72 %74
+               OpSelectionMerge %77 None
+               OpBranchConditional %75 %76 %77
+         %76 = OpLabel
+         %78 = OpAccessChain %40 %39 %17
+         %79 = OpLoad %6 %78
+         %80 = OpFOrdGreaterThanEqual %21 %79 %34
+               OpSelectionMerge %82 None
+               OpBranchConditional %80 %81 %82
+         %81 = OpLabel
+         %83 = OpAccessChain %30 %28 %29 %17
+         %84 = OpLoad %6 %83
+         %86 = OpAccessChain %85 %68 %70
+               OpStore %86 %84
+               OpBranch %82
+         %82 = OpLabel
+               OpBranch %77
+         %77 = OpLabel
+         %87 = OpAccessChain %40 %39 %17
+         %88 = OpLoad %6 %87
+         %89 = OpFOrdGreaterThanEqual %21 %88 %34
+               OpSelectionMerge %91 None
+               OpBranchConditional %89 %90 %91
+         %90 = OpLabel
+         %92 = OpAccessChain %30 %28 %29 %70
+         %93 = OpLoad %6 %92
+         %94 = OpAccessChain %85 %68 %17
+               OpStore %94 %93
+               OpBranch %91
+         %91 = OpLabel
+         %96 = OpLoad %37 %39
+         %97 = OpVectorShuffle %7 %96 %96 0 1
+         %98 = OpCompositeExtract %6 %97 0
+         %99 = OpCompositeExtract %6 %97 1
+        %100 = OpCompositeConstruct %7 %98 %99
+               OpStore %95 %100
+        %102 = OpCompositeExtract %6 %100 1
+        %103 = OpFOrdGreaterThanEqual %21 %102 %34
+               OpSelectionMerge %105 None
+               OpBranchConditional %103 %104 %105
+        %104 = OpLabel
+        %106 = OpAccessChain %30 %28 %29 %70
+        %107 = OpLoad %6 %106
+        %109 = OpAccessChain %85 %68 %108
+               OpStore %109 %107
+               OpBranch %105
+        %105 = OpLabel
+               OpReturn
+               OpFunctionEnd
+         %12 = OpFunction %9 None %10
+         %11 = OpFunctionParameter %8
+         %13 = OpLabel
+         %15 = OpVariable %14 Function
+         %23 = OpVariable %14 Function
+         %36 = OpVariable %14 Function
+         %18 = OpAccessChain %14 %11 %17
+         %19 = OpLoad %6 %18
+         %22 = OpFOrdLessThan %21 %19 %20
+               OpSelectionMerge %25 None
+               OpBranchConditional %22 %24 %33
+         %24 = OpLabel
+         %31 = OpAccessChain %30 %28 %29 %17
+         %32 = OpLoad %6 %31
+               OpStore %23 %32
+               OpBranch %25
+         %33 = OpLabel
+               OpStore %23 %34
+               OpBranch %25
+         %25 = OpLabel
+         %35 = OpLoad %6 %23
+               OpStore %15 %35
+         %41 = OpAccessChain %40 %39 %17
+         %42 = OpLoad %6 %41
+         %43 = OpFOrdLessThan %21 %42 %20
+         %45 = OpSelect %6 %43 %44 %34
+               OpStore %36 %45
+         %48 = OpFSub %6 %35 %45
+         %49 = OpFOrdLessThan %21 %48 %44
+               OpSelectionMerge %51 None
+               OpBranchConditional %49 %50 %51
+         %50 = OpLabel
+               OpReturnValue %29
+         %51 = OpLabel
+               OpReturnValue %53
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# injectionSwitch
+BUFFER variant_injectionSwitch DATA_TYPE vec2<float> DATA
+ 0.0 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_injectionSwitch AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/function-with-float-comparison.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/function-with-float-comparison.amber
new file mode 100644
index 0000000..5500f3e
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/function-with-float-comparison.amber
@@ -0,0 +1,486 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: A fragment shader that compares a float and a coordinate
+
+# The test passes because shader always writes red.
+
+# Optimized using spirv-opt with the following arguments:
+# '--redundancy-elimination'
+# '--redundancy-elimination'
+# '--private-to-local'
+# '--eliminate-dead-inserts'
+# '--eliminate-dead-code-aggressive'
+# '--combine-access-chains'
+# '--reduce-load-size'
+# '--inline-entry-points-exhaustive'
+# '--vector-dce'
+# '--eliminate-dead-branches'
+# '--merge-blocks'
+# '--copy-propagate-arrays'
+# '--vector-dce'
+# '--eliminate-dead-branches'
+# '--merge-blocks'
+# '--eliminate-dead-branches'
+# '--merge-return'
+# '--combine-access-chains'
+# '--eliminate-dead-inserts'
+# '--eliminate-dead-branches'
+# '--if-conversion'
+# '--inline-entry-points-exhaustive'
+# '--simplify-instructions'
+# '--eliminate-local-single-store'
+# '--eliminate-dead-branches'
+# '--eliminate-local-single-block'
+# '--eliminate-local-multi-store'
+# '--convert-local-access-chains'
+# '--ccp'
+# spirv-opt commit hash: ab7ac60f14ae66006bed5c989a2cfd4c4881704c
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     vec2 injectionSwitch;
+# };
+# layout(location = 0) out vec4 _GLF_color;
+#
+# // Always returns 5.
+# float func()
+# {
+#     float zero = 0.0;
+#     bool alwaysFalse = gl_FragCoord.x < 0.0;
+#
+#     do
+#     {
+#         if (injectionSwitch.x < injectionSwitch.y) // Always true
+#         {
+#             while (int(zero) <= bitfieldInsert(101, 0, 0, 0))
+#             {
+#                 if (zero <= gl_FragCoord.x)
+#                     return 5.0; // Always returns here
+#
+#                 zero++;
+#             }
+#         }
+#     } while (alwaysFalse);
+#
+#     for (int u = 0; u < 1; u++)
+#     {
+#         if (!alwaysFalse)
+#             return zero;
+#     }
+#
+#     return 0.0;
+# }
+#
+# void main()
+# {
+#     float c = 0.0;
+#     for (int i = 0; i < 1; i++)
+#     {
+#         if (!(gl_FragCoord.x < 0.0)) // Always true
+#             c = func();
+#     }
+#
+#     if (c == 5.0)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 261
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %18 %109
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "func("
+               OpName %11 "zero"
+               OpName %15 "alwaysFalse"
+               OpName %18 "gl_FragCoord"
+               OpName %30 "buf0"
+               OpMemberName %30 0 "injectionSwitch"
+               OpName %32 ""
+               OpName %67 "u"
+               OpName %86 "c"
+               OpName %87 "i"
+               OpName %109 "_GLF_color"
+               OpDecorate %18 BuiltIn FragCoord
+               OpMemberDecorate %30 0 Offset 0
+               OpDecorate %30 Block
+               OpDecorate %32 DescriptorSet 0
+               OpDecorate %32 Binding 0
+               OpDecorate %109 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeFunction %6
+         %10 = OpTypePointer Function %6
+         %12 = OpConstant %6 0
+         %13 = OpTypeBool
+         %14 = OpTypePointer Function %13
+         %16 = OpTypeVector %6 4
+         %17 = OpTypePointer Input %16
+         %18 = OpVariable %17 Input
+         %19 = OpTypeInt 32 0
+         %20 = OpConstant %19 0
+         %21 = OpTypePointer Input %6
+         %29 = OpTypeVector %6 2
+         %30 = OpTypeStruct %29
+         %31 = OpTypePointer Uniform %30
+         %32 = OpVariable %31 Uniform
+         %33 = OpTypeInt 32 1
+         %34 = OpConstant %33 0
+         %35 = OpTypePointer Uniform %6
+         %38 = OpConstant %19 1
+         %51 = OpConstant %33 101
+         %60 = OpConstant %6 5
+         %63 = OpConstant %6 1
+         %66 = OpTypePointer Function %33
+         %74 = OpConstant %33 1
+        %108 = OpTypePointer Output %16
+        %109 = OpVariable %108 Output
+        %110 = OpConstantComposite %16 %63 %12 %12 %63
+        %112 = OpConstantComposite %16 %12 %12 %12 %12
+        %119 = OpConstantFalse %13
+        %121 = OpConstantTrue %13
+        %211 = OpUndef %6
+        %226 = OpUndef %13
+        %228 = OpUndef %33
+        %256 = OpUndef %6
+        %260 = OpUndef %13
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+        %128 = OpVariable %14 Function %119
+        %129 = OpVariable %10 Function
+        %130 = OpVariable %10 Function
+        %131 = OpVariable %14 Function
+        %132 = OpVariable %66 Function
+        %133 = OpVariable %10 Function
+         %86 = OpVariable %10 Function
+         %87 = OpVariable %66 Function
+               OpStore %86 %12
+               OpStore %87 %34
+               OpBranch %88
+         %88 = OpLabel
+        %210 = OpPhi %6 %211 %5 %227 %91
+        %188 = OpPhi %6 %12 %5 %225 %91
+        %187 = OpPhi %33 %34 %5 %103 %91
+         %94 = OpSLessThan %13 %187 %74
+               OpLoopMerge %90 %91 None
+               OpBranchConditional %94 %89 %90
+         %89 = OpLabel
+         %95 = OpAccessChain %21 %18 %20
+         %96 = OpLoad %6 %95
+         %97 = OpFOrdLessThan %13 %96 %12
+         %98 = OpLogicalNot %13 %97
+               OpSelectionMerge %100 None
+               OpBranchConditional %98 %99 %100
+         %99 = OpLabel
+               OpStore %128 %119
+               OpBranch %134
+        %134 = OpLabel
+        %221 = OpPhi %33 %187 %99 %228 %136
+        %209 = OpPhi %6 %210 %99 %211 %136
+        %194 = OpPhi %13 %119 %99 %226 %136
+               OpLoopMerge %135 %136 None
+               OpBranch %137
+        %137 = OpLabel
+               OpStore %130 %12
+        %138 = OpAccessChain %21 %18 %20
+        %139 = OpLoad %6 %138
+        %140 = OpFOrdLessThan %13 %139 %12
+               OpStore %131 %140
+               OpBranch %141
+        %141 = OpLabel
+        %193 = OpPhi %13 %119 %137 %196 %143
+        %190 = OpPhi %6 %12 %137 %201 %143
+        %220 = OpPhi %33 %221 %137 %222 %143
+        %208 = OpPhi %6 %209 %137 %212 %143
+               OpLoopMerge %142 %143 None
+               OpBranch %144
+        %144 = OpLabel
+        %145 = OpAccessChain %35 %32 %34 %20
+        %146 = OpLoad %6 %145
+        %147 = OpAccessChain %35 %32 %34 %38
+        %148 = OpLoad %6 %147
+        %149 = OpFOrdLessThan %13 %146 %148
+               OpSelectionMerge %150 None
+               OpBranchConditional %149 %151 %150
+        %151 = OpLabel
+               OpBranch %152
+        %152 = OpLabel
+        %189 = OpPhi %6 %190 %151 %165 %158
+        %154 = OpConvertFToS %33 %189
+        %155 = OpBitFieldInsert %33 %51 %34 %34 %34
+        %156 = OpSLessThanEqual %13 %154 %155
+               OpLoopMerge %157 %158 None
+               OpBranchConditional %156 %159 %157
+        %159 = OpLabel
+        %161 = OpFOrdLessThanEqual %13 %189 %139
+               OpSelectionMerge %162 None
+               OpBranchConditional %161 %163 %162
+        %163 = OpLabel
+               OpStore %128 %121
+               OpStore %129 %60
+               OpBranch %157
+        %162 = OpLabel
+        %165 = OpFAdd %6 %189 %63
+               OpStore %130 %165
+               OpBranch %158
+        %158 = OpLabel
+               OpBranch %152
+        %157 = OpLabel
+        %206 = OpPhi %6 %208 %152 %60 %163
+        %191 = OpPhi %13 %193 %152 %121 %163
+               OpSelectionMerge %167 None
+               OpBranchConditional %191 %142 %167
+        %167 = OpLabel
+               OpBranch %150
+        %150 = OpLabel
+        %222 = OpPhi %33 %220 %144 %220 %167
+        %212 = OpPhi %6 %208 %144 %206 %167
+        %201 = OpPhi %6 %190 %144 %189 %167
+        %196 = OpPhi %13 %193 %144 %191 %167
+               OpBranch %143
+        %143 = OpLabel
+               OpBranchConditional %140 %141 %142
+        %142 = OpLabel
+        %217 = OpPhi %33 %220 %157 %222 %143
+        %205 = OpPhi %6 %206 %157 %212 %143
+        %199 = OpPhi %6 %189 %157 %201 %143
+        %195 = OpPhi %13 %191 %157 %196 %143
+               OpSelectionMerge %170 None
+               OpBranchConditional %195 %135 %170
+        %170 = OpLabel
+               OpStore %132 %34
+               OpBranch %171
+        %171 = OpLabel
+        %197 = OpPhi %33 %34 %170 %183 %175
+        %173 = OpSLessThan %13 %197 %74
+               OpLoopMerge %174 %175 None
+               OpBranchConditional %173 %176 %174
+        %176 = OpLabel
+        %178 = OpLogicalNot %13 %140
+               OpSelectionMerge %179 None
+               OpBranchConditional %178 %180 %179
+        %180 = OpLabel
+               OpStore %128 %121
+               OpStore %129 %199
+               OpBranch %174
+        %179 = OpLabel
+               OpBranch %175
+        %175 = OpLabel
+        %183 = OpIAdd %33 %197 %74
+               OpStore %132 %183
+               OpBranch %171
+        %174 = OpLabel
+        %213 = OpPhi %6 %205 %171 %199 %180
+        %202 = OpPhi %13 %195 %171 %121 %180
+               OpSelectionMerge %185 None
+               OpBranchConditional %202 %135 %185
+        %185 = OpLabel
+               OpStore %128 %121
+               OpStore %129 %12
+               OpBranch %135
+        %136 = OpLabel
+               OpBranch %134
+        %135 = OpLabel
+        %204 = OpPhi %6 %205 %142 %213 %174 %12 %185
+               OpStore %133 %204
+               OpStore %86 %204
+               OpBranch %100
+        %100 = OpLabel
+        %227 = OpPhi %6 %210 %89 %204 %135
+        %225 = OpPhi %6 %188 %89 %204 %135
+        %215 = OpPhi %33 %187 %89 %217 %135
+               OpBranch %91
+         %91 = OpLabel
+        %103 = OpIAdd %33 %215 %74
+               OpStore %87 %103
+               OpBranch %88
+         %90 = OpLabel
+        %105 = OpFOrdEqual %13 %188 %60
+               OpSelectionMerge %107 None
+               OpBranchConditional %105 %106 %111
+        %106 = OpLabel
+               OpStore %109 %110
+               OpBranch %107
+        %111 = OpLabel
+               OpStore %109 %112
+               OpBranch %107
+        %107 = OpLabel
+               OpReturn
+               OpFunctionEnd
+          %8 = OpFunction %6 None %7
+          %9 = OpLabel
+        %120 = OpVariable %14 Function %119
+        %114 = OpVariable %10 Function
+         %11 = OpVariable %10 Function
+         %15 = OpVariable %14 Function
+         %67 = OpVariable %66 Function
+               OpBranch %116
+        %116 = OpLabel
+        %234 = OpPhi %13 %119 %9 %260 %118
+               OpLoopMerge %113 %118 None
+               OpBranch %117
+        %117 = OpLabel
+               OpStore %11 %12
+         %22 = OpAccessChain %21 %18 %20
+         %23 = OpLoad %6 %22
+         %24 = OpFOrdLessThan %13 %23 %12
+               OpStore %15 %24
+               OpBranch %25
+         %25 = OpLabel
+        %233 = OpPhi %13 %234 %117 %240 %28
+        %230 = OpPhi %6 %12 %117 %247 %28
+        %254 = OpPhi %6 %256 %117 %257 %28
+               OpLoopMerge %27 %28 None
+               OpBranch %26
+         %26 = OpLabel
+         %36 = OpAccessChain %35 %32 %34 %20
+         %37 = OpLoad %6 %36
+         %39 = OpAccessChain %35 %32 %34 %38
+         %40 = OpLoad %6 %39
+         %41 = OpFOrdLessThan %13 %37 %40
+               OpSelectionMerge %43 None
+               OpBranchConditional %41 %42 %43
+         %42 = OpLabel
+               OpBranch %44
+         %44 = OpLabel
+        %229 = OpPhi %6 %230 %42 %64 %47
+         %50 = OpConvertFToS %33 %229
+         %52 = OpBitFieldInsert %33 %51 %34 %34 %34
+         %53 = OpSLessThanEqual %13 %50 %52
+               OpLoopMerge %46 %47 None
+               OpBranchConditional %53 %45 %46
+         %45 = OpLabel
+         %57 = OpFOrdLessThanEqual %13 %229 %23
+               OpSelectionMerge %59 None
+               OpBranchConditional %57 %58 %59
+         %58 = OpLabel
+               OpStore %120 %121
+               OpStore %114 %60
+               OpBranch %46
+         %59 = OpLabel
+         %64 = OpFAdd %6 %229 %63
+               OpStore %11 %64
+               OpBranch %47
+         %47 = OpLabel
+               OpBranch %44
+         %46 = OpLabel
+        %252 = OpPhi %6 %254 %44 %60 %58
+        %231 = OpPhi %13 %233 %44 %121 %58
+               OpSelectionMerge %122 None
+               OpBranchConditional %231 %27 %122
+        %122 = OpLabel
+               OpBranch %43
+         %43 = OpLabel
+        %257 = OpPhi %6 %254 %26 %252 %122
+        %247 = OpPhi %6 %230 %26 %229 %122
+        %240 = OpPhi %13 %233 %26 %231 %122
+               OpBranch %28
+         %28 = OpLabel
+               OpBranchConditional %24 %25 %27
+         %27 = OpLabel
+        %251 = OpPhi %6 %252 %46 %257 %28
+        %245 = OpPhi %6 %229 %46 %247 %28
+        %239 = OpPhi %13 %231 %46 %240 %28
+               OpSelectionMerge %124 None
+               OpBranchConditional %239 %113 %124
+        %124 = OpLabel
+               OpStore %67 %34
+               OpBranch %68
+         %68 = OpLabel
+        %241 = OpPhi %33 %34 %124 %83 %71
+         %75 = OpSLessThan %13 %241 %74
+               OpLoopMerge %70 %71 None
+               OpBranchConditional %75 %69 %70
+         %69 = OpLabel
+         %77 = OpLogicalNot %13 %24
+               OpSelectionMerge %79 None
+               OpBranchConditional %77 %78 %79
+         %78 = OpLabel
+               OpStore %120 %121
+               OpStore %114 %245
+               OpBranch %70
+         %79 = OpLabel
+               OpBranch %71
+         %71 = OpLabel
+         %83 = OpIAdd %33 %241 %74
+               OpStore %67 %83
+               OpBranch %68
+         %70 = OpLabel
+        %258 = OpPhi %6 %251 %68 %245 %78
+        %248 = OpPhi %13 %239 %68 %121 %78
+               OpSelectionMerge %126 None
+               OpBranchConditional %248 %113 %126
+        %126 = OpLabel
+               OpStore %120 %121
+               OpStore %114 %12
+               OpBranch %113
+        %118 = OpLabel
+               OpBranch %116
+        %113 = OpLabel
+        %250 = OpPhi %6 %251 %27 %258 %70 %12 %126
+               OpReturnValue %250
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# resolution
+BUFFER variant_resolution DATA_TYPE vec2<float> DATA
+ 256.0 256.0
+END
+# injectionSwitch
+BUFFER variant_injectionSwitch DATA_TYPE vec2<float> DATA
+ 0.0 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_resolution AS uniform DESCRIPTOR_SET 0 BINDING 1
+  BIND BUFFER variant_injectionSwitch AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/increment-value-in-nested-for-loop.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/increment-value-in-nested-for-loop.amber
new file mode 100644
index 0000000..fff058d
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/increment-value-in-nested-for-loop.amber
@@ -0,0 +1,413 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: A frag. shader that increments a value in nested for loop
+
+# The test passes because shader always writes red.
+
+# Optimized using spirv-opt with the following arguments:
+# '-O'
+# spirv-opt commit hash: ab7ac60f14ae66006bed5c989a2cfd4c4881704c
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0 {
+#  vec2 injectionSwitch;
+# };
+#
+# // func returns 1 if "ref" > 0.
+# int func(int ref)
+# {
+#     bool alwaysFalse = gl_FragCoord.x < -1.0;
+#
+#     if (!(injectionSwitch.x < 0.0))
+#     {
+#         if (alwaysFalse)
+#             return 0;
+#
+#         // Returns on first iteration.
+#         for (int i = 1; i < ref; i++)
+#         {
+#             if (alwaysFalse)
+#                 continue;
+#
+#             // Always true.
+#             if (i > 0)
+#                 return 1;
+#         }
+#     }
+#     return 0;
+# }
+#
+# void main()
+# {
+#     bool alwaysFalse = injectionSwitch.x < -1.0;
+#     int value = 0;
+#
+#     // Iterates once.
+#     for (int i = 0; i < (gl_FragCoord.y > -1.0 ? 10 : 100); i++)
+#     {
+#         for (int k = 0; k < 2; k++)
+#         {
+#             // After 2 iterations: value == 2
+#             value += func(3);
+#
+#             if (alwaysFalse)
+#             {
+#                 while (alwaysFalse)
+#                 {
+#                     _GLF_color = vec4(i);
+#                 }
+#                 return;
+#             }
+#         }
+#
+#         if (!alwaysFalse)
+#             break;
+#     }
+#
+#     // Iterates 2 times.
+#     for (int i = 0; i < int(injectionSwitch.y + 1.0); i++)
+#     {
+#         // After 2 iterations: value == 4
+#         value += func(3);
+#         // func(0) will always return 0.
+#         if (alwaysFalse || func(0) != 0)
+#             break;
+#     }
+#
+#     if (value == 4)
+#         _GLF_color = vec4(1.0, 0.0, 0.0, 1.0);
+#     else
+#         _GLF_color = vec4(0.0, 0.0, 0.0, 0.0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 454
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %18 %110
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %18 "gl_FragCoord"
+               OpName %27 "buf0"
+               OpMemberName %27 0 "injectionSwitch"
+               OpName %29 ""
+               OpName %110 "_GLF_color"
+               OpDecorate %18 BuiltIn FragCoord
+               OpMemberDecorate %27 0 Offset 0
+               OpDecorate %27 Block
+               OpDecorate %29 DescriptorSet 0
+               OpDecorate %29 Binding 0
+               OpDecorate %110 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+         %12 = OpTypeBool
+         %15 = OpTypeFloat 32
+         %16 = OpTypeVector %15 4
+         %17 = OpTypePointer Input %16
+         %18 = OpVariable %17 Input
+         %19 = OpTypeInt 32 0
+         %20 = OpConstant %19 0
+         %21 = OpTypePointer Input %15
+         %24 = OpConstant %15 -1
+         %26 = OpTypeVector %15 2
+         %27 = OpTypeStruct %26
+         %28 = OpTypePointer Uniform %27
+         %29 = OpVariable %28 Uniform
+         %30 = OpConstant %6 0
+         %31 = OpTypePointer Uniform %15
+         %34 = OpConstant %15 0
+         %44 = OpConstant %6 1
+         %78 = OpConstant %19 1
+         %82 = OpConstant %6 10
+         %83 = OpConstant %6 100
+         %93 = OpConstant %6 2
+         %95 = OpConstant %6 3
+        %109 = OpTypePointer Output %16
+        %110 = OpVariable %109 Output
+        %133 = OpConstant %15 1
+        %155 = OpConstant %6 4
+        %159 = OpConstantComposite %16 %133 %34 %34 %133
+        %161 = OpConstantComposite %16 %34 %34 %34 %34
+        %166 = OpConstantFalse %12
+        %168 = OpConstantTrue %12
+        %319 = OpUndef %6
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+               OpBranch %163
+        %163 = OpLabel
+         %67 = OpAccessChain %31 %29 %30 %20
+         %68 = OpLoad %15 %67
+         %69 = OpFOrdLessThan %12 %68 %24
+               OpLoopMerge %162 %165 None
+               OpBranch %72
+         %72 = OpLabel
+        %337 = OpPhi %12 %166 %163 %335 %75
+        %324 = OpPhi %6 %30 %163 %383 %75
+        %317 = OpPhi %6 %319 %163 %441 %75
+        %305 = OpPhi %6 %30 %163 %123 %75
+         %79 = OpAccessChain %21 %18 %78
+         %80 = OpLoad %15 %79
+         %81 = OpFOrdGreaterThan %12 %80 %24
+         %84 = OpSelect %6 %81 %82 %83
+         %85 = OpSLessThan %12 %305 %84
+               OpLoopMerge %74 %75 None
+               OpBranchConditional %85 %73 %74
+         %73 = OpLabel
+               OpBranch %87
+         %87 = OpLabel
+        %323 = OpPhi %6 %324 %73 %99 %90
+        %316 = OpPhi %6 %317 %73 %312 %90
+        %306 = OpPhi %6 %30 %73 %116 %90
+         %94 = OpSLessThan %12 %306 %93
+               OpLoopMerge %89 %90 None
+               OpBranchConditional %94 %88 %89
+         %88 = OpLabel
+               OpBranch %187
+        %187 = OpLabel
+               OpLoopMerge %188 %189 None
+               OpBranch %190
+        %190 = OpLabel
+        %191 = OpAccessChain %21 %18 %20
+        %192 = OpLoad %15 %191
+        %193 = OpFOrdLessThan %12 %192 %24
+        %196 = OpFOrdLessThan %12 %68 %34
+        %197 = OpLogicalNot %12 %196
+               OpSelectionMerge %198 None
+               OpBranchConditional %197 %199 %198
+        %199 = OpLabel
+               OpSelectionMerge %201 None
+               OpBranchConditional %193 %202 %201
+        %202 = OpLabel
+               OpBranch %188
+        %201 = OpLabel
+               OpBranch %203
+        %203 = OpLabel
+        %307 = OpPhi %6 %44 %201 %219 %205
+        %209 = OpSLessThan %12 %307 %95
+               OpLoopMerge %204 %205 None
+               OpBranchConditional %209 %210 %204
+        %210 = OpLabel
+               OpSelectionMerge %212 None
+               OpBranchConditional %193 %213 %212
+        %213 = OpLabel
+               OpBranch %205
+        %212 = OpLabel
+        %215 = OpSGreaterThan %12 %307 %30
+               OpSelectionMerge %216 None
+               OpBranchConditional %215 %217 %216
+        %217 = OpLabel
+               OpBranch %204
+        %216 = OpLabel
+               OpBranch %205
+        %205 = OpLabel
+        %219 = OpIAdd %6 %307 %44
+               OpBranch %203
+        %204 = OpLabel
+        %313 = OpPhi %6 %316 %203 %44 %217
+        %308 = OpPhi %12 %166 %203 %168 %217
+               OpSelectionMerge %221 None
+               OpBranchConditional %308 %188 %221
+        %221 = OpLabel
+               OpBranch %198
+        %198 = OpLabel
+               OpBranch %188
+        %189 = OpLabel
+               OpBranch %187
+        %188 = OpLabel
+        %312 = OpPhi %6 %30 %202 %313 %204 %30 %198
+         %99 = OpIAdd %6 %323 %312
+               OpSelectionMerge %102 None
+               OpBranchConditional %69 %101 %102
+        %101 = OpLabel
+               OpBranch %103
+        %103 = OpLabel
+               OpLoopMerge %105 %104 None
+               OpBranchConditional %69 %104 %105
+        %104 = OpLabel
+        %112 = OpConvertSToF %15 %305
+        %113 = OpCompositeConstruct %16 %112 %112 %112 %112
+               OpStore %110 %113
+               OpBranch %103
+        %105 = OpLabel
+               OpBranch %89
+        %102 = OpLabel
+               OpBranch %90
+         %90 = OpLabel
+        %116 = OpIAdd %6 %306 %44
+               OpBranch %87
+         %89 = OpLabel
+        %441 = OpPhi %6 %316 %87 %312 %105
+        %383 = OpPhi %6 %323 %87 %99 %105
+        %335 = OpPhi %12 %337 %87 %168 %105
+               OpSelectionMerge %169 None
+               OpBranchConditional %335 %74 %169
+        %169 = OpLabel
+        %118 = OpLogicalNot %12 %69
+               OpSelectionMerge %120 None
+               OpBranchConditional %118 %119 %120
+        %119 = OpLabel
+               OpBranch %74
+        %120 = OpLabel
+               OpBranch %75
+         %75 = OpLabel
+        %123 = OpIAdd %6 %305 %44
+               OpBranch %72
+         %74 = OpLabel
+        %382 = OpPhi %6 %324 %72 %383 %89 %383 %119
+        %354 = OpPhi %12 %337 %72 %335 %89 %335 %119
+               OpSelectionMerge %171 None
+               OpBranchConditional %354 %162 %171
+        %171 = OpLabel
+               OpBranch %125
+        %125 = OpLabel
+        %381 = OpPhi %6 %382 %171 %140 %128
+        %365 = OpPhi %6 %319 %171 %361 %128
+        %355 = OpPhi %6 %30 %171 %153 %128
+        %131 = OpAccessChain %31 %29 %30 %78
+        %132 = OpLoad %15 %131
+        %134 = OpFAdd %15 %132 %133
+        %135 = OpConvertFToS %6 %134
+        %136 = OpSLessThan %12 %355 %135
+               OpLoopMerge %127 %128 None
+               OpBranchConditional %136 %126 %127
+        %126 = OpLabel
+               OpBranch %228
+        %228 = OpLabel
+               OpLoopMerge %229 %230 None
+               OpBranch %231
+        %231 = OpLabel
+        %232 = OpAccessChain %21 %18 %20
+        %233 = OpLoad %15 %232
+        %234 = OpFOrdLessThan %12 %233 %24
+        %237 = OpFOrdLessThan %12 %68 %34
+        %238 = OpLogicalNot %12 %237
+               OpSelectionMerge %239 None
+               OpBranchConditional %238 %240 %239
+        %240 = OpLabel
+               OpSelectionMerge %242 None
+               OpBranchConditional %234 %243 %242
+        %243 = OpLabel
+               OpBranch %229
+        %242 = OpLabel
+               OpBranch %244
+        %244 = OpLabel
+        %356 = OpPhi %6 %44 %242 %260 %246
+        %250 = OpSLessThan %12 %356 %95
+               OpLoopMerge %245 %246 None
+               OpBranchConditional %250 %251 %245
+        %251 = OpLabel
+               OpSelectionMerge %253 None
+               OpBranchConditional %234 %254 %253
+        %254 = OpLabel
+               OpBranch %246
+        %253 = OpLabel
+        %256 = OpSGreaterThan %12 %356 %30
+               OpSelectionMerge %257 None
+               OpBranchConditional %256 %258 %257
+        %258 = OpLabel
+               OpBranch %245
+        %257 = OpLabel
+               OpBranch %246
+        %246 = OpLabel
+        %260 = OpIAdd %6 %356 %44
+               OpBranch %244
+        %245 = OpLabel
+        %362 = OpPhi %6 %365 %244 %44 %258
+        %357 = OpPhi %12 %166 %244 %168 %258
+               OpSelectionMerge %262 None
+               OpBranchConditional %357 %229 %262
+        %262 = OpLabel
+               OpBranch %239
+        %239 = OpLabel
+               OpBranch %229
+        %230 = OpLabel
+               OpBranch %228
+        %229 = OpLabel
+        %361 = OpPhi %6 %30 %243 %362 %245 %30 %239
+        %140 = OpIAdd %6 %381 %361
+        %142 = OpLogicalNot %12 %69
+        %453 = OpSelect %12 %142 %166 %69
+               OpSelectionMerge %150 None
+               OpBranchConditional %453 %149 %150
+        %149 = OpLabel
+               OpBranch %127
+        %150 = OpLabel
+               OpBranch %128
+        %128 = OpLabel
+        %153 = OpIAdd %6 %355 %44
+               OpBranch %125
+        %127 = OpLabel
+        %431 = OpPhi %6 %381 %125 %140 %149
+        %156 = OpIEqual %12 %431 %155
+               OpSelectionMerge %158 None
+               OpBranchConditional %156 %157 %160
+        %160 = OpLabel
+               OpStore %110 %161
+               OpBranch %158
+        %157 = OpLabel
+               OpStore %110 %159
+               OpBranch %158
+        %158 = OpLabel
+               OpBranch %162
+        %165 = OpLabel
+               OpBranch %163
+        %162 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# injectionSwitch
+BUFFER variant_injectionSwitch DATA_TYPE vec2<float> DATA
+ 0.0 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_injectionSwitch AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/index.txt b/external/vulkancts/data/vulkan/amber/graphicsfuzz/index.txt
index bb99b86..7adc2de 100644
--- a/external/vulkancts/data/vulkan/amber/graphicsfuzz/index.txt
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/index.txt
@@ -1,149 +1,233 @@
-{	"access-new-vector-inside-if-condition.amber",	"access-new-vector-inside-if-condition","A shader that accesses a new vector within an if condition"							},
-{	"always-discarding-function.amber",				"always-discarding-function",			"A fragment shader with an always discarding main function"								},
-{	"always-false-if-in-do-while.amber",			"always-false-if-in-do-while",			"A fragment shader with an always false if."											},
-{	"always-false-if-with-discard-return.amber",	"always-false-if-with-discard-return",	"A fragment shader with discard keyword and a return"									},
-{	"barrier-in-loop-with-break.amber",				"barrier-in-loop-with-break",			"A compute shader with a barrier in a loop with a break"								},
-{	"break-in-do-while-with-nested-if.amber",		"break-in-do-while-with-nested-if",		"A fragment shader with nested if"														},
-{	"call-function-with-discard.amber",				"call-function-with-discard",			"Calls a function containing a discard"													},
-{	"call-if-while-switch.amber",					"call-if-while-switch",					"A fragment shader with a call, if, while, switch"										},
-{	"color-set-in-for-loop.amber",					"color-set-in-for-loop",				"A fragment shader with color set in for loop"											},
-{	"color-write-in-loop.amber",					"color-write-in-loop",					"A fragment shader that writes to color in a loop"										},
-{	"complex-nested-loops-and-call.amber",			"complex-nested-loops-and-call",		"A fragment shader with complex nested loops, breaks, etc."								},
-{	"conditional-return-in-infinite-while.amber",	"conditional-return-in-infinite-while",	"A shader with conditional return inside an infinite loop"								},
-{	"continue-and-merge.amber",						"continue-and-merge",					"A fragment shader with two nested loops"												},
-{	"control-flow-in-function.amber",				"control-flow-in-function",				"A fragment shader with a lot of control flow"											},
-{	"control-flow-switch.amber",					"control-flow-switch",					"A fragment shader with somewhat complex control flow and a switch"						},
-{	"cov-apfloat-determinant.amber",				"cov-apfloat-determinant",				"A fragment shader that covers a specific arbitrary precision float usage."				},
-{	"cov-apfloat-tanh.amber",						"cov-apfloat-tanh",						"A fragment shader that covers a specific arbitrary precision float usage."				},
-{	"cov-blockfrequency-several-for-loops.amber",	"cov-blockfrequency-several-for-loops",	"A fragment shader that covers a specific block frequency info code path."				},
-{	"cov-const-folding-clamp.amber",				"cov-const-folding-clamp",				"A fragment shader that covers a specific const folding rule path."						},
-{	"cov-const-folding-clamp-max.amber",			"cov-const-folding-clamp-max",			"A fragment shader that covers a specific const folding rule path."						},
-{	"cov-const-folding-clamp-min.amber",			"cov-const-folding-clamp-min",			"A fragment shader that covers a specific const folding rule path."						},
-{	"cov-const-folding-dot-condition-true.amber",	"cov-const-folding-dot-condition-true",	"A fragment shader that covers a specific const folding rule path."						},
-{	"cov-const-folding-dot-determinant.amber",		"cov-const-folding-dot-determinant",	"A fragment shader that covers a specific const folding rule path."						},
-{	"cov-const-folding-vector-shuffle.amber",		"cov-const-folding-vector-shuffle",		"A fragment shader that covers a specific const folding rule path."						},
-{	"cov-constants-mix-uniform.amber",				"cov-constants-mix-uniform",			"A fragment shader that covers a specific constant handling path."						},
-{	"cov-copy-prop-arrays-func-argument.amber",		"cov-copy-prop-arrays-func-argument",	"A fragment shader that covers a specific propagate array copy path."					},
-{	"cov-copy-prop-arrays-no-stores.amber",			"cov-copy-prop-arrays-no-stores",		"A fragment shader that covers a specific propagate array copy path."					},
-{	"cov-copy-prop-arrays-param-uniform.amber",		"cov-copy-prop-arrays-param-uniform",	"A fragment shader that covers a specific propagate array copy path."					},
-{	"cov-dead-code-unreachable-merge.amber",		"cov-dead-code-unreachable-merge",		"A fragment shader that covers a specific dead code elimination path."					},
-{	"cov-fold-bitwise-and-zero.amber",				"cov-fold-bitwise-and-zero",			"A fragment shader that covers a specific instruction folding path."					},
-{	"cov-fold-bitwise-or-full-mask.amber",			"cov-fold-bitwise-or-full-mask",		"A fragment shader that covers a specific instruction folding path."					},
-{	"cov-fold-bitwise-xor.amber",					"cov-fold-bitwise-xor",					"A fragment shader that covers a specific instruction folding path."					},
-{	"cov-fold-div-uniform-by-zero.amber",			"cov-fold-div-uniform-by-zero",			"A fragment shader that covers a specific instruction folding path."					},
-{	"cov-fold-div-variable-by-zero.amber",			"cov-fold-div-variable-by-zero",		"A fragment shader that covers a specific instruction folding path."					},
-{	"cov-fold-logical-and-const-variable.amber",	"cov-fold-logical-and-const-variable",	"A fragment shader that covers a specific instruction folding path."					},
-{	"cov-fold-logical-and-constant.amber",			"cov-fold-logical-and-constant",		"A fragment shader that covers a specific instruction folding path."					},
-{	"cov-fold-logical-or-constant.amber",			"cov-fold-logical-or-constant",			"A fragment shader that covers a specific instruction folding path."					},
-{	"cov-fold-negate-variable.amber",				"cov-fold-negate-variable",				"A fragment shader that covers a specific instruction folding path."					},
-{	"cov-fold-shift-gte32.amber",					"cov-fold-shift-gte32",					"A fragment shader that covers a specific instruction folding path."					},
-{	"cov-fold-shift-right-arithmetic.amber",		"cov-fold-shift-right-arithmetic",		"A fragment shader that covers a specific instruction folding path."					},
-{	"cov-fold-switch-udiv.amber",					"cov-fold-switch-udiv",					"A fragment shader that covers a specific instruction folding path."					},
-{	"cov-folding-rules-construct-extract.amber",	"cov-folding-rules-construct-extract",	"A fragment shader that covers a specific instruction folding path."					},
-{	"cov-folding-rules-dot-extract.amber",			"cov-folding-rules-dot-extract",		"A fragment shader that covers a specific instruction folding path."					},
-{	"cov-folding-rules-dot-no-extract.amber",		"cov-folding-rules-dot-no-extract",		"A fragment shader that covers a specific instruction folding path."					},
-{	"cov-folding-rules-merge-add-sub.amber",		"cov-folding-rules-merge-add-sub",		"A fragment shader that covers a specific instruction folding path."					},
-{	"cov-folding-rules-merge-sub-add.amber",		"cov-folding-rules-merge-sub-add",		"A fragment shader that covers a specific instruction folding path."					},
-{	"cov-folding-rules-merge-sub-sub.amber",		"cov-folding-rules-merge-sub-sub",		"A fragment shader that covers a specific instruction folding path."					},
-{	"cov-folding-rules-redundant-mix.amber",		"cov-folding-rules-redundant-mix",		"A fragment shader that covers a specific instruction folding path."					},
-{	"cov-folding-rules-shuffle-extract.amber",		"cov-folding-rules-shuffle-extract",	"A fragment shader that covers a specific instruction folding path."					},
-{	"cov-folding-rules-shuffle-mix.amber",			"cov-folding-rules-shuffle-mix",		"A fragment shader that covers a specific instruction folding path."					},
-{	"cov-folding-rules-split-vector-init.amber",	"cov-folding-rules-split-vector-init",	"A fragment shader that covers a specific instruction folding path."					},
-{	"cov-if-conversion-identical-branches.amber",	"cov-if-conversion-identical-branches",	"A fragment shader that covers a specific if condition conversion path."				},
-{	"cov-inline-pass-empty-block.amber",			"cov-inline-pass-empty-block",			"A fragment shader that covers a specific inlining optimization path."					},
-{	"cov-inline-pass-nested-loops.amber",			"cov-inline-pass-nested-loops",			"A fragment shader that covers a specific inlining optimization path."					},
-{	"cov-inline-pass-unreachable-func.amber",		"cov-inline-pass-unreachable-func",		"A fragment shader that covers a specific inlining optimization path."					},
-{	"cov-intervalmap-set-stop.amber",				"cov-intervalmap-set-stop",				"A fragment shader that covers a specific interval map code path."						},
-{	"cov-liveinterval-different-dest.amber",		"cov-liveinterval-different-dest",		"A fragment shader that covers a specific live interval code path."						},
-{	"cov-merge-return-condition-twice.amber",		"cov-merge-return-condition-twice",		"A fragment shader that covers a specific return merge path."							},
-{	"cov-modf-integer-to-private.amber",			"cov-modf-integer-to-private",			"A fragment shader that covers a specific private to local path."						},
-{	"cov-reduce-load-replace-extract.amber",		"cov-reduce-load-replace-extract",		"A fragment shader that covers a specific load size reduction path."					},
-{	"cov-simplification-while-inside-for.amber",	"cov-simplification-while-inside-for",	"A fragment shader that covers a specific code simplification path."					},
-{	"cov-single-block-elim-self-assign.amber",		"cov-single-block-elim-self-assign",	"A fragment shader that covers a specific single block elimination path."				},
-{	"cov-ssa-rewrite-case-with-default.amber",		"cov-ssa-rewrite-case-with-default",	"A fragment shader that covers a specific SSA rewrite path."							},
-{	"cov-types-return-in-main-never-hit.amber",		"cov-types-return-in-main-never-hit",	"A fragment shader that covers a specific types optimization path."						},
-{	"cov-vector-dce-inc-unused-comp.amber",			"cov-vector-dce-inc-unused-comp",		"A fragment shader that covers a specific vector DCE path."								},
-{	"cov-vector-dce-unused-component.amber",		"cov-vector-dce-unused-component",		"A fragment shader that covers a specific vector DCE path."								},
-{	"dead-barriers-in-loops.amber",					"dead-barriers-in-loops",				"A compute shader with dead barriers"													},
-{	"dead-struct-init.amber",						"dead-struct-init",						"A fragment shader that uses struct initializers"										},
-{	"disc-and-add-in-func-in-loop.amber",			"disc-and-add-in-func-in-loop",			"A fragment shader with discard and add in function in loop"							},
-{	"discard-continue-return.amber",				"discard-continue-return",				"A fragment shader with a discard, continue, and return"								},
-{	"discard-in-array-manipulating-loop.amber",		"discard-in-array-manipulating-loop",	"An array-manipulating fragment shader with a discard"									},
-{	"discard-in-loop.amber",						"discard-in-loop",						"A shader with a discard in a loop"														},
-{	"discard-in-loop-in-function.amber",			"discard-in-loop-in-function",			"A shader with a discard nested in a loop in a function"								},
-{	"discards-in-control-flow.amber",				"discards-in-control-flow",				"A fragment shader with discards in loops and conditionals"								},
-{	"do-while-loop-in-conditionals.amber",			"do-while-loop-in-conditionals",		"A fragment shader with do-while loop in conditional nest"								},
-{	"do-while-with-always-true-if.amber",			"do-while-with-always-true-if",			"A fragment shader with a do while that always returns"									},
-{	"early-return-and-barrier.amber",				"early-return-and-barrier",				"A compute shader with an early return and a barrier"									},
-{	"for-condition-always-false.amber",				"for-condition-always-false",			"A fragment shader that uses a for loop with condition always false"					},
-{	"for-loop-with-return.amber",					"for-loop-with-return",					"A fragment shader with a for loop that loops only once"								},
-{	"for-with-ifs-and-return.amber",				"for-with-ifs-and-return",				"A fragment shader with two ifs and return/continue inside a for loop"					},
-{	"fragcoord-control-flow.amber",					"fragcoord-control-flow",				"A fragment shader that uses FragCoord and somewhat complex control flow"				},
-{	"fragcoord-control-flow-2.amber",				"fragcoord-control-flow-2",				"A fragment shader that uses FragCoord and somewhat complex control flow"				},
-{	"function-with-uniform-return.amber",			"function-with-uniform-return",			"A fragment shader with uniform value as a return"										},
-{	"global-array-loops.amber",						"global-array-loops",					"A loop that writes then reads a global array"											},
-{	"if-and-switch.amber",							"if-and-switch",						"A fragment shader with a switch and some data flow"									},
-{	"injection-switch-as-comparison.amber",			"injection-switch-as-comparison",		"A fragment shader with uniform comparison in loop"										},
-{	"int-mat2-struct.amber",						"int-mat2-struct",						"Fragment shader using (int, mat2) struct"												},
-{	"loop-call-discard.amber",						"loop-call-discard",					"A fragment shader with nested loops and a function call"								},
-{	"loop-dead-if-loop.amber",						"loop-dead-if-loop",					"A fragment shader with a loop, dead if, and a loop"									},
-{	"loop-nested-ifs.amber",						"loop-nested-ifs",						"A fragment shader with a for loop containing nested ifs"								},
-{	"loops-breaks-returns.amber",					"loops-breaks-returns",					"A compute shader with loops, breaks, returns"											},
-{	"loops-ifs-continues-call.amber",				"loops-ifs-continues-call",				"A fragment shader with nested control flow and a call"									},
-{	"mat-array-deep-control-flow.amber",			"mat-array-deep-control-flow",			"A fragment shader that uses an array of matrices and has deep control flow"			},
-{	"mat-array-distance.amber",						"mat-array-distance",					"A fragment shader that uses an array of matrices and distance"							},
-{	"mat-mul-in-loop.amber",						"mat-mul-in-loop",						"Shader with matrix multiplication in loop"												},
-{	"matrices-and-return-in-loop.amber",			"matrices-and-return-in-loop",			"A fragment shader with matrices and a return in a loop"								},
-{	"max-mix-conditional-discard.amber",			"max-mix-conditional-discard",			"A fragment shader with an expression used in two discard guards"						},
-{	"mix-floor-add.amber",							"mix-floor-add",						"A fragment shader with mix, uintBitsToFloat, and floor"								},
-{	"modf-gl-color.amber",							"modf-gl-color",						"A fragment shader with modf of gl color"												},
-{	"modf-temp-modf-color.amber",					"modf-temp-modf-color",					"A fragment shader that calls modf twice, once with color"								},
-{	"nested-for-break-mat-color.amber",				"nested-for-break-mat-color",			"Two nested for loops modify a mat4 then writes red"									},
-{	"nested-for-loops-with-return.amber",			"nested-for-loops-with-return",			"A fragment shader with two nested for loops with return"								},
-{	"nested-ifs-and-return-in-for-loop.amber",		"nested-ifs-and-return-in-for-loop",	"A fragment shader with return in nest of ifs, inside loop"								},
-{	"nested-loops-switch.amber",					"nested-loops-switch",					"A fragment shader with nested loops and a switch"										},
-{	"nested-switch-break-discard.amber",			"nested-switch-break-discard",			"Nested switches with break and discard"												},
-{	"pow-vec4.amber",								"pow-vec4",								"A fragment shader that uses pow"														},
-{	"return-before-writing-wrong-color.amber",		"return-before-writing-wrong-color",	"A fragment shader with return before writing wrong color"								},
-{	"return-float-from-while-loop.amber",			"return-float-from-while-loop",			"A fragment shader with unreachable while loop"											},
-{	"return-in-loop-in-function.amber",				"return-in-loop-in-function",			"A fragment shader with early return from loop in function"								},
-{	"return-inside-loop-in-function.amber",			"return-inside-loop-in-function",		"A fragment shader with return inside loop"												},
-{	"returned-boolean-in-vector.amber",				"returned-boolean-in-vector",			"A fragment shader with returned boolean in vector"										},
-{	"similar-nested-ifs.amber",						"similar-nested-ifs",					"A fragment shader with similar nested ifs and loops"									},
-{	"smoothstep-after-loop.amber",					"smoothstep-after-loop",				"Fragment shader with 1-iteration loop and smoothstep"									},
-{	"struct-and-unreachable-infinite-loop.amber",	"struct-and-unreachable-infinite-loop",	"Fragment shader with struct and unreachable infinite loop"								},
-{	"struct-controlled-loop.amber",					"struct-controlled-loop",				"Shader with loop controlled by struct"													},
-{	"struct-used-as-temporary.amber",				"struct-used-as-temporary",				"A fragment shader that uses a temporary struct variable"								},
-{	"switch-case-with-undefined-expression.amber",	"switch-case-with-undefined-expression","A fragment shader with undefined expression"											},
-{	"switch-if-discard.amber",						"switch-if-discard",					"A fragment shader with a switch, if, and discard"										},
-{	"switch-inside-while-always-return.amber",		"switch-inside-while-always-return",	"A fragment shader with a switch inside while always return"							},
-{	"switch-with-empty-if-false.amber",				"switch-with-empty-if-false",			"A fragment shader with always false if in switch statement"							},
-{	"swizzle-struct-init-min.amber",				"swizzle-struct-init-min",				"A fragment shader that uses vector swizzles, struct initializers, and min"				},
-{	"transpose-rectangular-matrix.amber",			"transpose-rectangular-matrix",			"Fragment shader that uses 'transpose'"													},
-{	"two-2-iteration-loops.amber",					"two-2-iteration-loops",				"Fragment shader with pair of outer loops"												},
-{	"two-for-loops-with-barrier-function.amber",	"two-for-loops-with-barrier-function",	"A compute shader with two barrier functions"											},
-{	"two-loops-matrix.amber",						"two-loops-matrix",						"A fragment shader with two loops and some matrices"									},
-{	"two-loops-set-struct.amber",					"two-loops-set-struct",					"A fragment shader with two loops that write to a struct"								},
-{	"two-loops-with-break.amber",					"two-loops-with-break",					"A fragment shader with two loops with breaks"											},
-{	"two-nested-do-whiles.amber",					"two-nested-do-whiles",					"A fragment shader with nested do while"												},
-{	"two-nested-for-loops-with-returns.amber",		"two-nested-for-loops-with-returns",	"A compute shader with two nested for loops"											},
-{	"two-nested-infinite-loops-discard.amber",		"two-nested-infinite-loops-discard",	"A fragment shader with an always false if function"									},
-{	"undefined-integer-in-function.amber",			"undefined-integer-in-function",		"A fragment shader with nested do while and undefined int"								},
-{	"uninit-element-cast-in-loop.amber",			"uninit-element-cast-in-loop",			"A fragment shader with uninitialized element cast in loop"								},
-{	"uninitialized-var-decrement-and-add.amber",	"uninitialized-var-decrement-and-add",	"A fragment shader that uses an uninitialized variable"									},
-{	"undefined-assign-in-infinite-loop.amber",		"undefined-assign-in-infinite-loop",	"A fragment shader with uninitialized read in infinite loop"							},
-{	"unreachable-barrier-in-loops.amber",			"unreachable-barrier-in-loops",			"A compute shader with an unreachable barrier in a loop nest"							},
-{	"unreachable-continue-statement.amber",			"unreachable-continue-statement",		"A fragment shader with unreachable continue statement"									},
-{	"unreachable-discard-statement-in-if.amber",	"unreachable-discard-statement-in-if",	"A fragment shader with discard keyword and a return"									},
-{	"unreachable-discard-statement.amber",			"unreachable-discard-statement",		"A fragment shader with unreachable discard statement"									},
-{	"unreachable-loops.amber",						"unreachable-loops",					"Fragment shader that writes red despite unreachable loops"								},
-{	"unreachable-loops-in-switch.amber",			"unreachable-loops-in-switch",			"A fragment shader with unreachable loops in a switch"									},
-{	"unreachable-return-in-loop.amber",				"unreachable-return-in-loop",			"A fragment shader with an unreachable return in a loop"								},
-{	"unreachable-switch-case-with-discards.amber",	"unreachable-switch-case-with-discards","A shader with a switch statement containing unreachable discards"						},
-{	"uv-value-comparison-as-boolean.amber",			"uv-value-comparison-as-boolean",		"A fragment shader with uv value comparison as boolean"									},
-{	"vectors-and-discard-in-function.amber",		"vectors-and-discard-in-function",		"A fragment shader that assigns vector values"											},
-{	"while-function-always-false.amber",			"while-function-always-false",			"A fragment shader with an always false while function"									},
-{	"while-inside-switch.amber",					"while-inside-switch",					"A fragment shader that uses a while loop inside a switch"								},
-{	"write-before-break.amber",						"write-before-break",					"Fragment shader that writes red before loop break"										},
-{	"write-red-in-loop-nest.amber",					"write-red-in-loop-nest",				"A fragment shader that writes red in a nest of loops"									},
-{	"wrong-color-in-always-false-if.amber",			"wrong-color-in-always-false-if",		"A fragment shader with wrong color write in false if"									},
+{	"access-new-vector-inside-if-condition.amber",												"access-new-vector-inside-if-condition",											"A shader that accesses a new vector within an if condition"						},
+{	"always-discarding-function.amber",															"always-discarding-function",														"A fragment shader with an always discarding main function"							},
+{	"always-false-if-in-do-while.amber",														"always-false-if-in-do-while",														"A fragment shader with an always false if."										},
+{	"always-false-if-with-discard-return.amber",												"always-false-if-with-discard-return",												"A fragment shader with discard keyword and a return"								},
+{	"arr-value-set-to-arr-value-squared.amber",													"arr-value-set-to-arr-value-squared",												"A fragment shader with an arr value set to itself squared"							},
+{	"array-idx-multiplied-by-for-loop-idx.amber",												"array-idx-multiplied-by-for-loop-idx",												"A fragment shader with array index multiplied"										},
+{	"assign-array-value-to-another-array.amber",												"assign-array-value-to-another-array",												"A fragment shader that assigns array values to other array"						},
+{	"assign-array-value-to-another-array-2.amber",												"assign-array-value-to-another-array-2",											"A fragment shader that assigns array values to other array"						},
+{	"barrier-in-loop-with-break.amber",															"barrier-in-loop-with-break",														"A compute shader with a barrier in a loop with a break"							},
+{	"break-in-do-while-with-nested-if.amber",													"break-in-do-while-with-nested-if",													"A fragment shader with nested if"													},
+{	"call-function-with-discard.amber",															"call-function-with-discard",														"Calls a function containing a discard"												},
+{	"call-if-while-switch.amber",																"call-if-while-switch",																"A fragment shader with a call, if, while, switch"									},
+{	"color-set-in-for-loop.amber",																"color-set-in-for-loop",															"A fragment shader with color set in for loop"										},
+{	"color-write-in-loop.amber",																"color-write-in-loop",																"A fragment shader that writes to color in a loop"									},
+{	"complex-nested-loops-and-call.amber",														"complex-nested-loops-and-call",													"A fragment shader with complex nested loops, breaks, etc."							},
+{	"conditional-return-in-infinite-while.amber",												"conditional-return-in-infinite-while",												"A shader with conditional return inside an infinite loop"							},
+{	"continue-and-merge.amber",																	"continue-and-merge",																"A fragment shader with two nested loops"											},
+{	"control-flow-in-function.amber",															"control-flow-in-function",															"A fragment shader with a lot of control flow"										},
+{	"control-flow-switch.amber",																"control-flow-switch",																"A fragment shader with somewhat complex control flow and a switch"					},
+{	"cosh-return-inf-unused.amber",																"cosh-return-inf-unused",															"Cosh returns inf for one component which is never used"							},
+{	"cov-analysis-reachable-from-many.amber",													"cov-analysis-reachable-from-many",													"A fragment shader that covers a specific LLVM analysis code path."					},
+{	"cov-apfloat-acos-ldexp.amber",																"cov-apfloat-acos-ldexp",															"A fragment shader that covers a specific AP float code path."						},
+{	"cov-apfloat-determinant.amber",															"cov-apfloat-determinant",															"A fragment shader that covers a specific arbitrary precision float usage."			},
+{	"cov-apfloat-tanh.amber",																	"cov-apfloat-tanh",																	"A fragment shader that covers a specific arbitrary precision float usage."			},
+{	"cov-basic-block-discard-in-function.amber",												"cov-basic-block-discard-in-function",												"A fragment shader that covers a specific basic block code path"					},
+{	"cov-blockfrequency-several-for-loops.amber",												"cov-blockfrequency-several-for-loops",												"A fragment shader that covers a specific block frequency info code path."			},
+{	"cov-const-folding-ceil-vec4.amber",														"cov-const-folding-ceil-vec4",														"A fragment shader that covers a specific constant folding code path"				},
+{	"cov-const-folding-clamp.amber",															"cov-const-folding-clamp",															"A fragment shader that covers a specific const folding rule path."					},
+{	"cov-const-folding-clamp-inside-while.amber",												"cov-const-folding-clamp-inside-while",												"A fragment shader that covers a specific constant folding path"					},
+{	"cov-const-folding-clamp-max.amber",														"cov-const-folding-clamp-max",														"A fragment shader that covers a specific const folding rule path."					},
+{	"cov-const-folding-clamp-min.amber",														"cov-const-folding-clamp-min",														"A fragment shader that covers a specific const folding rule path."					},
+{	"cov-const-folding-clamp-vs-original.amber",												"cov-const-folding-clamp-vs-original",												"A fragment shader that covers a specific constant folding path"					},
+{	"cov-const-folding-det-identity.amber",														"cov-const-folding-det-identity",													"A fragment shader that covers a specific const folding path"						},
+{	"cov-const-folding-dot-condition-true.amber",												"cov-const-folding-dot-condition-true",												"A fragment shader that covers a specific const folding rule path."					},
+{	"cov-const-folding-dot-determinant.amber",													"cov-const-folding-dot-determinant",												"A fragment shader that covers a specific const folding rule path."					},
+{	"cov-const-folding-gte-const-first.amber",													"cov-const-folding-gte-const-first",												"A fragment shader that covers a specific constant folding path"					},
+{	"cov-const-folding-min-as-loop-range.amber",												"cov-const-folding-min-as-loop-range",												"A fragment shader that covers a specific constant folding path"					},
+{	"cov-const-folding-same-condition.amber",													"cov-const-folding-same-condition",													"A fragment shader that covers a specific constant folding code path"				},
+{	"cov-const-folding-sinh-inf.amber",															"cov-const-folding-sinh-inf",														"A fragment shader that covers a specific const folding path"						},
+{	"cov-const-folding-vector-shuffle.amber",													"cov-const-folding-vector-shuffle",													"A fragment shader that covers a specific const folding rule path."					},
+{	"cov-constant-folding-atan-over-tanh.amber",												"cov-constant-folding-atan-over-tanh",												"A fragment shader that covers a specific constant folding code path."				},
+{	"cov-constants-mix-uniform.amber",															"cov-constants-mix-uniform",														"A fragment shader that covers a specific constant handling path."					},
+{	"cov-copy-prop-arrays-func-argument.amber",													"cov-copy-prop-arrays-func-argument",												"A fragment shader that covers a specific propagate array copy path."				},
+{	"cov-copy-prop-arrays-no-stores.amber",														"cov-copy-prop-arrays-no-stores",													"A fragment shader that covers a specific propagate array copy path."				},
+{	"cov-copy-prop-arrays-param-uniform.amber",													"cov-copy-prop-arrays-param-uniform",												"A fragment shader that covers a specific propagate array copy path."				},
+{	"cov-dag-combiner-neg-div-pow2.amber",														"cov-dag-combiner-neg-div-pow2",													"A fragment shader that covers a specific DAG combiner code path"					},
+{	"cov-dag-combiner-same-cond-nested.amber",													"cov-dag-combiner-same-cond-nested",												"A fragment shader that covers a specific DAG combiner code path"					},
+{	"cov-dead-branch-func-return-arg.amber",													"cov-dead-branch-func-return-arg",													"A fragment shader that covers a specific dead branch elimination path"				},
+{	"cov-dead-code-unreachable-merge.amber",													"cov-dead-code-unreachable-merge",													"A fragment shader that covers a specific dead code elimination path."				},
+{	"cov-fold-and-in-for-loop-range.amber",														"cov-fold-and-in-for-loop-range",													"A fragment shader that covers a specific folding path"								},
+{	"cov-fold-bitwise-and-zero.amber",															"cov-fold-bitwise-and-zero",														"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-fold-bitwise-or-full-mask.amber",														"cov-fold-bitwise-or-full-mask",													"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-fold-bitwise-xor.amber",																"cov-fold-bitwise-xor",																"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-fold-div-uniform-by-zero.amber",														"cov-fold-div-uniform-by-zero",														"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-fold-div-variable-by-zero.amber",														"cov-fold-div-variable-by-zero",													"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-fold-logical-and-const-variable.amber",												"cov-fold-logical-and-const-variable",												"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-fold-logical-and-constant.amber",														"cov-fold-logical-and-constant",													"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-fold-logical-or-constant.amber",														"cov-fold-logical-or-constant",														"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-fold-negate-min-int-value.amber",														"cov-fold-negate-min-int-value",													"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-fold-negate-variable.amber",															"cov-fold-negate-variable",															"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-fold-shift-gte32.amber",																"cov-fold-shift-gte32",																"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-fold-shift-right-arithmetic.amber",													"cov-fold-shift-right-arithmetic",													"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-fold-switch-udiv.amber",																"cov-fold-switch-udiv",																"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-folding-clamp-cmp-const-first.amber",													"cov-folding-clamp-cmp-const-first",												"A fragment shader that covers a specific constant folding path"					},
+{	"cov-folding-merge-add-sub-uniform.amber",													"cov-folding-merge-add-sub-uniform",												"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-folding-rules-construct-extract.amber",												"cov-folding-rules-construct-extract",												"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-folding-rules-dot-extract.amber",														"cov-folding-rules-dot-extract",													"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-folding-rules-dot-no-extract.amber",													"cov-folding-rules-dot-no-extract",													"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-folding-rules-merge-add-sub.amber",													"cov-folding-rules-merge-add-sub",													"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-folding-rules-merge-div-mul.amber",													"cov-folding-rules-merge-div-mul",													"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-folding-rules-merge-divs.amber",														"cov-folding-rules-merge-divs",														"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-folding-rules-merge-mul-div.amber",													"cov-folding-rules-merge-mul-div",													"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-folding-rules-merge-sub-add.amber",													"cov-folding-rules-merge-sub-add",													"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-folding-rules-merge-sub-sub.amber",													"cov-folding-rules-merge-sub-sub",													"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-folding-rules-merge-var-sub.amber",													"cov-folding-rules-merge-var-sub",													"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-folding-rules-mix-uniform-weight.amber",												"cov-folding-rules-mix-uniform-weight",												"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-folding-rules-negate-div.amber",														"cov-folding-rules-negate-div",														"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-folding-rules-negate-sub.amber",														"cov-folding-rules-negate-sub",														"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-folding-rules-redundant-mix.amber",													"cov-folding-rules-redundant-mix",													"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-folding-rules-shuffle-extract.amber",													"cov-folding-rules-shuffle-extract",												"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-folding-rules-shuffle-mix.amber",														"cov-folding-rules-shuffle-mix",													"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-folding-rules-split-vector-init.amber",												"cov-folding-rules-split-vector-init",												"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-folding-rules-vec-mix-uniform.amber",													"cov-folding-rules-vec-mix-uniform",												"A fragment shader that covers a specific instruction folding path."				},
+{	"cov-if-conversion-identical-branches.amber",												"cov-if-conversion-identical-branches",												"A fragment shader that covers a specific if condition conversion path."			},
+{	"cov-inc-inside-switch-and-for.amber",														"cov-inc-inside-switch-and-for",													"A fragment shader that covers a specific LLVM analysis code path."					},
+{	"cov-increment-inside-clamp.amber",															"cov-increment-inside-clamp",														"A fragment shader that covers specific value tracking and simplification paths"	},
+{	"cov-inline-pass-empty-block.amber",														"cov-inline-pass-empty-block",														"A fragment shader that covers a specific inlining optimization path."				},
+{	"cov-inline-pass-nested-loops.amber",														"cov-inline-pass-nested-loops",														"A fragment shader that covers a specific inlining optimization path."				},
+{	"cov-inline-pass-return-in-loop.amber",														"cov-inline-pass-return-in-loop",													"A fragment shader that covers a specific inlining optimization path."				},
+{	"cov-inline-pass-unreachable-func.amber",													"cov-inline-pass-unreachable-func",													"A fragment shader that covers a specific inlining optimization path."				},
+{	"cov-intervalmap-set-stop.amber",															"cov-intervalmap-set-stop",															"A fragment shader that covers a specific interval map code path."					},
+{	"cov-irbuilder-matrix-cell-uniform.amber",													"cov-irbuilder-matrix-cell-uniform",												"A fragment shader that covers a specific IR builder path."							},
+{	"cov-liveinterval-different-dest.amber",													"cov-liveinterval-different-dest",													"A fragment shader that covers a specific live interval code path."					},
+{	"cov-loop-findmsb-findlsb.amber",															"cov-loop-findmsb-findlsb",															"A fragment shader that covers specific simplification and value tracking paths"	},
+{	"cov-machinevaluetype-one-iter-loop.amber",													"cov-machinevaluetype-one-iter-loop",												"A fragment shader that covers a specific machine value type code path"				},
+{	"cov-max-clamp-same-minval.amber",															"cov-max-clamp-same-minval",														"A fragment shader that covers a specific instruction simplification path"			},
+{	"cov-mem-pass-sum-struct-members.amber",													"cov-mem-pass-sum-struct-members",													"A fragment shader that covers a specific mem pass code path."						},
+{	"cov-mem-pass-unused-component.amber",														"cov-mem-pass-unused-component",													"A fragment shader that covers a specific mem pass code path."						},
+{	"cov-merge-return-condition-twice.amber",													"cov-merge-return-condition-twice",													"A fragment shader that covers a specific return merge path."						},
+{	"cov-modf-integer-to-private.amber",														"cov-modf-integer-to-private",														"A fragment shader that covers a specific private to local path."					},
+{	"cov-pattern-match-signum.amber",															"cov-pattern-match-signum",															"A fragment shader that covers a specific pattern matching path."					},
+{	"cov-pattern-match-single-bit.amber",														"cov-pattern-match-single-bit",														"A fragment shader that covers a specific pattern matching path."					},
+{	"cov-reduce-load-replace-extract.amber",													"cov-reduce-load-replace-extract",													"A fragment shader that covers a specific load size reduction path."				},
+{	"cov-replace-copy-object.amber",															"cov-replace-copy-object",															"A fragment shader that covers a specific shader simplification path."				},
+{	"cov-scaled-number-nested-loops.amber",														"cov-scaled-number-nested-loops",													"A fragment shader that covers a specific scaled number code path."					},
+{	"cov-selection-dag-same-cond-twice.amber",													"cov-selection-dag-same-cond-twice",												"A fragment shader that covers a specific selection DAG code path"					},
+{	"cov-set-vector-cos-fragcoord.amber",														"cov-set-vector-cos-fragcoord",														"A fragment shader that covers a specific set vector code path."					},
+{	"cov-simplification-unused-struct.amber",													"cov-simplification-unused-struct",													"A fragment shader that covers a specific shader simplification path."				},
+{	"cov-simplification-while-inside-for.amber",												"cov-simplification-while-inside-for",												"A fragment shader that covers a specific code simplification path."				},
+{	"cov-simplify-clamp-max-itself.amber",														"cov-simplify-clamp-max-itself",													"A fragment shader that covers a specific instruction simplification code path"		},
+{	"cov-simplify-component-uniform-idx.amber",													"cov-simplify-component-uniform-idx",												"A fragment shader that covers a specific instruction simplification code path"		},
+{	"cov-simplify-div-by-uint-one.amber",														"cov-simplify-div-by-uint-one",														"A fragment shader that covers a specific instruction simplification code path"		},
+{	"cov-simplify-ldexp-exponent-zero.amber",													"cov-simplify-ldexp-exponent-zero",													"A fragment shader that covers a specific instruction simplification code path"		},
+{	"cov-simplify-mul-identity.amber",															"cov-simplify-mul-identity",														"A fragment shader that covers a specific instruction simplification code path"		},
+{	"cov-simplify-not-less-than-neg.amber",														"cov-simplify-not-less-than-neg",													"A fragment shader that covers a specific instruction simplification code path"		},
+{	"cov-simplify-select-fragcoord.amber",														"cov-simplify-select-fragcoord",													"A fragment shader that covers a specific instruction simplification code path"		},
+{	"cov-simplify-sign-cosh.amber",																"cov-simplify-sign-cosh",															"A fragment shader that covers a specific instruction simplification path"			},
+{	"cov-simplify-smoothstep-undef.amber",														"cov-simplify-smoothstep-undef",													"A fragment shader that covers a specific instruction simplification code path"		},
+{	"cov-single-block-elim-self-assign.amber",													"cov-single-block-elim-self-assign",												"A fragment shader that covers a specific single block elimination path."			},
+{	"cov-single-store-elim-assume-store.amber",													"cov-single-store-elim-assume-store",												"A fragment shader that covers a specific single store elimination path."			},
+{	"cov-ssa-rewrite-case-with-default.amber",													"cov-ssa-rewrite-case-with-default",												"A fragment shader that covers a specific SSA rewrite path."						},
+{	"cov-target-lowering-dfdx-cos.amber",														"cov-target-lowering-dfdx-cos",														"A fragment shader that covers a specific target lowering code path."				},
+{	"cov-types-return-in-main-never-hit.amber",													"cov-types-return-in-main-never-hit",												"A fragment shader that covers a specific types optimization path."					},
+{	"cov-val-cfg-case-fallthrough.amber",														"cov-val-cfg-case-fallthrough",														"A fragment shader that covers a specific shader validation path."					},
+{	"cov-value-tracking-const-dfdy.amber",														"cov-value-tracking-const-dfdy",													"A fragment shader that covers a specific value tracking code path"					},
+{	"cov-value-tracking-inclusive-or.amber",													"cov-value-tracking-inclusive-or",													"A fragment shader that covers a specific value tracking path"						},
+{	"cov-value-tracking-uniform-incident.amber",												"cov-value-tracking-uniform-incident",												"A fragment shader that covers a specific value tracking code path"					},
+{	"cov-vector-dce-inc-unused-comp.amber",														"cov-vector-dce-inc-unused-comp",													"A fragment shader that covers a specific vector DCE path."							},
+{	"cov-vector-dce-unused-component.amber",													"cov-vector-dce-unused-component",													"A fragment shader that covers a specific vector DCE path."							},
+{	"cov-vector-log2-cosh.amber",																"cov-vector-log2-cosh",																"A fragment shader that covers a specific vector log2 and cosh code path."			},
+{	"cov-wrap-op-kill-for-loop.amber",															"cov-wrap-op-kill-for-loop",														"A fragment shader that covers a specific OpKill wrapping code path"				},
+{	"cov-wrap-op-kill-two-branches.amber",														"cov-wrap-op-kill-two-branches",													"A fragment shader that covers a specific OpKill wrapping path."					},
+{	"create-color-in-do-while-for-loop.amber",													"create-color-in-do-while-for-loop",												"A fragment shader that creates the color inside two loops"							},
+{	"dead-barriers-in-loops.amber",																"dead-barriers-in-loops",															"A compute shader with dead barriers"												},
+{	"dead-struct-init.amber",																	"dead-struct-init",																	"A fragment shader that uses struct initializers"									},
+{	"disc-and-add-in-func-in-loop.amber",														"disc-and-add-in-func-in-loop",														"A fragment shader with discard and add in function in loop"						},
+{	"discard-continue-return.amber",															"discard-continue-return",															"A fragment shader with a discard, continue, and return"							},
+{	"discard-in-array-manipulating-loop.amber",													"discard-in-array-manipulating-loop",												"An array-manipulating fragment shader with a discard"								},
+{	"discard-in-loop.amber",																	"discard-in-loop",																	"A shader with a discard in a loop"													},
+{	"discard-in-loop-in-function.amber",														"discard-in-loop-in-function",														"A shader with a discard nested in a loop in a function"							},
+{	"discards-in-control-flow.amber",															"discards-in-control-flow",															"A fragment shader with discards in loops and conditionals"							},
+{	"do-while-false-loops.amber",																"do-while-false-loops",																"Code wrapped in nested single iteration loops"										},
+{	"do-while-loop-in-conditionals.amber",														"do-while-loop-in-conditionals",													"A fragment shader with do-while loop in conditional nest"							},
+{	"do-while-with-always-true-if.amber",														"do-while-with-always-true-if",														"A fragment shader with a do while that always returns"								},
+{	"do-while-with-if-condition.amber",															"do-while-with-if-condition",														"A fragment shader that has nested if condition in do while"						},
+{	"early-return-and-barrier.amber",															"early-return-and-barrier",															"A compute shader with an early return and a barrier"								},
+{	"find-msb-from-lsb.amber",																	"find-msb-from-lsb",																"A fragment shader that finds MSB from LSB"											},
+{	"for-condition-always-false.amber",															"for-condition-always-false",														"A fragment shader that uses a for loop with condition always false"				},
+{	"for-loop-with-return.amber",																"for-loop-with-return",																"A fragment shader with a for loop that loops only once"							},
+{	"for-with-ifs-and-return.amber",															"for-with-ifs-and-return",															"A fragment shader with two ifs and return/continue inside a for loop"				},
+{	"frag-coord-func-call-and-ifs.amber",														"frag-coord-func-call-and-ifs",														"A fragment shader with many uses of gl_FragCoord"									},
+{	"fragcoord-control-flow.amber",																"fragcoord-control-flow",															"A fragment shader that uses FragCoord and somewhat complex control flow"			},
+{	"fragcoord-control-flow-2.amber",															"fragcoord-control-flow-2",															"A fragment shader that uses FragCoord and somewhat complex control flow"			},
+{	"function-with-float-comparison.amber",														"function-with-float-comparison",													"A fragment shader that compares a float and a coordinate"							},
+{	"function-with-uniform-return.amber",														"function-with-uniform-return",														"A fragment shader with uniform value as a return"									},
+{	"global-array-loops.amber",																	"global-array-loops",																"A loop that writes then reads a global array"										},
+{	"if-and-switch.amber",																		"if-and-switch",																	"A fragment shader with a switch and some data flow"								},
+{	"increment-value-in-nested-for-loop.amber",													"increment-value-in-nested-for-loop",												"A frag. shader that increments a value in nested for loop"							},
+{	"injection-switch-as-comparison.amber",														"injection-switch-as-comparison",													"A fragment shader with uniform comparison in loop"									},
+{	"int-mat2-struct.amber",																	"int-mat2-struct",																	"Fragment shader using (int, mat2) struct"											},
+{	"loop-call-discard.amber",																	"loop-call-discard",																"A fragment shader with nested loops and a function call"							},
+{	"loop-dead-if-loop.amber",																	"loop-dead-if-loop",																"A fragment shader with a loop, dead if, and a loop"								},
+{	"loop-nested-ifs.amber",																	"loop-nested-ifs",																	"A fragment shader with a for loop containing nested ifs"							},
+{	"loops-breaks-returns.amber",																"loops-breaks-returns",																"A compute shader with loops, breaks, returns"										},
+{	"loops-ifs-continues-call.amber",															"loops-ifs-continues-call",															"A fragment shader with nested control flow and a call"								},
+{	"mat-array-deep-control-flow.amber",														"mat-array-deep-control-flow",														"A fragment shader that uses an array of matrices and has deep control flow"		},
+{	"mat-array-distance.amber",																	"mat-array-distance",																"A fragment shader that uses an array of matrices and distance"						},
+{	"mat-mul-in-loop.amber",																	"mat-mul-in-loop",																	"Shader with matrix multiplication in loop"											},
+{	"matrices-and-return-in-loop.amber",														"matrices-and-return-in-loop",														"A fragment shader with matrices and a return in a loop"							},
+{	"max-mix-conditional-discard.amber",														"max-mix-conditional-discard",														"A fragment shader with an expression used in two discard guards"					},
+{	"mix-floor-add.amber",																		"mix-floor-add",																	"A fragment shader with mix, uintBitsToFloat, and floor"							},
+{	"modf-gl-color.amber",																		"modf-gl-color",																	"A fragment shader with modf of gl color"											},
+{	"modf-temp-modf-color.amber",																"modf-temp-modf-color",																"A fragment shader that calls modf twice, once with color"							},
+{	"nested-for-break-mat-color.amber",															"nested-for-break-mat-color",														"Two nested for loops modify a mat4 then writes red"								},
+{	"nested-for-loops-switch-fallthrough.amber",												"nested-for-loops-switch-fallthrough",												"A fragment shader with few nested loops with fallthrough"							},
+{	"nested-for-loops-with-return.amber",														"nested-for-loops-with-return",														"A fragment shader with two nested for loops with return"							},
+{	"nested-ifs-and-return-in-for-loop.amber",													"nested-ifs-and-return-in-for-loop",												"A fragment shader with return in nest of ifs, inside loop"							},
+{	"nested-loops-switch.amber",																"nested-loops-switch",																"A fragment shader with nested loops and a switch"									},
+{	"nested-switch-break-discard.amber",														"nested-switch-break-discard",														"Nested switches with break and discard"											},
+{	"one-sized-array.amber",																	"one-sized-array",																	"A fragment shader that uses a struct with an array of size one"					},
+{	"pow-vec4.amber",																			"pow-vec4",																			"A fragment shader that uses pow"													},
+{	"return-before-writing-wrong-color.amber",													"return-before-writing-wrong-color",												"A fragment shader with return before writing wrong color"							},
+{	"return-float-from-while-loop.amber",														"return-float-from-while-loop",														"A fragment shader with unreachable while loop"										},
+{	"return-in-loop-in-function.amber",															"return-in-loop-in-function",														"A fragment shader with early return from loop in function"							},
+{	"return-inside-loop-in-function.amber",														"return-inside-loop-in-function",													"A fragment shader with return inside loop"											},
+{	"return-mat2x3-value-from-func.amber",														"return-mat2x3-value-from-func",													"A fragment shader that has a function with mat2x3"									},
+{	"returned-boolean-in-vector.amber",															"returned-boolean-in-vector",														"A fragment shader with returned boolean in vector"									},
+{	"set-color-in-one-iteration-while-loop.amber",												"set-color-in-one-iteration-while-loop",											"A frag shader that sets the color in one iter while loop"							},
+{	"similar-nested-ifs.amber",																	"similar-nested-ifs",																"A fragment shader with similar nested ifs and loops"								},
+{	"smoothstep-after-loop.amber",																"smoothstep-after-loop",															"Fragment shader with 1-iteration loop and smoothstep"								},
+{	"stable-binarysearch-tree-with-loop-read-write-global.amber",								"stable-binarysearch-tree-with-loop-read-write-global",								"A pair of fragment shaders that both render red"									},
+{	"struct-and-unreachable-infinite-loop.amber",												"struct-and-unreachable-infinite-loop",												"Fragment shader with struct and unreachable infinite loop"							},
+{	"struct-array-data-as-loop-iterator.amber",													"struct-array-data-as-loop-iterator",												"A fragment shader that uses struct array data for loop iterator value"				},
+{	"struct-controlled-loop.amber",																"struct-controlled-loop",															"Shader with loop controlled by struct"												},
+{	"struct-used-as-temporary.amber",															"struct-used-as-temporary",															"A fragment shader that uses a temporary struct variable"							},
+{	"switch-case-with-undefined-expression.amber",												"switch-case-with-undefined-expression",											"A fragment shader with undefined expression"										},
+{	"switch-if-discard.amber",																	"switch-if-discard",																"A fragment shader with a switch, if, and discard"									},
+{	"switch-inside-while-always-return.amber",													"switch-inside-while-always-return",												"A fragment shader with a switch inside while always return"						},
+{	"switch-loop-switch-if.amber",																"switch-loop-switch-if",															"A nested switch-loop-switch"														},
+{	"switch-with-empty-if-false.amber",															"switch-with-empty-if-false",														"A fragment shader with always false if in switch statement"						},
+{	"switch-with-fall-through-cases.amber",														"switch-with-fall-through-cases",													"A fragment shader with switch cases that fall through"								},
+{	"swizzle-struct-init-min.amber",															"swizzle-struct-init-min",															"A fragment shader that uses vector swizzles, struct initializers, and min"			},
+{	"texel_offset.amber",															"texel_offset",															"A fragment shader that uses texture loads with an offset specified"				},
+{	"transpose-rectangular-matrix.amber",														"transpose-rectangular-matrix",														"Fragment shader that uses 'transpose'"												},
+{	"two-2-iteration-loops.amber",																"two-2-iteration-loops",															"Fragment shader with pair of outer loops"											},
+{	"two-for-loops-with-barrier-function.amber",												"two-for-loops-with-barrier-function",												"A compute shader with two barrier functions"										},
+{	"two-loops-mat-add.amber",																	"two-loops-mat-add",																"A fragment shader with two for loops over a global matrix"							},
+{	"two-loops-matrix.amber",																	"two-loops-matrix",																	"A fragment shader with two loops and some matrices"								},
+{	"two-loops-set-struct.amber",																"two-loops-set-struct",																"A fragment shader with two loops that write to a struct"							},
+{	"two-loops-with-break.amber",																"two-loops-with-break",																"A fragment shader with two loops with breaks"										},
+{	"two-nested-do-whiles.amber",																"two-nested-do-whiles",																"A fragment shader with nested do while"											},
+{	"two-nested-for-loops-with-returns.amber",													"two-nested-for-loops-with-returns",												"A compute shader with two nested for loops"										},
+{	"two-nested-infinite-loops-discard.amber",													"two-nested-infinite-loops-discard",												"A fragment shader with an always false if function"								},
+{	"undefined-integer-in-function.amber",														"undefined-integer-in-function",													"A fragment shader with nested do while and undefined int"							},
+{	"uninit-element-cast-in-loop.amber",														"uninit-element-cast-in-loop",														"A fragment shader with uninitialized element cast in loop"							},
+{	"uninitialized-var-decrement-and-add.amber",												"uninitialized-var-decrement-and-add",												"A fragment shader that uses an uninitialized variable"								},
+{	"undefined-assign-in-infinite-loop.amber",													"undefined-assign-in-infinite-loop",												"A fragment shader with uninitialized read in infinite loop"						},
+{	"unreachable-barrier-in-loops.amber",														"unreachable-barrier-in-loops",														"A compute shader with an unreachable barrier in a loop nest"						},
+{	"unreachable-continue-statement.amber",														"unreachable-continue-statement",													"A fragment shader with unreachable continue statement"								},
+{	"unreachable-discard-statement-in-if.amber",												"unreachable-discard-statement-in-if",												"A fragment shader with discard keyword and a return"								},
+{	"unreachable-discard-statement.amber",														"unreachable-discard-statement",													"A fragment shader with unreachable discard statement"								},
+{	"unreachable-loops.amber",																	"unreachable-loops",																"Fragment shader that writes red despite unreachable loops"							},
+{	"unreachable-loops-in-switch.amber",														"unreachable-loops-in-switch",														"A fragment shader with unreachable loops in a switch"								},
+{	"unreachable-return-in-loop.amber",															"unreachable-return-in-loop",														"A fragment shader with an unreachable return in a loop"							},
+{	"unreachable-switch-case-with-discards.amber",												"unreachable-switch-case-with-discards",											"A shader with a switch statement containing unreachable discards"					},
+{	"uv-value-comparison-as-boolean.amber",														"uv-value-comparison-as-boolean",													"A fragment shader with uv value comparison as boolean"								},
+{	"vector-values-multiplied-by-fragcoord.amber",												"vector-values-multiplied-by-fragcoord",											"A shader that multiplies a vector by fragcoord"									},
+{	"vectors-and-discard-in-function.amber",													"vectors-and-discard-in-function",													"A fragment shader that assigns vector values"										},
+{	"while-function-always-false.amber",														"while-function-always-false",														"A fragment shader with an always false while function"								},
+{	"while-inside-switch.amber",																"while-inside-switch",																"A fragment shader that uses a while loop inside a switch"							},
+{	"write-before-break.amber",																	"write-before-break",																"Fragment shader that writes red before loop break"									},
+{	"write-red-in-loop-nest.amber",																"write-red-in-loop-nest",															"A fragment shader that writes red in a nest of loops"								},
+{	"wrong-color-in-always-false-if.amber",														"wrong-color-in-always-false-if",													"A fragment shader with wrong color write in false if"								},
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/nested-for-loops-switch-fallthrough.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/nested-for-loops-switch-fallthrough.amber
new file mode 100644
index 0000000..7cbee38
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/nested-for-loops-switch-fallthrough.amber
@@ -0,0 +1,555 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: A fragment shader with few nested loops with fallthrough
+
+# A fragment shader with several nested loops depending on each other and switch case with fallthrough.
+# The test passes because shader always writes red.
+
+# Optimized using spirv-opt with the following arguments:
+# '-O'
+# spirv-opt commit hash: ab7ac60f14ae66006bed5c989a2cfd4c4881704c
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float zero;
+# };
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#     float sums[9];
+#     int sum_index = 0;
+#
+#     _GLF_color = vec4(0, 0, 0, 1);
+#
+#     sums[0] = 0.0;
+#
+#     // sum_index is modified in loops A and B like this:
+#     // A: 0 -> 1, 1 -> 2
+#     // B: 2 -> 3
+#     // A: 3 -> 4, 4 -> 5
+#     // B: 5 -> 6. At this point we set red channel to 1.
+#     // A: 6: return from main.
+#     for(int i0 = 2; i0 < 5; i0++)
+#     {
+#         // Loop A: After this loop sum_index = sum_index + 2.
+#         for(int i1 = 2; i1 < 4; i1++)
+#         {
+#             for(int i2 = 0; i2 < i0; i2++)
+#             {
+#                 for(int i3 = 0; i3 < i1; i3++)
+#                 {
+#                     switch(sum_index)
+#                     {
+#                         case 0:
+#                             sums[sum_index]++;
+#                             break;
+#                         case 1:
+#                             sums[sum_index]++;
+#                             break;
+#                         case 2:
+#                             sums[sum_index]++;
+#                         case 3:
+#                             sums[sum_index]++;
+#                         case 4:
+#                             sums[sum_index]++;
+#                         case 5:
+#                             sums[sum_index]++;
+#                             break;
+#                         case 6:
+#                             // This is hit eventually.
+#                             return;
+#                         case 7:
+#                             sums[sum_index]++;
+#                             break;
+#                         case 8:
+#                             sums[sum_index]++;
+#                     }
+#                 }
+#             }
+#
+#             if(clamp(1.0, gl_FragCoord.y, gl_FragCoord.y) < 0.0) // Always false.
+#                 continue;
+#
+#             if(zero < 0.0) // Always false.
+#                 sums[sum_index]++;
+#
+#             if(gl_FragCoord.y < 0.0) // Always false.
+#                 discard;
+#
+#             sum_index++;
+#         }
+#
+#         // Loop B: After this loop sum_index = sum_index + 1.
+#         //
+#         // Cases that are not supposed to be hit set the green channel
+#         // to one to mark an error.
+#         for(int i4 = 4; i4 < 5; i4++)
+#         {
+#             for(int i5 = 0; i5 < i0; i5++)
+#             {
+#                 for(int i6 = 0; i6 < i4; i6++)
+#                 {
+#                     switch(sum_index)
+#                     {
+#                         case 0:
+#                             sums[sum_index]++;
+#                             _GLF_color.g = 1.0;
+#                         case 1:
+#                             sums[sum_index]++;
+#                             _GLF_color.g = 1.0;
+#                         case 2:
+#                             sums[sum_index]++;
+#                             break;
+#                         case 3:
+#                             sums[sum_index]++;
+#                             _GLF_color.g = 1.0;
+#                         case 4:
+#                             sums[sum_index]++;
+#                             _GLF_color.g = 1.0;
+#                             break;
+#                         case 5:
+#                             sums[sum_index]++;
+#                             if (sums[0] != 0.0) // Always true.
+#                                 _GLF_color.r = 1.0;
+#                             break;
+#                         case 6:
+#                             sums[sum_index]++;
+#                             _GLF_color.g = 1.0;
+#                         case 7:
+#                             sums[sum_index]++;
+#                             _GLF_color.g = 1.0;
+#                         case 8:
+#                             sums[sum_index]++;
+#                             _GLF_color.g = 1.0;
+#                     }
+#                 }
+#             }
+#
+#             sum_index++;
+#
+#             if (zero < 1.0) // Always true, but we run the loop only once anyway.
+#                 break;
+#         }
+#     }
+#
+#     // We never reach here. Both branches write incorrect color.
+#     if (sums[0] == 0.0)
+#         _GLF_color = vec4(0);
+#     else
+#         _GLF_color = vec4(1);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 358
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %13 %117
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %13 "_GLF_color"
+               OpName %21 "sums"
+               OpName %117 "gl_FragCoord"
+               OpName %129 "buf0"
+               OpMemberName %129 0 "zero"
+               OpName %131 ""
+               OpDecorate %13 Location 0
+               OpDecorate %117 BuiltIn FragCoord
+               OpMemberDecorate %129 0 Offset 0
+               OpDecorate %129 Block
+               OpDecorate %131 DescriptorSet 0
+               OpDecorate %131 Binding 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %9 = OpConstant %6 0
+         %10 = OpTypeFloat 32
+         %11 = OpTypeVector %10 4
+         %12 = OpTypePointer Output %11
+         %13 = OpVariable %12 Output
+         %14 = OpConstant %10 0
+         %15 = OpConstant %10 1
+         %16 = OpConstantComposite %11 %14 %14 %14 %15
+         %17 = OpTypeInt 32 0
+         %18 = OpConstant %17 9
+         %19 = OpTypeArray %10 %18
+         %20 = OpTypePointer Function %19
+         %22 = OpTypePointer Function %10
+         %25 = OpConstant %6 2
+         %32 = OpConstant %6 5
+         %33 = OpTypeBool
+         %42 = OpConstant %6 4
+        %112 = OpConstant %6 1
+        %116 = OpTypePointer Input %11
+        %117 = OpVariable %116 Input
+        %118 = OpConstant %17 1
+        %119 = OpTypePointer Input %10
+        %129 = OpTypeStruct %10
+        %130 = OpTypePointer Uniform %129
+        %131 = OpVariable %130 Uniform
+        %132 = OpTypePointer Uniform %10
+        %193 = OpTypePointer Output %10
+        %225 = OpConstant %17 0
+        %265 = OpConstantComposite %11 %14 %14 %14 %14
+        %267 = OpConstantComposite %11 %15 %15 %15 %15
+        %272 = OpConstantFalse %33
+        %275 = OpConstantTrue %33
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %21 = OpVariable %20 Function
+               OpBranch %269
+        %269 = OpLabel
+               OpStore %13 %16
+         %23 = OpAccessChain %22 %21 %9
+               OpStore %23 %14
+               OpLoopMerge %268 %271 None
+               OpBranch %26
+         %26 = OpLabel
+        %300 = OpPhi %33 %272 %269 %312 %29
+        %295 = OpPhi %6 %9 %269 %356 %29
+        %284 = OpPhi %6 %25 %269 %259 %29
+         %34 = OpSLessThan %33 %284 %32
+               OpLoopMerge %28 %29 None
+               OpBranchConditional %34 %27 %28
+         %27 = OpLabel
+               OpBranch %36
+         %36 = OpLabel
+        %299 = OpPhi %33 %300 %27 %304 %39
+        %294 = OpPhi %6 %295 %27 %357 %39
+        %285 = OpPhi %6 %25 %27 %151 %39
+         %43 = OpSLessThan %33 %285 %42
+               OpLoopMerge %38 %39 None
+               OpBranchConditional %43 %37 %38
+         %37 = OpLabel
+               OpBranch %45
+         %45 = OpLabel
+        %298 = OpPhi %33 %299 %37 %296 %48
+        %286 = OpPhi %6 %9 %37 %115 %48
+         %52 = OpSLessThan %33 %286 %284
+               OpLoopMerge %47 %48 None
+               OpBranchConditional %52 %46 %47
+         %46 = OpLabel
+               OpBranch %54
+         %54 = OpLabel
+        %289 = OpPhi %6 %9 %46 %113 %57
+         %61 = OpSLessThan %33 %289 %285
+               OpLoopMerge %56 %57 None
+               OpBranchConditional %61 %55 %56
+         %55 = OpLabel
+               OpSelectionMerge %72 None
+               OpSwitch %294 %72 0 %63 1 %64 2 %65 3 %66 4 %67 5 %68 6 %69 7 %70 8 %71
+         %63 = OpLabel
+         %74 = OpAccessChain %22 %21 %294
+         %75 = OpLoad %10 %74
+         %76 = OpFAdd %10 %75 %15
+               OpStore %74 %76
+               OpBranch %72
+         %64 = OpLabel
+         %79 = OpAccessChain %22 %21 %294
+         %80 = OpLoad %10 %79
+         %81 = OpFAdd %10 %80 %15
+               OpStore %79 %81
+               OpBranch %72
+         %65 = OpLabel
+         %84 = OpAccessChain %22 %21 %294
+         %85 = OpLoad %10 %84
+         %86 = OpFAdd %10 %85 %15
+               OpStore %84 %86
+               OpBranch %66
+         %66 = OpLabel
+         %88 = OpAccessChain %22 %21 %294
+         %89 = OpLoad %10 %88
+         %90 = OpFAdd %10 %89 %15
+               OpStore %88 %90
+               OpBranch %67
+         %67 = OpLabel
+         %92 = OpAccessChain %22 %21 %294
+         %93 = OpLoad %10 %92
+         %94 = OpFAdd %10 %93 %15
+               OpStore %92 %94
+               OpBranch %68
+         %68 = OpLabel
+         %96 = OpAccessChain %22 %21 %294
+         %97 = OpLoad %10 %96
+         %98 = OpFAdd %10 %97 %15
+               OpStore %96 %98
+               OpBranch %72
+         %69 = OpLabel
+               OpBranch %56
+         %70 = OpLabel
+        %102 = OpAccessChain %22 %21 %294
+        %103 = OpLoad %10 %102
+        %104 = OpFAdd %10 %103 %15
+               OpStore %102 %104
+               OpBranch %72
+         %71 = OpLabel
+        %107 = OpAccessChain %22 %21 %294
+        %108 = OpLoad %10 %107
+        %109 = OpFAdd %10 %108 %15
+               OpStore %107 %109
+               OpBranch %72
+         %72 = OpLabel
+               OpBranch %57
+         %57 = OpLabel
+        %113 = OpIAdd %6 %289 %112
+               OpBranch %54
+         %56 = OpLabel
+        %296 = OpPhi %33 %298 %54 %275 %69
+               OpSelectionMerge %276 None
+               OpBranchConditional %296 %47 %276
+        %276 = OpLabel
+               OpBranch %48
+         %48 = OpLabel
+        %115 = OpIAdd %6 %286 %112
+               OpBranch %45
+         %47 = OpLabel
+        %304 = OpPhi %33 %298 %45 %296 %56
+               OpSelectionMerge %278 None
+               OpBranchConditional %304 %38 %278
+        %278 = OpLabel
+        %120 = OpAccessChain %119 %117 %118
+        %121 = OpLoad %10 %120
+        %124 = OpExtInst %10 %1 FClamp %15 %121 %121
+        %125 = OpFOrdLessThan %33 %124 %14
+               OpSelectionMerge %127 None
+               OpBranchConditional %125 %126 %127
+        %126 = OpLabel
+               OpBranch %39
+        %127 = OpLabel
+        %133 = OpAccessChain %132 %131 %9
+        %134 = OpLoad %10 %133
+        %135 = OpFOrdLessThan %33 %134 %14
+               OpSelectionMerge %137 None
+               OpBranchConditional %135 %136 %137
+        %136 = OpLabel
+        %139 = OpAccessChain %22 %21 %294
+        %140 = OpLoad %10 %139
+        %141 = OpFAdd %10 %140 %15
+               OpStore %139 %141
+               OpBranch %137
+        %137 = OpLabel
+        %144 = OpFOrdLessThan %33 %121 %14
+               OpSelectionMerge %146 None
+               OpBranchConditional %144 %145 %146
+        %145 = OpLabel
+               OpKill
+        %146 = OpLabel
+        %149 = OpIAdd %6 %294 %112
+               OpBranch %39
+         %39 = OpLabel
+        %357 = OpPhi %6 %294 %126 %149 %146
+        %151 = OpIAdd %6 %285 %112
+               OpBranch %36
+         %38 = OpLabel
+        %312 = OpPhi %33 %299 %36 %304 %47
+               OpSelectionMerge %280 None
+               OpBranchConditional %312 %28 %280
+        %280 = OpLabel
+               OpBranch %153
+        %153 = OpLabel
+        %322 = OpPhi %6 %294 %280 %249 %156
+        %313 = OpPhi %6 %42 %280 %257 %156
+        %159 = OpSLessThan %33 %313 %32
+               OpLoopMerge %155 %156 None
+               OpBranchConditional %159 %154 %155
+        %154 = OpLabel
+               OpBranch %161
+        %161 = OpLabel
+        %314 = OpPhi %6 %9 %154 %247 %164
+        %168 = OpSLessThan %33 %314 %284
+               OpLoopMerge %163 %164 None
+               OpBranchConditional %168 %162 %163
+        %162 = OpLabel
+               OpBranch %170
+        %170 = OpLabel
+        %326 = OpPhi %6 %9 %162 %245 %173
+        %177 = OpSLessThan %33 %326 %313
+               OpLoopMerge %172 %173 None
+               OpBranchConditional %177 %171 %172
+        %171 = OpLabel
+               OpSelectionMerge %188 None
+               OpSwitch %322 %188 0 %179 1 %180 2 %181 3 %182 4 %183 5 %184 6 %185 7 %186 8 %187
+        %179 = OpLabel
+        %190 = OpAccessChain %22 %21 %322
+        %191 = OpLoad %10 %190
+        %192 = OpFAdd %10 %191 %15
+               OpStore %190 %192
+        %194 = OpAccessChain %193 %13 %118
+               OpStore %194 %15
+               OpBranch %180
+        %180 = OpLabel
+        %196 = OpAccessChain %22 %21 %322
+        %197 = OpLoad %10 %196
+        %198 = OpFAdd %10 %197 %15
+               OpStore %196 %198
+        %199 = OpAccessChain %193 %13 %118
+               OpStore %199 %15
+               OpBranch %181
+        %181 = OpLabel
+        %201 = OpAccessChain %22 %21 %322
+        %202 = OpLoad %10 %201
+        %203 = OpFAdd %10 %202 %15
+               OpStore %201 %203
+               OpBranch %188
+        %182 = OpLabel
+        %206 = OpAccessChain %22 %21 %322
+        %207 = OpLoad %10 %206
+        %208 = OpFAdd %10 %207 %15
+               OpStore %206 %208
+        %209 = OpAccessChain %193 %13 %118
+               OpStore %209 %15
+               OpBranch %183
+        %183 = OpLabel
+        %211 = OpAccessChain %22 %21 %322
+        %212 = OpLoad %10 %211
+        %213 = OpFAdd %10 %212 %15
+               OpStore %211 %213
+        %214 = OpAccessChain %193 %13 %118
+               OpStore %214 %15
+               OpBranch %188
+        %184 = OpLabel
+        %217 = OpAccessChain %22 %21 %322
+        %218 = OpLoad %10 %217
+        %219 = OpFAdd %10 %218 %15
+               OpStore %217 %219
+        %221 = OpLoad %10 %23
+        %222 = OpFOrdNotEqual %33 %221 %14
+               OpSelectionMerge %224 None
+               OpBranchConditional %222 %223 %224
+        %223 = OpLabel
+        %226 = OpAccessChain %193 %13 %225
+               OpStore %226 %15
+               OpBranch %224
+        %224 = OpLabel
+               OpBranch %188
+        %185 = OpLabel
+        %229 = OpAccessChain %22 %21 %322
+        %230 = OpLoad %10 %229
+        %231 = OpFAdd %10 %230 %15
+               OpStore %229 %231
+        %232 = OpAccessChain %193 %13 %118
+               OpStore %232 %15
+               OpBranch %186
+        %186 = OpLabel
+        %234 = OpAccessChain %22 %21 %322
+        %235 = OpLoad %10 %234
+        %236 = OpFAdd %10 %235 %15
+               OpStore %234 %236
+        %237 = OpAccessChain %193 %13 %118
+               OpStore %237 %15
+               OpBranch %187
+        %187 = OpLabel
+        %239 = OpAccessChain %22 %21 %322
+        %240 = OpLoad %10 %239
+        %241 = OpFAdd %10 %240 %15
+               OpStore %239 %241
+        %242 = OpAccessChain %193 %13 %118
+               OpStore %242 %15
+               OpBranch %188
+        %188 = OpLabel
+               OpBranch %173
+        %173 = OpLabel
+        %245 = OpIAdd %6 %326 %112
+               OpBranch %170
+        %172 = OpLabel
+               OpBranch %164
+        %164 = OpLabel
+        %247 = OpIAdd %6 %314 %112
+               OpBranch %161
+        %163 = OpLabel
+        %249 = OpIAdd %6 %322 %112
+        %250 = OpAccessChain %132 %131 %9
+        %251 = OpLoad %10 %250
+        %252 = OpFOrdLessThan %33 %251 %15
+               OpSelectionMerge %254 None
+               OpBranchConditional %252 %253 %254
+        %253 = OpLabel
+               OpBranch %155
+        %254 = OpLabel
+               OpBranch %156
+        %156 = OpLabel
+        %257 = OpIAdd %6 %313 %112
+               OpBranch %153
+        %155 = OpLabel
+        %356 = OpPhi %6 %322 %153 %249 %253
+               OpBranch %29
+         %29 = OpLabel
+        %259 = OpIAdd %6 %284 %112
+               OpBranch %26
+         %28 = OpLabel
+        %342 = OpPhi %33 %300 %26 %312 %38
+               OpSelectionMerge %282 None
+               OpBranchConditional %342 %268 %282
+        %282 = OpLabel
+        %261 = OpLoad %10 %23
+        %262 = OpFOrdEqual %33 %261 %14
+               OpSelectionMerge %264 None
+               OpBranchConditional %262 %263 %266
+        %263 = OpLabel
+               OpStore %13 %265
+               OpBranch %264
+        %266 = OpLabel
+               OpStore %13 %267
+               OpBranch %264
+        %264 = OpLabel
+               OpBranch %268
+        %271 = OpLabel
+               OpBranch %269
+        %268 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# zero
+BUFFER variant_zero DATA_TYPE float DATA
+ 0.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_zero AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/one-sized-array.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/one-sized-array.amber
new file mode 100644
index 0000000..b56cd9b
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/one-sized-array.amber
@@ -0,0 +1,205 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: A fragment shader that uses a struct with an array of size one
+
+# The test passes because the shader always writes red.
+
+# Optimized using spirv-opt with the following arguments:
+# '--wrap-opkill'
+# '--eliminate-dead-branches'
+# '--merge-return'
+# '--inline-entry-points-exhaustive'
+# '--eliminate-dead-functions'
+# '--private-to-local'
+# '--scalar-replacement=0'
+# '--ssa-rewrite'
+# '--ccp'
+# '--loop-unroll'
+# '--eliminate-dead-branches'
+# '--simplify-instructions'
+# '--scalar-replacement=0'
+# '--eliminate-local-single-store'
+# '--if-conversion'
+# '--simplify-instructions'
+# '--eliminate-dead-code-aggressive'
+# '--eliminate-dead-branches'
+# '--merge-blocks'
+# spirv-opt commit hash: dd3d91691f1e1dc4c0f42818756cf5e165c8918c
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# struct S
+# {
+#     int x[1];
+# };
+#
+# layout(location = 0) out vec4 _GLF_color;
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     int zero;
+# };
+#
+# // Function returns 1 or 2.
+# int func(S s, int a)
+# {
+#     _GLF_color = vec4(0);
+#
+#     if(s.x[0] == a)
+#         return 1;
+#
+#     return 2;
+# }
+#
+# void main()
+# {
+#     S s;
+#     s.x[0] = zero;
+#
+#     int res = func(s, s.x[0]);
+#
+#     // Always true.
+#     if (res == 1)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 90
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %21
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %21 "_GLF_color"
+               OpName %38 "buf0"
+               OpMemberName %38 0 "zero"
+               OpName %40 ""
+               OpDecorate %21 Location 0
+               OpMemberDecorate %38 0 RelaxedPrecision
+               OpMemberDecorate %38 0 Offset 0
+               OpDecorate %38 Block
+               OpDecorate %40 DescriptorSet 0
+               OpDecorate %40 Binding 0
+               OpDecorate %43 RelaxedPrecision
+               OpDecorate %50 RelaxedPrecision
+               OpDecorate %74 RelaxedPrecision
+               OpDecorate %81 RelaxedPrecision
+               OpDecorate %86 RelaxedPrecision
+               OpDecorate %89 RelaxedPrecision
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypeInt 32 0
+          %8 = OpConstant %7 1
+          %9 = OpTypeArray %6 %8
+         %12 = OpTypePointer Function %6
+         %18 = OpTypeFloat 32
+         %19 = OpTypeVector %18 4
+         %20 = OpTypePointer Output %19
+         %21 = OpVariable %20 Output
+         %22 = OpConstant %18 0
+         %23 = OpConstantComposite %19 %22 %22 %22 %22
+         %24 = OpConstant %6 0
+         %28 = OpTypeBool
+         %32 = OpConstant %6 1
+         %34 = OpConstant %6 2
+         %38 = OpTypeStruct %6
+         %39 = OpTypePointer Uniform %38
+         %40 = OpVariable %39 Uniform
+         %41 = OpTypePointer Uniform %6
+         %56 = OpConstant %18 1
+         %57 = OpConstantComposite %19 %56 %22 %22 %56
+         %63 = OpConstant %7 0
+         %80 = OpTypePointer Function %9
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %86 = OpVariable %80 Function
+         %81 = OpVariable %80 Function
+         %42 = OpAccessChain %41 %40 %24
+         %43 = OpLoad %6 %42
+         %82 = OpAccessChain %12 %81 %24
+               OpStore %82 %43
+         %83 = OpLoad %9 %81
+               OpStore %86 %83
+         %85 = OpAccessChain %12 %81 %24
+         %50 = OpLoad %6 %85
+               OpSelectionMerge %71 None
+               OpSwitch %63 %72
+         %72 = OpLabel
+               OpStore %21 %23
+         %88 = OpAccessChain %12 %86 %24
+         %74 = OpLoad %6 %88
+         %76 = OpIEqual %28 %74 %50
+               OpSelectionMerge %77 None
+               OpBranchConditional %76 %78 %77
+         %78 = OpLabel
+               OpBranch %71
+         %77 = OpLabel
+               OpBranch %71
+         %71 = OpLabel
+         %89 = OpPhi %6 %32 %78 %34 %77
+         %53 = OpIEqual %28 %89 %32
+               OpSelectionMerge %55 None
+               OpBranchConditional %53 %54 %58
+         %54 = OpLabel
+               OpStore %21 %57
+               OpBranch %55
+         %58 = OpLabel
+               OpStore %21 %23
+               OpBranch %55
+         %55 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# zero
+BUFFER variant_zero DATA_TYPE int32 DATA
+ 0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_zero AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/return-mat2x3-value-from-func.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/return-mat2x3-value-from-func.amber
new file mode 100644
index 0000000..e209087
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/return-mat2x3-value-from-func.amber
@@ -0,0 +1,207 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: A fragment shader that has a function with mat2x3
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# float a = 22.0;
+#
+# // Returns variable "a" clamped to 0..25.
+# int func()
+# {
+#     float b;
+#     // Despite b being uninitialized,
+#     // the result of the clamp will be 1.
+#     int c = clamp(int(b), 1, 1);
+#
+#     // Always true.
+#     if (gl_FragCoord.x > -1.0)
+#         c = int(mat2x3(vec4(0), clamp(a, 0.0, 25.0), b)[c][c]);
+#     else
+#         c = 2;
+#
+#     return c;
+# }
+#
+# void main()
+# {
+#     // a becomes 23.0.
+#     a = float(func() + 1);
+#
+#     do
+#     {
+#         if (func() == 23)
+#             _GLF_color = vec4(1, 0, 0, 1);
+#         else
+#             _GLF_color = vec4(0, 0, 0, 0);
+#     }
+#     while(a > 23.0); // Always false
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 82
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %24 %76
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "func("
+               OpName %12 "a"
+               OpName %15 "c"
+               OpName %17 "b"
+               OpName %24 "gl_FragCoord"
+               OpName %54 "indexable"
+               OpName %76 "_GLF_color"
+               OpDecorate %24 BuiltIn FragCoord
+               OpDecorate %76 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypeFunction %6
+         %10 = OpTypeFloat 32
+         %11 = OpTypePointer Private %10
+         %12 = OpVariable %11 Private
+         %13 = OpConstant %10 22
+         %14 = OpTypePointer Function %6
+         %16 = OpTypePointer Function %10
+         %20 = OpConstant %6 1
+         %22 = OpTypeVector %10 4
+         %23 = OpTypePointer Input %22
+         %24 = OpVariable %23 Input
+         %25 = OpTypeInt 32 0
+         %26 = OpConstant %25 0
+         %27 = OpTypePointer Input %10
+         %30 = OpConstant %10 -1
+         %31 = OpTypeBool
+         %35 = OpConstant %10 0
+         %36 = OpConstantComposite %22 %35 %35 %35 %35
+         %38 = OpConstant %10 25
+         %41 = OpTypeVector %10 3
+         %42 = OpTypeMatrix %41 2
+         %43 = OpConstant %10 1
+         %53 = OpTypePointer Function %42
+         %59 = OpConstant %6 2
+         %71 = OpConstant %6 23
+         %75 = OpTypePointer Output %22
+         %76 = OpVariable %75 Output
+         %77 = OpConstantComposite %22 %43 %35 %35 %43
+         %80 = OpConstant %10 23
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+               OpStore %12 %13
+         %63 = OpFunctionCall %6 %8
+         %64 = OpIAdd %6 %63 %20
+         %65 = OpConvertSToF %10 %64
+               OpStore %12 %65
+               OpBranch %66
+         %66 = OpLabel
+               OpLoopMerge %68 %69 None
+               OpBranch %67
+         %67 = OpLabel
+         %70 = OpFunctionCall %6 %8
+         %72 = OpIEqual %31 %70 %71
+               OpSelectionMerge %74 None
+               OpBranchConditional %72 %73 %78
+         %73 = OpLabel
+               OpStore %76 %77
+               OpBranch %74
+         %78 = OpLabel
+               OpStore %76 %36
+               OpBranch %74
+         %74 = OpLabel
+               OpBranch %69
+         %69 = OpLabel
+         %79 = OpLoad %10 %12
+         %81 = OpFOrdGreaterThan %31 %79 %80
+               OpBranchConditional %81 %66 %68
+         %68 = OpLabel
+               OpReturn
+               OpFunctionEnd
+          %8 = OpFunction %6 None %7
+          %9 = OpLabel
+         %15 = OpVariable %14 Function
+         %17 = OpVariable %16 Function
+         %54 = OpVariable %53 Function
+         %18 = OpLoad %10 %17
+         %19 = OpConvertFToS %6 %18
+         %21 = OpExtInst %6 %1 SClamp %19 %20 %20
+               OpStore %15 %21
+         %28 = OpAccessChain %27 %24 %26
+         %29 = OpLoad %10 %28
+         %32 = OpFOrdGreaterThan %31 %29 %30
+               OpSelectionMerge %34 None
+               OpBranchConditional %32 %33 %58
+         %33 = OpLabel
+         %37 = OpLoad %10 %12
+         %39 = OpExtInst %10 %1 FClamp %37 %35 %38
+         %40 = OpLoad %10 %17
+         %44 = OpCompositeExtract %10 %36 0
+         %45 = OpCompositeExtract %10 %36 1
+         %46 = OpCompositeExtract %10 %36 2
+         %47 = OpCompositeExtract %10 %36 3
+         %48 = OpCompositeConstruct %41 %44 %45 %46
+         %49 = OpCompositeConstruct %41 %47 %39 %40
+         %50 = OpCompositeConstruct %42 %48 %49
+         %51 = OpLoad %6 %15
+         %52 = OpLoad %6 %15
+               OpStore %54 %50
+         %55 = OpAccessChain %16 %54 %51 %52
+         %56 = OpLoad %10 %55
+         %57 = OpConvertFToS %6 %56
+               OpStore %15 %57
+               OpBranch %34
+         %58 = OpLabel
+               OpStore %15 %59
+               OpBranch %34
+         %34 = OpLabel
+         %60 = OpLoad %6 %15
+               OpReturnValue %60
+               OpFunctionEnd
+END
+
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/set-color-in-one-iteration-while-loop.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/set-color-in-one-iteration-while-loop.amber
new file mode 100644
index 0000000..23409f0
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/set-color-in-one-iteration-while-loop.amber
@@ -0,0 +1,222 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: A frag shader that sets the color in one iter while loop
+
+# The test passes because shader always writes red.
+
+# Optimized using spirv-opt with the following arguments:
+# '-O'
+# spirv-opt commit hash: ab7ac60f14ae66006bed5c989a2cfd4c4881704c
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0 {
+#  vec2 injectionSwitch;
+# };
+#
+# void main()
+# {
+#     // Variable "val" will always end up as 1.0 or 0.0.
+#     int val = int(clamp(gl_FragCoord.x, 0.0, 1.0));
+#     vec4 color = vec4(0);
+#     _GLF_color = color;
+#
+#     do
+#     {
+#         // Loop iterates at least once.
+#         // Body of the loop is idempotent.
+#         for (int i = 0; i < val + int(injectionSwitch.y); i++)
+#         {
+#             // Always false.
+#             if (val < 0)
+#                 return;
+#             else
+#             {
+#                 if(val == 1)
+#                     // Set red and alpha to 1.0.
+#                     color.ra = vec2(val);
+#                 else
+#                     // Set red and alpha to 1.0.
+#                     color.ra = vec2(val + 1);
+#             }
+#         }
+#     }
+#     while(val < 0); // Always false.
+#
+#     _GLF_color = color;
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 106
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %12 %26
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %12 "gl_FragCoord"
+               OpName %26 "_GLF_color"
+               OpName %42 "buf0"
+               OpMemberName %42 0 "injectionSwitch"
+               OpName %44 ""
+               OpDecorate %12 BuiltIn FragCoord
+               OpDecorate %26 Location 0
+               OpMemberDecorate %42 0 Offset 0
+               OpDecorate %42 Block
+               OpDecorate %44 DescriptorSet 0
+               OpDecorate %44 Binding 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %9 = OpTypeFloat 32
+         %10 = OpTypeVector %9 4
+         %11 = OpTypePointer Input %10
+         %12 = OpVariable %11 Input
+         %13 = OpTypeInt 32 0
+         %14 = OpConstant %13 0
+         %15 = OpTypePointer Input %9
+         %18 = OpConstant %9 0
+         %19 = OpConstant %9 1
+         %24 = OpConstantComposite %10 %18 %18 %18 %18
+         %25 = OpTypePointer Output %10
+         %26 = OpVariable %25 Output
+         %33 = OpConstant %6 0
+         %41 = OpTypeVector %9 2
+         %42 = OpTypeStruct %41
+         %43 = OpTypePointer Uniform %42
+         %44 = OpVariable %43 Uniform
+         %45 = OpConstant %13 1
+         %46 = OpTypePointer Uniform %9
+         %51 = OpTypeBool
+         %60 = OpConstant %6 1
+         %85 = OpConstantFalse %51
+         %88 = OpConstantTrue %51
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+               OpBranch %82
+         %82 = OpLabel
+         %16 = OpAccessChain %15 %12 %14
+         %17 = OpLoad %9 %16
+         %20 = OpExtInst %9 %1 FClamp %17 %18 %19
+         %21 = OpConvertFToS %6 %20
+               OpStore %26 %24
+               OpLoopMerge %81 %84 None
+               OpBranch %28
+         %28 = OpLabel
+         %99 = OpPhi %51 %85 %82 %97 %31
+         %95 = OpPhi %10 %24 %82 %94 %31
+               OpLoopMerge %30 %31 None
+               OpBranch %34
+         %34 = OpLabel
+         %94 = OpPhi %10 %95 %28 %105 %37
+         %93 = OpPhi %6 %33 %28 %77 %37
+         %47 = OpAccessChain %46 %44 %33 %45
+         %48 = OpLoad %9 %47
+         %49 = OpConvertFToS %6 %48
+         %50 = OpIAdd %6 %21 %49
+         %52 = OpSLessThan %51 %93 %50
+               OpLoopMerge %36 %37 None
+               OpBranchConditional %52 %35 %36
+         %35 = OpLabel
+         %54 = OpSLessThan %51 %21 %33
+               OpSelectionMerge %56 None
+               OpBranchConditional %54 %55 %58
+         %55 = OpLabel
+               OpBranch %36
+         %58 = OpLabel
+         %61 = OpIEqual %51 %21 %60
+               OpSelectionMerge %63 None
+               OpBranchConditional %61 %62 %69
+         %62 = OpLabel
+         %65 = OpConvertSToF %9 %21
+         %66 = OpCompositeConstruct %41 %65 %65
+         %68 = OpVectorShuffle %10 %94 %66 4 1 2 5
+               OpBranch %63
+         %69 = OpLabel
+         %71 = OpIAdd %6 %21 %60
+         %72 = OpConvertSToF %9 %71
+         %73 = OpCompositeConstruct %41 %72 %72
+         %75 = OpVectorShuffle %10 %94 %73 4 1 2 5
+               OpBranch %63
+         %63 = OpLabel
+        %105 = OpPhi %10 %68 %62 %75 %69
+               OpBranch %56
+         %56 = OpLabel
+               OpBranch %37
+         %37 = OpLabel
+         %77 = OpIAdd %6 %93 %60
+               OpBranch %34
+         %36 = OpLabel
+         %97 = OpPhi %51 %99 %34 %88 %55
+               OpSelectionMerge %89 None
+               OpBranchConditional %97 %30 %89
+         %89 = OpLabel
+               OpBranch %31
+         %31 = OpLabel
+         %79 = OpSLessThan %51 %21 %33
+               OpBranchConditional %79 %28 %30
+         %30 = OpLabel
+               OpSelectionMerge %91 None
+               OpBranchConditional %97 %81 %91
+         %91 = OpLabel
+               OpStore %26 %94
+               OpBranch %81
+         %84 = OpLabel
+               OpBranch %82
+         %81 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# injectionSwitch
+BUFFER variant_injectionSwitch DATA_TYPE vec2<float> DATA
+ 0.0 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_injectionSwitch AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global.amber
new file mode 100644
index 0000000..0a03538
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global.amber
@@ -0,0 +1,1340 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: A pair of fragment shaders that both render red
+
+# The test passes because both shaders are equivalent; we check that both shaders
+# render the same image. Both shaders manipulate a binary search tree and should render red.
+# The variant shader has a redundant loop that should not affect the rendered image.
+
+SHADER vertex reference_vertex_shader PASSTHROUGH
+
+# reference_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# struct BST
+# {
+#   int data;
+#   int leftIndex;
+#   int rightIndex;
+# };
+#
+# BST tree[10];
+#
+# void makeTreeNode(inout BST node, int data)
+# {
+#   node.data = data;
+#   node.leftIndex = -1;
+#   node.rightIndex = -1;
+# }
+# void insert(int treeIndex, int data)
+# {
+#   int baseIndex = 0;
+#   while (baseIndex <= treeIndex)
+#   {
+#     if (data <= tree[baseIndex].data)
+#     {
+#       if (tree[baseIndex].leftIndex == -1)
+#       {
+#         tree[baseIndex].leftIndex = treeIndex;
+#         makeTreeNode(tree[treeIndex], data);
+#         return;
+#       }
+#       else
+#       {
+#         baseIndex = tree[baseIndex].leftIndex;
+#         continue;
+#       }
+#     }
+#     else
+#     {
+#       if (tree[baseIndex].rightIndex == -1)
+#       {
+#         tree[baseIndex].rightIndex = treeIndex;
+#         makeTreeNode(tree[treeIndex], data);
+#         return;
+#       }
+#       else
+#       {
+#         baseIndex = tree[baseIndex].rightIndex;
+#         continue;
+#       }
+#     }
+#   }
+# }
+# int search(int target)
+# {
+#   BST currentNode;
+#   int index = 0;
+#   while (index != -1)
+#   {
+#     currentNode = tree[index];
+#     if (currentNode.data == target)
+#     {
+#       return target;
+#     }
+#     index = target > currentNode.data ? currentNode.rightIndex : currentNode.leftIndex;
+#   }
+#   return -1;
+# }
+# void main()
+# {
+#   int treeIndex = 0;
+#   makeTreeNode(tree[0], 9);
+#   treeIndex++;
+#   insert(treeIndex, 5);
+#   treeIndex++;
+#   insert(treeIndex, 12);
+#   treeIndex++;
+#   insert(treeIndex, 15);
+#   treeIndex++;
+#   insert(treeIndex, 7);
+#   treeIndex++;
+#   insert(treeIndex, 8);
+#   treeIndex++;
+#   insert(treeIndex, 2);
+#   treeIndex++;
+#   insert(treeIndex, 6);
+#   treeIndex++;
+#   insert(treeIndex, 17);
+#   treeIndex++;
+#   insert(treeIndex, 13);
+#   int count = 0;
+#   for (
+#       int i = 0;
+#       i < 20;
+#       i++)
+#   {
+#     int result = search(i);
+#     switch (i)
+#     {
+#     case 9:
+#     case 5:
+#     case 12:
+#     case 15:
+#     case 7:
+#     case 8:
+#     case 2:
+#     case 6:
+#     case 17:
+#     case 13:
+#       if (result == i)
+#       {
+#         count++;
+#       }
+#       break;
+#     default:
+#       if (result == -1)
+#       {
+#         count++;
+#       }
+#       break;
+#     }
+#   }
+#   if (count == 20)
+#   {
+#     _GLF_color = vec4(1.0, 0.0, 0.0, 1.0);
+#   }
+#   else
+#   {
+#     _GLF_color = vec4(0.0, 0.0, 1.0, 1.0);
+#   }
+# }
+SHADER fragment reference_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 260
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %254
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %7 "BST"
+               OpMemberName %7 0 "data"
+               OpMemberName %7 1 "leftIndex"
+               OpMemberName %7 2 "rightIndex"
+               OpName %13 "makeTreeNode(struct-BST-i1-i1-i11;i1;"
+               OpName %11 "node"
+               OpName %12 "data"
+               OpName %18 "insert(i1;i1;"
+               OpName %16 "treeIndex"
+               OpName %17 "data"
+               OpName %22 "search(i1;"
+               OpName %21 "target"
+               OpName %32 "baseIndex"
+               OpName %47 "tree"
+               OpName %65 "param"
+               OpName %69 "param"
+               OpName %91 "param"
+               OpName %94 "param"
+               OpName %105 "index"
+               OpName %113 "currentNode"
+               OpName %140 "treeIndex"
+               OpName %142 "param"
+               OpName %145 "param"
+               OpName %152 "param"
+               OpName %154 "param"
+               OpName %159 "param"
+               OpName %161 "param"
+               OpName %166 "param"
+               OpName %168 "param"
+               OpName %173 "param"
+               OpName %175 "param"
+               OpName %180 "param"
+               OpName %182 "param"
+               OpName %186 "param"
+               OpName %188 "param"
+               OpName %193 "param"
+               OpName %195 "param"
+               OpName %200 "param"
+               OpName %202 "param"
+               OpName %207 "param"
+               OpName %209 "param"
+               OpName %211 "count"
+               OpName %212 "i"
+               OpName %221 "result"
+               OpName %222 "param"
+               OpName %254 "_GLF_color"
+               OpDecorate %254 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypeStruct %6 %6 %6
+          %8 = OpTypePointer Function %7
+          %9 = OpTypePointer Function %6
+         %10 = OpTypeFunction %2 %8 %9
+         %15 = OpTypeFunction %2 %9 %9
+         %20 = OpTypeFunction %6 %9
+         %24 = OpConstant %6 0
+         %27 = OpConstant %6 1
+         %28 = OpConstant %6 -1
+         %30 = OpConstant %6 2
+         %40 = OpTypeBool
+         %43 = OpTypeInt 32 0
+         %44 = OpConstant %43 10
+         %45 = OpTypeArray %7 %44
+         %46 = OpTypePointer Private %45
+         %47 = OpVariable %46 Private
+         %49 = OpTypePointer Private %6
+         %66 = OpTypePointer Private %7
+        %141 = OpConstant %6 9
+        %151 = OpConstant %6 5
+        %158 = OpConstant %6 12
+        %165 = OpConstant %6 15
+        %172 = OpConstant %6 7
+        %179 = OpConstant %6 8
+        %192 = OpConstant %6 6
+        %199 = OpConstant %6 17
+        %206 = OpConstant %6 13
+        %219 = OpConstant %6 20
+        %251 = OpTypeFloat 32
+        %252 = OpTypeVector %251 4
+        %253 = OpTypePointer Output %252
+        %254 = OpVariable %253 Output
+        %255 = OpConstant %251 1
+        %256 = OpConstant %251 0
+        %257 = OpConstantComposite %252 %255 %256 %256 %255
+        %259 = OpConstantComposite %252 %256 %256 %255 %255
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+        %140 = OpVariable %9 Function
+        %142 = OpVariable %8 Function
+        %145 = OpVariable %9 Function
+        %152 = OpVariable %9 Function
+        %154 = OpVariable %9 Function
+        %159 = OpVariable %9 Function
+        %161 = OpVariable %9 Function
+        %166 = OpVariable %9 Function
+        %168 = OpVariable %9 Function
+        %173 = OpVariable %9 Function
+        %175 = OpVariable %9 Function
+        %180 = OpVariable %9 Function
+        %182 = OpVariable %9 Function
+        %186 = OpVariable %9 Function
+        %188 = OpVariable %9 Function
+        %193 = OpVariable %9 Function
+        %195 = OpVariable %9 Function
+        %200 = OpVariable %9 Function
+        %202 = OpVariable %9 Function
+        %207 = OpVariable %9 Function
+        %209 = OpVariable %9 Function
+        %211 = OpVariable %9 Function
+        %212 = OpVariable %9 Function
+        %221 = OpVariable %9 Function
+        %222 = OpVariable %9 Function
+               OpStore %140 %24
+        %143 = OpAccessChain %66 %47 %24
+        %144 = OpLoad %7 %143
+               OpStore %142 %144
+               OpStore %145 %141
+        %146 = OpFunctionCall %2 %13 %142 %145
+        %147 = OpLoad %7 %142
+        %148 = OpAccessChain %66 %47 %24
+               OpStore %148 %147
+        %149 = OpLoad %6 %140
+        %150 = OpIAdd %6 %149 %27
+               OpStore %140 %150
+        %153 = OpLoad %6 %140
+               OpStore %152 %153
+               OpStore %154 %151
+        %155 = OpFunctionCall %2 %18 %152 %154
+        %156 = OpLoad %6 %140
+        %157 = OpIAdd %6 %156 %27
+               OpStore %140 %157
+        %160 = OpLoad %6 %140
+               OpStore %159 %160
+               OpStore %161 %158
+        %162 = OpFunctionCall %2 %18 %159 %161
+        %163 = OpLoad %6 %140
+        %164 = OpIAdd %6 %163 %27
+               OpStore %140 %164
+        %167 = OpLoad %6 %140
+               OpStore %166 %167
+               OpStore %168 %165
+        %169 = OpFunctionCall %2 %18 %166 %168
+        %170 = OpLoad %6 %140
+        %171 = OpIAdd %6 %170 %27
+               OpStore %140 %171
+        %174 = OpLoad %6 %140
+               OpStore %173 %174
+               OpStore %175 %172
+        %176 = OpFunctionCall %2 %18 %173 %175
+        %177 = OpLoad %6 %140
+        %178 = OpIAdd %6 %177 %27
+               OpStore %140 %178
+        %181 = OpLoad %6 %140
+               OpStore %180 %181
+               OpStore %182 %179
+        %183 = OpFunctionCall %2 %18 %180 %182
+        %184 = OpLoad %6 %140
+        %185 = OpIAdd %6 %184 %27
+               OpStore %140 %185
+        %187 = OpLoad %6 %140
+               OpStore %186 %187
+               OpStore %188 %30
+        %189 = OpFunctionCall %2 %18 %186 %188
+        %190 = OpLoad %6 %140
+        %191 = OpIAdd %6 %190 %27
+               OpStore %140 %191
+        %194 = OpLoad %6 %140
+               OpStore %193 %194
+               OpStore %195 %192
+        %196 = OpFunctionCall %2 %18 %193 %195
+        %197 = OpLoad %6 %140
+        %198 = OpIAdd %6 %197 %27
+               OpStore %140 %198
+        %201 = OpLoad %6 %140
+               OpStore %200 %201
+               OpStore %202 %199
+        %203 = OpFunctionCall %2 %18 %200 %202
+        %204 = OpLoad %6 %140
+        %205 = OpIAdd %6 %204 %27
+               OpStore %140 %205
+        %208 = OpLoad %6 %140
+               OpStore %207 %208
+               OpStore %209 %206
+        %210 = OpFunctionCall %2 %18 %207 %209
+               OpStore %211 %24
+               OpStore %212 %24
+               OpBranch %213
+        %213 = OpLabel
+               OpLoopMerge %215 %216 None
+               OpBranch %217
+        %217 = OpLabel
+        %218 = OpLoad %6 %212
+        %220 = OpSLessThan %40 %218 %219
+               OpBranchConditional %220 %214 %215
+        %214 = OpLabel
+        %223 = OpLoad %6 %212
+               OpStore %222 %223
+        %224 = OpFunctionCall %6 %22 %222
+               OpStore %221 %224
+        %225 = OpLoad %6 %212
+               OpSelectionMerge %228 None
+               OpSwitch %225 %227 9 %226 5 %226 12 %226 15 %226 7 %226 8 %226 2 %226 6 %226 17 %226 13 %226
+        %227 = OpLabel
+        %237 = OpLoad %6 %221
+        %238 = OpIEqual %40 %237 %28
+               OpSelectionMerge %240 None
+               OpBranchConditional %238 %239 %240
+        %239 = OpLabel
+        %241 = OpLoad %6 %211
+        %242 = OpIAdd %6 %241 %27
+               OpStore %211 %242
+               OpBranch %240
+        %240 = OpLabel
+               OpBranch %228
+        %226 = OpLabel
+        %229 = OpLoad %6 %221
+        %230 = OpLoad %6 %212
+        %231 = OpIEqual %40 %229 %230
+               OpSelectionMerge %233 None
+               OpBranchConditional %231 %232 %233
+        %232 = OpLabel
+        %234 = OpLoad %6 %211
+        %235 = OpIAdd %6 %234 %27
+               OpStore %211 %235
+               OpBranch %233
+        %233 = OpLabel
+               OpBranch %228
+        %228 = OpLabel
+               OpBranch %216
+        %216 = OpLabel
+        %245 = OpLoad %6 %212
+        %246 = OpIAdd %6 %245 %27
+               OpStore %212 %246
+               OpBranch %213
+        %215 = OpLabel
+        %247 = OpLoad %6 %211
+        %248 = OpIEqual %40 %247 %219
+               OpSelectionMerge %250 None
+               OpBranchConditional %248 %249 %258
+        %249 = OpLabel
+               OpStore %254 %257
+               OpBranch %250
+        %258 = OpLabel
+               OpStore %254 %259
+               OpBranch %250
+        %250 = OpLabel
+               OpReturn
+               OpFunctionEnd
+         %13 = OpFunction %2 None %10
+         %11 = OpFunctionParameter %8
+         %12 = OpFunctionParameter %9
+         %14 = OpLabel
+         %25 = OpLoad %6 %12
+         %26 = OpAccessChain %9 %11 %24
+               OpStore %26 %25
+         %29 = OpAccessChain %9 %11 %27
+               OpStore %29 %28
+         %31 = OpAccessChain %9 %11 %30
+               OpStore %31 %28
+               OpReturn
+               OpFunctionEnd
+         %18 = OpFunction %2 None %15
+         %16 = OpFunctionParameter %9
+         %17 = OpFunctionParameter %9
+         %19 = OpLabel
+         %32 = OpVariable %9 Function
+         %65 = OpVariable %8 Function
+         %69 = OpVariable %9 Function
+         %91 = OpVariable %8 Function
+         %94 = OpVariable %9 Function
+               OpStore %32 %24
+               OpBranch %33
+         %33 = OpLabel
+               OpLoopMerge %35 %36 None
+               OpBranch %37
+         %37 = OpLabel
+         %38 = OpLoad %6 %32
+         %39 = OpLoad %6 %16
+         %41 = OpSLessThanEqual %40 %38 %39
+               OpBranchConditional %41 %34 %35
+         %34 = OpLabel
+         %42 = OpLoad %6 %17
+         %48 = OpLoad %6 %32
+         %50 = OpAccessChain %49 %47 %48 %24
+         %51 = OpLoad %6 %50
+         %52 = OpSLessThanEqual %40 %42 %51
+               OpSelectionMerge %54 None
+               OpBranchConditional %52 %53 %80
+         %53 = OpLabel
+         %55 = OpLoad %6 %32
+         %56 = OpAccessChain %49 %47 %55 %27
+         %57 = OpLoad %6 %56
+         %58 = OpIEqual %40 %57 %28
+               OpSelectionMerge %60 None
+               OpBranchConditional %58 %59 %75
+         %59 = OpLabel
+         %61 = OpLoad %6 %32
+         %62 = OpLoad %6 %16
+         %63 = OpAccessChain %49 %47 %61 %27
+               OpStore %63 %62
+         %64 = OpLoad %6 %16
+         %67 = OpAccessChain %66 %47 %64
+         %68 = OpLoad %7 %67
+               OpStore %65 %68
+         %70 = OpLoad %6 %17
+               OpStore %69 %70
+         %71 = OpFunctionCall %2 %13 %65 %69
+         %72 = OpLoad %7 %65
+         %73 = OpAccessChain %66 %47 %64
+               OpStore %73 %72
+               OpReturn
+         %75 = OpLabel
+         %76 = OpLoad %6 %32
+         %77 = OpAccessChain %49 %47 %76 %27
+         %78 = OpLoad %6 %77
+               OpStore %32 %78
+               OpBranch %36
+         %60 = OpLabel
+               OpUnreachable
+         %80 = OpLabel
+         %81 = OpLoad %6 %32
+         %82 = OpAccessChain %49 %47 %81 %30
+         %83 = OpLoad %6 %82
+         %84 = OpIEqual %40 %83 %28
+               OpSelectionMerge %86 None
+               OpBranchConditional %84 %85 %100
+         %85 = OpLabel
+         %87 = OpLoad %6 %32
+         %88 = OpLoad %6 %16
+         %89 = OpAccessChain %49 %47 %87 %30
+               OpStore %89 %88
+         %90 = OpLoad %6 %16
+         %92 = OpAccessChain %66 %47 %90
+         %93 = OpLoad %7 %92
+               OpStore %91 %93
+         %95 = OpLoad %6 %17
+               OpStore %94 %95
+         %96 = OpFunctionCall %2 %13 %91 %94
+         %97 = OpLoad %7 %91
+         %98 = OpAccessChain %66 %47 %90
+               OpStore %98 %97
+               OpReturn
+        %100 = OpLabel
+        %101 = OpLoad %6 %32
+        %102 = OpAccessChain %49 %47 %101 %30
+        %103 = OpLoad %6 %102
+               OpStore %32 %103
+               OpBranch %36
+         %86 = OpLabel
+               OpUnreachable
+         %54 = OpLabel
+               OpUnreachable
+         %36 = OpLabel
+               OpBranch %33
+         %35 = OpLabel
+               OpReturn
+               OpFunctionEnd
+         %22 = OpFunction %6 None %20
+         %21 = OpFunctionParameter %9
+         %23 = OpLabel
+        %105 = OpVariable %9 Function
+        %113 = OpVariable %8 Function
+        %129 = OpVariable %9 Function
+               OpStore %105 %24
+               OpBranch %106
+        %106 = OpLabel
+               OpLoopMerge %108 %109 None
+               OpBranch %110
+        %110 = OpLabel
+        %111 = OpLoad %6 %105
+        %112 = OpINotEqual %40 %111 %28
+               OpBranchConditional %112 %107 %108
+        %107 = OpLabel
+        %114 = OpLoad %6 %105
+        %115 = OpAccessChain %66 %47 %114
+        %116 = OpLoad %7 %115
+               OpStore %113 %116
+        %117 = OpAccessChain %9 %113 %24
+        %118 = OpLoad %6 %117
+        %119 = OpLoad %6 %21
+        %120 = OpIEqual %40 %118 %119
+               OpSelectionMerge %122 None
+               OpBranchConditional %120 %121 %122
+        %121 = OpLabel
+        %123 = OpLoad %6 %21
+               OpReturnValue %123
+        %122 = OpLabel
+        %125 = OpLoad %6 %21
+        %126 = OpAccessChain %9 %113 %24
+        %127 = OpLoad %6 %126
+        %128 = OpSGreaterThan %40 %125 %127
+               OpSelectionMerge %131 None
+               OpBranchConditional %128 %130 %134
+        %130 = OpLabel
+        %132 = OpAccessChain %9 %113 %30
+        %133 = OpLoad %6 %132
+               OpStore %129 %133
+               OpBranch %131
+        %134 = OpLabel
+        %135 = OpAccessChain %9 %113 %27
+        %136 = OpLoad %6 %135
+               OpStore %129 %136
+               OpBranch %131
+        %131 = OpLabel
+        %137 = OpLoad %6 %129
+               OpStore %105 %137
+               OpBranch %109
+        %109 = OpLabel
+               OpBranch %106
+        %108 = OpLabel
+               OpReturnValue %28
+               OpFunctionEnd
+END
+
+
+BUFFER reference_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics reference_pipeline
+  ATTACH reference_vertex_shader
+  ATTACH reference_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER reference_framebuffer AS color LOCATION 0
+END
+CLEAR_COLOR reference_pipeline 0 0 0 255
+
+CLEAR reference_pipeline
+RUN reference_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# struct BST
+# {
+#     int data;
+#     int leftIndex;
+#     int rightIndex;
+# };
+#
+# BST tree[10];
+#
+#
+# // Start of additional globals and functions just in the variant shader.
+#
+# layout(set = 0, binding = 0) uniform buf0 {
+#     // Always (0.0, 1.0).
+#     vec2 injectionSwitch;
+# };
+#
+# struct QuicksortObject
+# {
+#     int numbers[10];
+# };
+#
+# QuicksortObject obj;
+#
+# // "a" is always 2.
+# // Thus, always returns 2.
+# int identity(int a)
+# {
+#     obj.numbers[a] = a;
+#     return obj.numbers[2];
+# }
+# // End of additional globals and functions just in the variant shader.
+#
+# void makeTreeNode(inout BST node, int data)
+# {
+#     node.data = data;
+#     node.leftIndex = -1;
+#     node.rightIndex = -1;
+# }
+# void insert(int treeIndex, int data)
+# {
+#     int baseIndex = 0;
+#     while (baseIndex <= treeIndex)
+#     {
+#         if (data <= tree[baseIndex].data)
+#         {
+#             if (tree[baseIndex].leftIndex == -1)
+#             {
+#                 tree[baseIndex].leftIndex = treeIndex;
+#                 makeTreeNode(tree[treeIndex], data);
+#                 return;
+#             }
+#             else
+#             {
+#                 baseIndex = tree[baseIndex].leftIndex;
+#                 continue;
+#             }
+#         }
+#         else
+#         {
+#             if (tree[baseIndex].rightIndex == -1)
+#             {
+#                 tree[baseIndex].rightIndex = treeIndex;
+#                 makeTreeNode(tree[treeIndex], data);
+#                 return;
+#             }
+#             else
+#             {
+#                 baseIndex = tree[baseIndex].rightIndex;
+#                 continue;
+#             }
+#         }
+#     }
+# }
+# int search(int target)
+# {
+#     BST currentNode;
+#     int index = 0;
+#     while (index != -1)
+#     {
+#         currentNode = tree[index];
+#         if (currentNode.data == target)
+#         {
+#             return target;
+#         }
+#         index = target > currentNode.data ? currentNode.rightIndex : currentNode.leftIndex;
+#     }
+#     return -1;
+# }
+# void main()
+# {
+#     int treeIndex = 0;
+#     makeTreeNode(tree[0], 9);
+#     treeIndex++;
+#     insert(treeIndex, 5);
+#     treeIndex++;
+#     insert(treeIndex, 12);
+#     treeIndex++;
+#     insert(treeIndex, 15);
+#     treeIndex++;
+#     insert(treeIndex, 7);
+#     treeIndex++;
+#     insert(treeIndex, 8);
+#     treeIndex++;
+#     insert(treeIndex, 2);
+#     treeIndex++;
+#     insert(treeIndex, 6);
+#     treeIndex++;
+#     insert(treeIndex, 17);
+#     treeIndex++;
+#     insert(treeIndex, 13);
+#
+#
+#     // Start of code that does nothing.
+#
+#     // The following code essentially just stores the value 2 in "pp" and then checks that pp == 2
+#     // but it does so by writing 2 into the global struct "obj" and then reading it back.
+#     int pp = 0;
+#     int looplimiter0 = 0;
+#
+#     // This loop iterates 2 times because of "looplimiter0".
+#     for (
+#         int i = 0;
+#         i < 10000;
+#         i++)
+#     {
+#         // "injectionSwitch.y" is 1.0.
+#         if (looplimiter0 >= int(injectionSwitch.y))
+#         {
+#             // "identity(2)" returns 2, so "pp" becomes 2.
+#             pp = identity(1 + int(injectionSwitch.y));
+#             break;
+#         }
+#         looplimiter0++;
+#     }
+#     // "pp" is always 2.
+#     if (pp != 2)
+#     {
+#         return;
+#     }
+#
+#     // End of code that does nothing.
+#
+#     int count = 0;
+#     for (
+#         int i = 0;
+#         i < 20;
+#         i++)
+#     {
+#         int result = search(i);
+#         switch (i)
+#         {
+#         case 9:
+#         case 5:
+#         case 12:
+#         case 15:
+#         case 7:
+#         case 8:
+#         case 2:
+#         case 6:
+#         case 17:
+#         case 13:
+#             if (result == i)
+#             {
+#                 count++;
+#             }
+#             break;
+#         default:
+#             if (result == -1)
+#             {
+#                 count++;
+#             }
+#             break;
+#         }
+#     }
+#     if (count == 20)
+#     {
+#         _GLF_color = vec4(1.0, 0.0, 0.0, 1.0);
+#     }
+#     else
+#     {
+#         _GLF_color = vec4(0.0, 0.0, 1.0, 1.0);
+#     }
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 314
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %308
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %10 "identity(i1;"
+               OpName %9 "a"
+               OpName %12 "BST"
+               OpMemberName %12 0 "data"
+               OpMemberName %12 1 "leftIndex"
+               OpMemberName %12 2 "rightIndex"
+               OpName %17 "makeTreeNode(struct-BST-i1-i1-i11;i1;"
+               OpName %15 "node"
+               OpName %16 "data"
+               OpName %22 "insert(i1;i1;"
+               OpName %20 "treeIndex"
+               OpName %21 "data"
+               OpName %25 "search(i1;"
+               OpName %24 "target"
+               OpName %30 "QuicksortObject"
+               OpMemberName %30 0 "numbers"
+               OpName %32 "obj"
+               OpName %49 "baseIndex"
+               OpName %62 "tree"
+               OpName %79 "param"
+               OpName %83 "param"
+               OpName %105 "param"
+               OpName %108 "param"
+               OpName %119 "index"
+               OpName %127 "currentNode"
+               OpName %154 "treeIndex"
+               OpName %156 "param"
+               OpName %159 "param"
+               OpName %166 "param"
+               OpName %168 "param"
+               OpName %173 "param"
+               OpName %175 "param"
+               OpName %180 "param"
+               OpName %182 "param"
+               OpName %187 "param"
+               OpName %189 "param"
+               OpName %194 "param"
+               OpName %196 "param"
+               OpName %200 "param"
+               OpName %202 "param"
+               OpName %207 "param"
+               OpName %209 "param"
+               OpName %214 "param"
+               OpName %216 "param"
+               OpName %221 "param"
+               OpName %223 "param"
+               OpName %225 "pp"
+               OpName %226 "looplimiter0"
+               OpName %227 "i"
+               OpName %239 "buf0"
+               OpMemberName %239 0 "injectionSwitch"
+               OpName %241 ""
+               OpName %254 "param"
+               OpName %266 "count"
+               OpName %267 "i"
+               OpName %276 "result"
+               OpName %277 "param"
+               OpName %308 "_GLF_color"
+               OpMemberDecorate %239 0 Offset 0
+               OpDecorate %239 Block
+               OpDecorate %241 DescriptorSet 0
+               OpDecorate %241 Binding 0
+               OpDecorate %308 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %8 = OpTypeFunction %6 %7
+         %12 = OpTypeStruct %6 %6 %6
+         %13 = OpTypePointer Function %12
+         %14 = OpTypeFunction %2 %13 %7
+         %19 = OpTypeFunction %2 %7 %7
+         %27 = OpTypeInt 32 0
+         %28 = OpConstant %27 10
+         %29 = OpTypeArray %6 %28
+         %30 = OpTypeStruct %29
+         %31 = OpTypePointer Private %30
+         %32 = OpVariable %31 Private
+         %33 = OpConstant %6 0
+         %36 = OpTypePointer Private %6
+         %38 = OpConstant %6 2
+         %45 = OpConstant %6 1
+         %46 = OpConstant %6 -1
+         %57 = OpTypeBool
+         %60 = OpTypeArray %12 %28
+         %61 = OpTypePointer Private %60
+         %62 = OpVariable %61 Private
+         %80 = OpTypePointer Private %12
+        %155 = OpConstant %6 9
+        %165 = OpConstant %6 5
+        %172 = OpConstant %6 12
+        %179 = OpConstant %6 15
+        %186 = OpConstant %6 7
+        %193 = OpConstant %6 8
+        %206 = OpConstant %6 6
+        %213 = OpConstant %6 17
+        %220 = OpConstant %6 13
+        %234 = OpConstant %6 10000
+        %237 = OpTypeFloat 32
+        %238 = OpTypeVector %237 2
+        %239 = OpTypeStruct %238
+        %240 = OpTypePointer Uniform %239
+        %241 = OpVariable %240 Uniform
+        %242 = OpConstant %27 1
+        %243 = OpTypePointer Uniform %237
+        %274 = OpConstant %6 20
+        %306 = OpTypeVector %237 4
+        %307 = OpTypePointer Output %306
+        %308 = OpVariable %307 Output
+        %309 = OpConstant %237 1
+        %310 = OpConstant %237 0
+        %311 = OpConstantComposite %306 %309 %310 %310 %309
+        %313 = OpConstantComposite %306 %310 %310 %309 %309
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+        %154 = OpVariable %7 Function
+        %156 = OpVariable %13 Function
+        %159 = OpVariable %7 Function
+        %166 = OpVariable %7 Function
+        %168 = OpVariable %7 Function
+        %173 = OpVariable %7 Function
+        %175 = OpVariable %7 Function
+        %180 = OpVariable %7 Function
+        %182 = OpVariable %7 Function
+        %187 = OpVariable %7 Function
+        %189 = OpVariable %7 Function
+        %194 = OpVariable %7 Function
+        %196 = OpVariable %7 Function
+        %200 = OpVariable %7 Function
+        %202 = OpVariable %7 Function
+        %207 = OpVariable %7 Function
+        %209 = OpVariable %7 Function
+        %214 = OpVariable %7 Function
+        %216 = OpVariable %7 Function
+        %221 = OpVariable %7 Function
+        %223 = OpVariable %7 Function
+        %225 = OpVariable %7 Function
+        %226 = OpVariable %7 Function
+        %227 = OpVariable %7 Function
+        %254 = OpVariable %7 Function
+        %266 = OpVariable %7 Function
+        %267 = OpVariable %7 Function
+        %276 = OpVariable %7 Function
+        %277 = OpVariable %7 Function
+               OpStore %154 %33
+        %157 = OpAccessChain %80 %62 %33
+        %158 = OpLoad %12 %157
+               OpStore %156 %158
+               OpStore %159 %155
+        %160 = OpFunctionCall %2 %17 %156 %159
+        %161 = OpLoad %12 %156
+        %162 = OpAccessChain %80 %62 %33
+               OpStore %162 %161
+        %163 = OpLoad %6 %154
+        %164 = OpIAdd %6 %163 %45
+               OpStore %154 %164
+        %167 = OpLoad %6 %154
+               OpStore %166 %167
+               OpStore %168 %165
+        %169 = OpFunctionCall %2 %22 %166 %168
+        %170 = OpLoad %6 %154
+        %171 = OpIAdd %6 %170 %45
+               OpStore %154 %171
+        %174 = OpLoad %6 %154
+               OpStore %173 %174
+               OpStore %175 %172
+        %176 = OpFunctionCall %2 %22 %173 %175
+        %177 = OpLoad %6 %154
+        %178 = OpIAdd %6 %177 %45
+               OpStore %154 %178
+        %181 = OpLoad %6 %154
+               OpStore %180 %181
+               OpStore %182 %179
+        %183 = OpFunctionCall %2 %22 %180 %182
+        %184 = OpLoad %6 %154
+        %185 = OpIAdd %6 %184 %45
+               OpStore %154 %185
+        %188 = OpLoad %6 %154
+               OpStore %187 %188
+               OpStore %189 %186
+        %190 = OpFunctionCall %2 %22 %187 %189
+        %191 = OpLoad %6 %154
+        %192 = OpIAdd %6 %191 %45
+               OpStore %154 %192
+        %195 = OpLoad %6 %154
+               OpStore %194 %195
+               OpStore %196 %193
+        %197 = OpFunctionCall %2 %22 %194 %196
+        %198 = OpLoad %6 %154
+        %199 = OpIAdd %6 %198 %45
+               OpStore %154 %199
+        %201 = OpLoad %6 %154
+               OpStore %200 %201
+               OpStore %202 %38
+        %203 = OpFunctionCall %2 %22 %200 %202
+        %204 = OpLoad %6 %154
+        %205 = OpIAdd %6 %204 %45
+               OpStore %154 %205
+        %208 = OpLoad %6 %154
+               OpStore %207 %208
+               OpStore %209 %206
+        %210 = OpFunctionCall %2 %22 %207 %209
+        %211 = OpLoad %6 %154
+        %212 = OpIAdd %6 %211 %45
+               OpStore %154 %212
+        %215 = OpLoad %6 %154
+               OpStore %214 %215
+               OpStore %216 %213
+        %217 = OpFunctionCall %2 %22 %214 %216
+        %218 = OpLoad %6 %154
+        %219 = OpIAdd %6 %218 %45
+               OpStore %154 %219
+        %222 = OpLoad %6 %154
+               OpStore %221 %222
+               OpStore %223 %220
+        %224 = OpFunctionCall %2 %22 %221 %223
+               OpStore %225 %33
+               OpStore %226 %33
+               OpStore %227 %33
+               OpBranch %228
+        %228 = OpLabel
+               OpLoopMerge %230 %231 None
+               OpBranch %232
+        %232 = OpLabel
+        %233 = OpLoad %6 %227
+        %235 = OpSLessThan %57 %233 %234
+               OpBranchConditional %235 %229 %230
+        %229 = OpLabel
+        %236 = OpLoad %6 %226
+        %244 = OpAccessChain %243 %241 %33 %242
+        %245 = OpLoad %237 %244
+        %246 = OpConvertFToS %6 %245
+        %247 = OpSGreaterThanEqual %57 %236 %246
+               OpSelectionMerge %249 None
+               OpBranchConditional %247 %248 %249
+        %248 = OpLabel
+        %250 = OpAccessChain %243 %241 %33 %242
+        %251 = OpLoad %237 %250
+        %252 = OpConvertFToS %6 %251
+        %253 = OpIAdd %6 %45 %252
+               OpStore %254 %253
+        %255 = OpFunctionCall %6 %10 %254
+               OpStore %225 %255
+               OpBranch %230
+        %249 = OpLabel
+        %257 = OpLoad %6 %226
+        %258 = OpIAdd %6 %257 %45
+               OpStore %226 %258
+               OpBranch %231
+        %231 = OpLabel
+        %259 = OpLoad %6 %227
+        %260 = OpIAdd %6 %259 %45
+               OpStore %227 %260
+               OpBranch %228
+        %230 = OpLabel
+        %261 = OpLoad %6 %225
+        %262 = OpINotEqual %57 %261 %38
+               OpSelectionMerge %264 None
+               OpBranchConditional %262 %263 %264
+        %263 = OpLabel
+               OpReturn
+        %264 = OpLabel
+               OpStore %266 %33
+               OpStore %267 %33
+               OpBranch %268
+        %268 = OpLabel
+               OpLoopMerge %270 %271 None
+               OpBranch %272
+        %272 = OpLabel
+        %273 = OpLoad %6 %267
+        %275 = OpSLessThan %57 %273 %274
+               OpBranchConditional %275 %269 %270
+        %269 = OpLabel
+        %278 = OpLoad %6 %267
+               OpStore %277 %278
+        %279 = OpFunctionCall %6 %25 %277
+               OpStore %276 %279
+        %280 = OpLoad %6 %267
+               OpSelectionMerge %283 None
+               OpSwitch %280 %282 9 %281 5 %281 12 %281 15 %281 7 %281 8 %281 2 %281 6 %281 17 %281 13 %281
+        %282 = OpLabel
+        %292 = OpLoad %6 %276
+        %293 = OpIEqual %57 %292 %46
+               OpSelectionMerge %295 None
+               OpBranchConditional %293 %294 %295
+        %294 = OpLabel
+        %296 = OpLoad %6 %266
+        %297 = OpIAdd %6 %296 %45
+               OpStore %266 %297
+               OpBranch %295
+        %295 = OpLabel
+               OpBranch %283
+        %281 = OpLabel
+        %284 = OpLoad %6 %276
+        %285 = OpLoad %6 %267
+        %286 = OpIEqual %57 %284 %285
+               OpSelectionMerge %288 None
+               OpBranchConditional %286 %287 %288
+        %287 = OpLabel
+        %289 = OpLoad %6 %266
+        %290 = OpIAdd %6 %289 %45
+               OpStore %266 %290
+               OpBranch %288
+        %288 = OpLabel
+               OpBranch %283
+        %283 = OpLabel
+               OpBranch %271
+        %271 = OpLabel
+        %300 = OpLoad %6 %267
+        %301 = OpIAdd %6 %300 %45
+               OpStore %267 %301
+               OpBranch %268
+        %270 = OpLabel
+        %302 = OpLoad %6 %266
+        %303 = OpIEqual %57 %302 %274
+               OpSelectionMerge %305 None
+               OpBranchConditional %303 %304 %312
+        %304 = OpLabel
+               OpStore %308 %311
+               OpBranch %305
+        %312 = OpLabel
+               OpStore %308 %313
+               OpBranch %305
+        %305 = OpLabel
+               OpReturn
+               OpFunctionEnd
+         %10 = OpFunction %6 None %8
+          %9 = OpFunctionParameter %7
+         %11 = OpLabel
+         %34 = OpLoad %6 %9
+         %35 = OpLoad %6 %9
+         %37 = OpAccessChain %36 %32 %33 %34
+               OpStore %37 %35
+         %39 = OpAccessChain %36 %32 %33 %38
+         %40 = OpLoad %6 %39
+               OpReturnValue %40
+               OpFunctionEnd
+         %17 = OpFunction %2 None %14
+         %15 = OpFunctionParameter %13
+         %16 = OpFunctionParameter %7
+         %18 = OpLabel
+         %43 = OpLoad %6 %16
+         %44 = OpAccessChain %7 %15 %33
+               OpStore %44 %43
+         %47 = OpAccessChain %7 %15 %45
+               OpStore %47 %46
+         %48 = OpAccessChain %7 %15 %38
+               OpStore %48 %46
+               OpReturn
+               OpFunctionEnd
+         %22 = OpFunction %2 None %19
+         %20 = OpFunctionParameter %7
+         %21 = OpFunctionParameter %7
+         %23 = OpLabel
+         %49 = OpVariable %7 Function
+         %79 = OpVariable %13 Function
+         %83 = OpVariable %7 Function
+        %105 = OpVariable %13 Function
+        %108 = OpVariable %7 Function
+               OpStore %49 %33
+               OpBranch %50
+         %50 = OpLabel
+               OpLoopMerge %52 %53 None
+               OpBranch %54
+         %54 = OpLabel
+         %55 = OpLoad %6 %49
+         %56 = OpLoad %6 %20
+         %58 = OpSLessThanEqual %57 %55 %56
+               OpBranchConditional %58 %51 %52
+         %51 = OpLabel
+         %59 = OpLoad %6 %21
+         %63 = OpLoad %6 %49
+         %64 = OpAccessChain %36 %62 %63 %33
+         %65 = OpLoad %6 %64
+         %66 = OpSLessThanEqual %57 %59 %65
+               OpSelectionMerge %68 None
+               OpBranchConditional %66 %67 %94
+         %67 = OpLabel
+         %69 = OpLoad %6 %49
+         %70 = OpAccessChain %36 %62 %69 %45
+         %71 = OpLoad %6 %70
+         %72 = OpIEqual %57 %71 %46
+               OpSelectionMerge %74 None
+               OpBranchConditional %72 %73 %89
+         %73 = OpLabel
+         %75 = OpLoad %6 %49
+         %76 = OpLoad %6 %20
+         %77 = OpAccessChain %36 %62 %75 %45
+               OpStore %77 %76
+         %78 = OpLoad %6 %20
+         %81 = OpAccessChain %80 %62 %78
+         %82 = OpLoad %12 %81
+               OpStore %79 %82
+         %84 = OpLoad %6 %21
+               OpStore %83 %84
+         %85 = OpFunctionCall %2 %17 %79 %83
+         %86 = OpLoad %12 %79
+         %87 = OpAccessChain %80 %62 %78
+               OpStore %87 %86
+               OpReturn
+         %89 = OpLabel
+         %90 = OpLoad %6 %49
+         %91 = OpAccessChain %36 %62 %90 %45
+         %92 = OpLoad %6 %91
+               OpStore %49 %92
+               OpBranch %53
+         %74 = OpLabel
+               OpUnreachable
+         %94 = OpLabel
+         %95 = OpLoad %6 %49
+         %96 = OpAccessChain %36 %62 %95 %38
+         %97 = OpLoad %6 %96
+         %98 = OpIEqual %57 %97 %46
+               OpSelectionMerge %100 None
+               OpBranchConditional %98 %99 %114
+         %99 = OpLabel
+        %101 = OpLoad %6 %49
+        %102 = OpLoad %6 %20
+        %103 = OpAccessChain %36 %62 %101 %38
+               OpStore %103 %102
+        %104 = OpLoad %6 %20
+        %106 = OpAccessChain %80 %62 %104
+        %107 = OpLoad %12 %106
+               OpStore %105 %107
+        %109 = OpLoad %6 %21
+               OpStore %108 %109
+        %110 = OpFunctionCall %2 %17 %105 %108
+        %111 = OpLoad %12 %105
+        %112 = OpAccessChain %80 %62 %104
+               OpStore %112 %111
+               OpReturn
+        %114 = OpLabel
+        %115 = OpLoad %6 %49
+        %116 = OpAccessChain %36 %62 %115 %38
+        %117 = OpLoad %6 %116
+               OpStore %49 %117
+               OpBranch %53
+        %100 = OpLabel
+               OpUnreachable
+         %68 = OpLabel
+               OpUnreachable
+         %53 = OpLabel
+               OpBranch %50
+         %52 = OpLabel
+               OpReturn
+               OpFunctionEnd
+         %25 = OpFunction %6 None %8
+         %24 = OpFunctionParameter %7
+         %26 = OpLabel
+        %119 = OpVariable %7 Function
+        %127 = OpVariable %13 Function
+        %143 = OpVariable %7 Function
+               OpStore %119 %33
+               OpBranch %120
+        %120 = OpLabel
+               OpLoopMerge %122 %123 None
+               OpBranch %124
+        %124 = OpLabel
+        %125 = OpLoad %6 %119
+        %126 = OpINotEqual %57 %125 %46
+               OpBranchConditional %126 %121 %122
+        %121 = OpLabel
+        %128 = OpLoad %6 %119
+        %129 = OpAccessChain %80 %62 %128
+        %130 = OpLoad %12 %129
+               OpStore %127 %130
+        %131 = OpAccessChain %7 %127 %33
+        %132 = OpLoad %6 %131
+        %133 = OpLoad %6 %24
+        %134 = OpIEqual %57 %132 %133
+               OpSelectionMerge %136 None
+               OpBranchConditional %134 %135 %136
+        %135 = OpLabel
+        %137 = OpLoad %6 %24
+               OpReturnValue %137
+        %136 = OpLabel
+        %139 = OpLoad %6 %24
+        %140 = OpAccessChain %7 %127 %33
+        %141 = OpLoad %6 %140
+        %142 = OpSGreaterThan %57 %139 %141
+               OpSelectionMerge %145 None
+               OpBranchConditional %142 %144 %148
+        %144 = OpLabel
+        %146 = OpAccessChain %7 %127 %38
+        %147 = OpLoad %6 %146
+               OpStore %143 %147
+               OpBranch %145
+        %148 = OpLabel
+        %149 = OpAccessChain %7 %127 %45
+        %150 = OpLoad %6 %149
+               OpStore %143 %150
+               OpBranch %145
+        %145 = OpLabel
+        %151 = OpLoad %6 %143
+               OpStore %119 %151
+               OpBranch %123
+        %123 = OpLabel
+               OpBranch %120
+        %122 = OpLabel
+               OpReturnValue %46
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# injectionSwitch
+BUFFER variant_injectionSwitch DATA_TYPE vec2<float> DATA
+ 0.0 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_injectionSwitch AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT reference_framebuffer EQ_HISTOGRAM_EMD_BUFFER variant_framebuffer TOLERANCE 0.005
+EXPECT reference_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/struct-array-data-as-loop-iterator.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/struct-array-data-as-loop-iterator.amber
new file mode 100644
index 0000000..88ba081
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/struct-array-data-as-loop-iterator.amber
@@ -0,0 +1,284 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: A fragment shader that uses struct array data for loop iterator value
+
+# The test passes because shader always writes red.
+
+# Optimized using spirv-opt with the following arguments:
+# '-O'
+# spirv-opt commit hash: ab7ac60f14ae66006bed5c989a2cfd4c4881704c
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     float zero;
+# };
+#
+# struct S
+# {
+#     int a;
+# };
+#
+# // Always returns given parameter value.
+# int func(int x)
+# {
+#     S arr[9];
+#     arr[0].a = 1;
+#
+#     for (int i = 0; i < 1 + int(zero); i++)
+#     {
+#         // Always true.
+#         if (zero < 1.0)
+#             return x;
+#
+#         i = arr[i].a;
+#     }
+#
+#     return -1;
+# }
+#
+# void main()
+# {
+#     for (int i = 0; i < 2; i++)
+#     {
+#         switch (func(i))
+#         {
+#             case -1:
+#             return;
+#             case 0:
+#                 if (func(5) == 5)
+#                     _GLF_color = vec4(1, 0, 0, 1);
+#                 else
+#                     _GLF_color = vec4(0);
+#                 return;
+#         }
+#     }
+#     _GLF_color = vec4(0); // Should never be reached.
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 204
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %79
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %12 "S"
+               OpMemberName %12 0 "a"
+               OpName %29 "buf0"
+               OpMemberName %29 0 "zero"
+               OpName %31 ""
+               OpName %79 "_GLF_color"
+               OpMemberDecorate %29 0 Offset 0
+               OpDecorate %29 Block
+               OpDecorate %31 DescriptorSet 0
+               OpDecorate %31 Binding 0
+               OpDecorate %79 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+         %12 = OpTypeStruct %6
+         %13 = OpTypeInt 32 0
+         %14 = OpConstant %13 9
+         %15 = OpTypeArray %12 %14
+         %16 = OpTypePointer Function %15
+         %18 = OpConstant %6 0
+         %19 = OpConstant %6 1
+         %28 = OpTypeFloat 32
+         %29 = OpTypeStruct %28
+         %30 = OpTypePointer Uniform %29
+         %31 = OpVariable %30 Uniform
+         %32 = OpTypePointer Uniform %28
+         %37 = OpTypeBool
+         %41 = OpConstant %28 1
+         %52 = OpConstant %6 -1
+         %62 = OpConstant %6 2
+         %71 = OpConstant %6 5
+         %77 = OpTypeVector %28 4
+         %78 = OpTypePointer Output %77
+         %79 = OpVariable %78 Output
+         %80 = OpConstant %28 0
+         %81 = OpConstantComposite %77 %41 %80 %80 %41
+         %83 = OpConstantComposite %77 %80 %80 %80 %80
+         %92 = OpConstantFalse %37
+         %95 = OpConstantTrue %37
+        %188 = OpUndef %6
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+        %144 = OpVariable %16 Function
+        %109 = OpVariable %16 Function
+               OpBranch %89
+         %89 = OpLabel
+               OpLoopMerge %88 %91 None
+               OpBranch %56
+         %56 = OpLabel
+        %186 = OpPhi %6 %188 %89 %182 %59
+        %177 = OpPhi %6 %18 %89 %87 %59
+         %63 = OpSLessThan %37 %177 %62
+               OpLoopMerge %58 %59 None
+               OpBranchConditional %63 %57 %58
+         %57 = OpLabel
+               OpBranch %112
+        %112 = OpLabel
+        %116 = OpAccessChain %7 %109 %18 %18
+               OpStore %116 %19
+               OpLoopMerge %113 %114 None
+               OpBranch %117
+        %117 = OpLabel
+        %178 = OpPhi %6 %18 %112 %138 %119
+        %122 = OpAccessChain %32 %31 %18
+        %123 = OpLoad %28 %122
+        %124 = OpConvertFToS %6 %123
+        %125 = OpIAdd %6 %19 %124
+        %126 = OpSLessThan %37 %178 %125
+               OpLoopMerge %118 %119 None
+               OpBranchConditional %126 %127 %118
+        %127 = OpLabel
+        %130 = OpFOrdLessThan %37 %123 %41
+               OpSelectionMerge %131 None
+               OpBranchConditional %130 %132 %131
+        %132 = OpLabel
+               OpBranch %118
+        %131 = OpLabel
+        %135 = OpAccessChain %7 %109 %178 %18
+        %136 = OpLoad %6 %135
+               OpBranch %119
+        %119 = OpLabel
+        %138 = OpIAdd %6 %136 %19
+               OpBranch %117
+        %118 = OpLabel
+        %183 = OpPhi %6 %186 %117 %177 %132
+        %179 = OpPhi %37 %92 %117 %95 %132
+               OpSelectionMerge %140 None
+               OpBranchConditional %179 %113 %140
+        %140 = OpLabel
+               OpBranch %113
+        %114 = OpLabel
+               OpBranch %112
+        %113 = OpLabel
+        %182 = OpPhi %6 %183 %118 %52 %140
+               OpSelectionMerge %69 None
+               OpSwitch %182 %69 -1 %67 0 %68
+         %68 = OpLabel
+               OpBranch %147
+        %147 = OpLabel
+        %151 = OpAccessChain %7 %144 %18 %18
+               OpStore %151 %19
+               OpLoopMerge %148 %149 None
+               OpBranch %152
+        %152 = OpLabel
+        %189 = OpPhi %6 %18 %147 %173 %154
+        %161 = OpSLessThan %37 %189 %125
+               OpLoopMerge %153 %154 None
+               OpBranchConditional %161 %162 %153
+        %162 = OpLabel
+        %165 = OpFOrdLessThan %37 %123 %41
+               OpSelectionMerge %166 None
+               OpBranchConditional %165 %167 %166
+        %167 = OpLabel
+               OpBranch %153
+        %166 = OpLabel
+        %170 = OpAccessChain %7 %144 %189 %18
+        %171 = OpLoad %6 %170
+               OpBranch %154
+        %154 = OpLabel
+        %173 = OpIAdd %6 %171 %19
+               OpBranch %152
+        %153 = OpLabel
+        %194 = OpPhi %6 %188 %152 %71 %167
+        %190 = OpPhi %37 %92 %152 %95 %167
+               OpSelectionMerge %175 None
+               OpBranchConditional %190 %148 %175
+        %175 = OpLabel
+               OpBranch %148
+        %149 = OpLabel
+               OpBranch %147
+        %148 = OpLabel
+        %193 = OpPhi %6 %194 %153 %52 %175
+         %74 = OpIEqual %37 %193 %71
+               OpSelectionMerge %76 None
+               OpBranchConditional %74 %75 %82
+         %82 = OpLabel
+               OpStore %79 %83
+               OpBranch %76
+         %75 = OpLabel
+               OpStore %79 %81
+               OpBranch %76
+         %76 = OpLabel
+               OpBranch %58
+         %67 = OpLabel
+               OpBranch %58
+         %69 = OpLabel
+               OpBranch %59
+         %59 = OpLabel
+         %87 = OpIAdd %6 %177 %19
+               OpBranch %56
+         %58 = OpLabel
+        %203 = OpPhi %37 %92 %56 %95 %67 %95 %76
+               OpSelectionMerge %96 None
+               OpBranchConditional %203 %88 %96
+         %96 = OpLabel
+               OpStore %79 %83
+               OpBranch %88
+         %91 = OpLabel
+               OpBranch %89
+         %88 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# zero
+BUFFER variant_zero DATA_TYPE float DATA
+ 0.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_zero AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/switch-loop-switch-if.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/switch-loop-switch-if.amber
new file mode 100644
index 0000000..589b004
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/switch-loop-switch-if.amber
@@ -0,0 +1,241 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: A nested switch-loop-switch
+
+# The test passes because the shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#   vec2 injectionSwitch;
+# };
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# void main()
+# {
+#   int i = int(injectionSwitch.x); // 0
+#
+#   switch (i) // 0
+#   {
+#   case 0:
+#     do
+#     {
+#       ++i;
+#       switch (i) // 1
+#       {
+#       case 1:
+#         continue; // Exit loop.
+#       case 2:
+#         i += 5;
+#         break;
+#       default:
+#         i += 7;
+#       }
+#     } while (i > 200); // Always false.
+#
+#     // Always false.
+#     if (i > 100)
+#     {
+#       i -= 2;
+#       break;
+#     }
+#
+#   default:
+#     // i == 1.
+#     i -= 3;
+#     // i == -2.
+#   }
+#
+#   // Always true.
+#   if (i == -2)
+#     _GLF_color = vec4(1.0, 0.0, 0.0, 1.0); // Red.
+#   else
+#     _GLF_color = vec4(0.0, 0.0, 0.0, 1.0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 76
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %70
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "i"
+               OpName %11 "buf0"
+               OpMemberName %11 0 "injectionSwitch"
+               OpName %13 ""
+               OpName %70 "_GLF_color"
+               OpDecorate %8 RelaxedPrecision
+               OpMemberDecorate %11 0 Offset 0
+               OpDecorate %11 Block
+               OpDecorate %13 DescriptorSet 0
+               OpDecorate %13 Binding 0
+               OpDecorate %20 RelaxedPrecision
+               OpDecorate %21 RelaxedPrecision
+               OpDecorate %29 RelaxedPrecision
+               OpDecorate %31 RelaxedPrecision
+               OpDecorate %32 RelaxedPrecision
+               OpDecorate %39 RelaxedPrecision
+               OpDecorate %40 RelaxedPrecision
+               OpDecorate %43 RelaxedPrecision
+               OpDecorate %44 RelaxedPrecision
+               OpDecorate %46 RelaxedPrecision
+               OpDecorate %50 RelaxedPrecision
+               OpDecorate %56 RelaxedPrecision
+               OpDecorate %57 RelaxedPrecision
+               OpDecorate %60 RelaxedPrecision
+               OpDecorate %61 RelaxedPrecision
+               OpDecorate %63 RelaxedPrecision
+               OpDecorate %70 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %9 = OpTypeFloat 32
+         %10 = OpTypeVector %9 2
+         %11 = OpTypeStruct %10
+         %12 = OpTypePointer Uniform %11
+         %13 = OpVariable %12 Uniform
+         %14 = OpConstant %6 0
+         %15 = OpTypeInt 32 0
+         %16 = OpConstant %15 0
+         %17 = OpTypePointer Uniform %9
+         %30 = OpConstant %6 1
+         %38 = OpConstant %6 5
+         %42 = OpConstant %6 7
+         %47 = OpConstant %6 200
+         %48 = OpTypeBool
+         %51 = OpConstant %6 100
+         %55 = OpConstant %6 2
+         %59 = OpConstant %6 3
+         %64 = OpConstant %6 -2
+         %68 = OpTypeVector %9 4
+         %69 = OpTypePointer Output %68
+         %70 = OpVariable %69 Output
+         %71 = OpConstant %9 1
+         %72 = OpConstant %9 0
+         %73 = OpConstantComposite %68 %71 %72 %72 %71
+         %75 = OpConstantComposite %68 %72 %72 %72 %71
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %18 = OpAccessChain %17 %13 %14 %16
+         %19 = OpLoad %9 %18
+         %20 = OpConvertFToS %6 %19
+               OpStore %8 %20
+         %21 = OpLoad %6 %8
+               OpSelectionMerge %24 None
+               OpSwitch %21 %23 0 %22
+         %23 = OpLabel
+         %60 = OpLoad %6 %8
+         %61 = OpISub %6 %60 %59
+               OpStore %8 %61
+               OpBranch %24
+         %22 = OpLabel
+               OpBranch %25
+         %25 = OpLabel
+               OpLoopMerge %27 %28 None
+               OpBranch %26
+         %26 = OpLabel
+         %29 = OpLoad %6 %8
+         %31 = OpIAdd %6 %29 %30
+               OpStore %8 %31
+         %32 = OpLoad %6 %8
+               OpSelectionMerge %36 None
+               OpSwitch %32 %35 1 %33 2 %34
+         %35 = OpLabel
+         %43 = OpLoad %6 %8
+         %44 = OpIAdd %6 %43 %42
+               OpStore %8 %44
+               OpBranch %36
+         %33 = OpLabel
+               OpBranch %28
+         %34 = OpLabel
+         %39 = OpLoad %6 %8
+         %40 = OpIAdd %6 %39 %38
+               OpStore %8 %40
+               OpBranch %36
+         %36 = OpLabel
+               OpBranch %28
+         %28 = OpLabel
+         %46 = OpLoad %6 %8
+         %49 = OpSGreaterThan %48 %46 %47
+               OpBranchConditional %49 %25 %27
+         %27 = OpLabel
+         %50 = OpLoad %6 %8
+         %52 = OpSGreaterThan %48 %50 %51
+               OpSelectionMerge %54 None
+               OpBranchConditional %52 %53 %54
+         %53 = OpLabel
+         %56 = OpLoad %6 %8
+         %57 = OpISub %6 %56 %55
+               OpStore %8 %57
+               OpBranch %24
+         %54 = OpLabel
+               OpBranch %23
+         %24 = OpLabel
+         %63 = OpLoad %6 %8
+         %65 = OpIEqual %48 %63 %64
+               OpSelectionMerge %67 None
+               OpBranchConditional %65 %66 %74
+         %66 = OpLabel
+               OpStore %70 %73
+               OpBranch %67
+         %74 = OpLabel
+               OpStore %70 %75
+               OpBranch %67
+         %67 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# injectionSwitch
+BUFFER variant_injectionSwitch DATA_TYPE vec2<float> DATA
+ 0.0 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_injectionSwitch AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/switch-with-fall-through-cases.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/switch-with-fall-through-cases.amber
new file mode 100644
index 0000000..662cd58
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/switch-with-fall-through-cases.amber
@@ -0,0 +1,202 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: A fragment shader with switch cases that fall through
+
+# The test passes because shader always writes red.
+
+# Optimized using spirv-opt with the following arguments:
+# '--ccp'
+# '--eliminate-local-single-block'
+# '--combine-access-chains'
+# '--copy-propagate-arrays'
+# '--eliminate-local-single-store'
+# '--eliminate-local-multi-store'
+# '--eliminate-local-single-block'
+# '--private-to-local'
+# spirv-opt commit hash: ab7ac60f14ae66006bed5c989a2cfd4c4881704c
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0 {
+#  vec2 injectionSwitch;
+# };
+#
+# void main()
+# {
+#     for(int i = 0; i < 2 + int(injectionSwitch.x); i++)
+#     {
+#         int value = i;
+#         float y = 0.5;
+#
+#         switch(value)
+#         {
+#             case 0:
+#                 y += 0.5;
+#             // Always falls through.
+#             case 1:
+#                 y = clamp(1.0, 0.5, y);
+#             // Always falls through.
+#             case 2:
+#             default:
+#             // Always ends up here.
+#                 // Always true.
+#                 if (y == 1.0)
+#                 {
+#                     _GLF_color = vec4(value + 1, 0, 0, 1);
+#                     return;
+#                 }
+#         }
+#     }
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 66
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %52
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "i"
+               OpName %19 "buf0"
+               OpMemberName %19 0 "injectionSwitch"
+               OpName %21 ""
+               OpName %31 "value"
+               OpName %34 "y"
+               OpName %52 "_GLF_color"
+               OpMemberDecorate %19 0 Offset 0
+               OpDecorate %19 Block
+               OpDecorate %21 DescriptorSet 0
+               OpDecorate %21 Binding 0
+               OpDecorate %52 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeInt 32 1
+          %7 = OpTypePointer Function %6
+          %9 = OpConstant %6 0
+         %16 = OpConstant %6 2
+         %17 = OpTypeFloat 32
+         %18 = OpTypeVector %17 2
+         %19 = OpTypeStruct %18
+         %20 = OpTypePointer Uniform %19
+         %21 = OpVariable %20 Uniform
+         %22 = OpTypeInt 32 0
+         %23 = OpConstant %22 0
+         %24 = OpTypePointer Uniform %17
+         %29 = OpTypeBool
+         %33 = OpTypePointer Function %17
+         %35 = OpConstant %17 0.5
+         %43 = OpConstant %17 1
+         %50 = OpTypeVector %17 4
+         %51 = OpTypePointer Output %50
+         %52 = OpVariable %51 Output
+         %54 = OpConstant %6 1
+         %57 = OpConstant %17 0
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+          %8 = OpVariable %7 Function
+         %31 = OpVariable %7 Function
+         %34 = OpVariable %33 Function
+               OpStore %8 %9
+               OpBranch %10
+         %10 = OpLabel
+         %63 = OpPhi %6 %9 %5 %62 %13
+               OpLoopMerge %12 %13 None
+               OpBranch %14
+         %14 = OpLabel
+         %25 = OpAccessChain %24 %21 %9 %23
+         %26 = OpLoad %17 %25
+         %27 = OpConvertFToS %6 %26
+         %28 = OpIAdd %6 %16 %27
+         %30 = OpSLessThan %29 %63 %28
+               OpBranchConditional %30 %11 %12
+         %11 = OpLabel
+               OpStore %31 %63
+               OpStore %34 %35
+               OpSelectionMerge %40 None
+               OpSwitch %63 %39 0 %37 1 %38 2 %39
+         %39 = OpLabel
+         %65 = OpPhi %17 %35 %11 %45 %38
+         %47 = OpFOrdEqual %29 %65 %43
+               OpSelectionMerge %49 None
+               OpBranchConditional %47 %48 %49
+         %48 = OpLabel
+         %55 = OpIAdd %6 %63 %54
+         %56 = OpConvertSToF %17 %55
+         %58 = OpCompositeConstruct %50 %56 %57 %57 %43
+               OpStore %52 %58
+               OpReturn
+         %49 = OpLabel
+               OpBranch %40
+         %37 = OpLabel
+         %42 = OpFAdd %17 %35 %35
+               OpStore %34 %42
+               OpBranch %38
+         %38 = OpLabel
+         %64 = OpPhi %17 %35 %11 %42 %37
+         %45 = OpExtInst %17 %1 FClamp %43 %35 %64
+               OpStore %34 %45
+               OpBranch %39
+         %40 = OpLabel
+               OpBranch %13
+         %13 = OpLabel
+         %62 = OpIAdd %6 %63 %54
+               OpStore %8 %62
+               OpBranch %10
+         %12 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# injectionSwitch
+BUFFER variant_injectionSwitch DATA_TYPE vec2<float> DATA
+ 0.0 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_injectionSwitch AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/texel_offset.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/texel_offset.amber
new file mode 100644
index 0000000..1549562
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/texel_offset.amber
@@ -0,0 +1,58 @@
+#!amber
+
+SHADER vertex vert_shader PASSTHROUGH
+
+SHADER fragment frag_setup GLSL
+#version 430
+
+layout(location = 0) out vec4 result;
+
+void main() {
+  result = vec4(floor(gl_FragCoord.x) / 255.0f, floor(gl_FragCoord.y) / 255.0f, 0, 0);
+}
+END
+
+SHADER fragment frag_shader GLSL
+#version 430
+
+layout(binding = 0) uniform sampler2D tex;
+
+layout(location = 0) out vec4 result;
+
+void main() {
+  vec2 base = floor(gl_FragCoord.xy) / 255.0f;
+  uint mask = 0;
+  mask |= textureOffset(tex, base, ivec2(0, -1)).g < base.y ? 1 : 0;
+  mask |= textureOffset(tex, base, ivec2(0, 1)).g > base.y ? 2 : 0;
+  mask |= textureOffset(tex, base, ivec2(-1, 0)).r < base.x ? 4 : 0;
+  mask |= textureOffset(tex, base, ivec2(1, 0)).r > base.x ? 8 : 0;
+  result = vec4(mask/255.0f, 0, 0, 0);
+}
+END
+
+IMAGE texture FORMAT R8G8B8A8_UNORM DIM_2D WIDTH 256 HEIGHT 256
+SAMPLER sampler
+
+PIPELINE graphics setup
+  ATTACH vert_shader
+  ATTACH frag_setup
+
+  BIND BUFFER texture AS color LOCATION 0
+  FRAMEBUFFER_SIZE 256 256
+END
+
+RUN setup DRAW_RECT POS 0 0 SIZE 256 256
+
+BUFFER framebuffer FORMAT R8G8B8A8_UNORM
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+
+  BIND BUFFER texture AS combined_image_sampler SAMPLER sampler DESCRIPTOR_SET 0 BINDING 0
+  BIND BUFFER framebuffer AS color LOCATION 0
+  FRAMEBUFFER_SIZE 256 256
+END
+
+RUN pipeline DRAW_RECT POS 0 0 SIZE 256 256
+EXPECT framebuffer IDX 1 1 SIZE 254 254 EQ_RGBA 15 0 0 0
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/two-loops-mat-add.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/two-loops-mat-add.amber
new file mode 100644
index 0000000..97860be
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/two-loops-mat-add.amber
@@ -0,0 +1,273 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: A fragment shader with two for loops over a global matrix
+
+# The test passes because the shader always writes red.
+
+# Optimized using spirv-opt with the following arguments:
+# '--eliminate-dead-code-aggressive'
+# '--vector-dce'
+# '--ccp'
+# '--ccp'
+# '--eliminate-dead-code-aggressive'
+# '--eliminate-local-multi-store'
+# '--eliminate-dead-branches'
+# '--inline-entry-points-exhaustive'
+# '--copy-propagate-arrays'
+# '--eliminate-local-single-store'
+# '--eliminate-local-multi-store'
+# '--convert-local-access-chains'
+# '--inline-entry-points-exhaustive'
+# '--convert-local-access-chains'
+# '--ccp'
+# '--redundancy-elimination'
+# spirv-opt commit hash: 18b3b94567a9251a6f8491a6d07c4422abadd22c
+
+
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+#
+# layout(set = 0, binding = 0) uniform buf0 {
+#   vec2 injectionSwitch;
+# };
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# mat4 m44;
+#
+# void main()
+# {
+#     // Always true.
+#     if (injectionSwitch.x < 1.0) {
+#         m44 = mat4(
+#             1.0,  2.0,  3.0,  4.0,
+#             5.0,  6.0,  7.0,  8.0,
+#             9.0,  10.0, 11.0, 12.0,
+#             13.0, 14.0, 15.0, 16.0
+#         );
+#     }
+#
+#     float s = 0.0;
+#     int c = 0;
+#     for (
+#         int i = 0;
+#         i < 4;
+#         i++)
+#     {
+#         s += m44[c][i];
+#     }
+#
+#     // 0 iteration loop.
+#     for (
+#         int i = 4;
+#         i < 4;
+#         i++)
+#     {
+#         s += m44[c][i];
+#     }
+#
+#     // Always true (1+2+3+4==10).
+#     if (s == 10.0)
+#         _GLF_color = vec4(1.0, 0.0, 0.0, 1.0);
+#     else
+#         _GLF_color = vec4(0.0, 0.0, 0.0, 1.0);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 104
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %92
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "buf0"
+               OpMemberName %8 0 "injectionSwitch"
+               OpName %10 ""
+               OpName %26 "m44"
+               OpName %48 "s"
+               OpName %51 "c"
+               OpName %52 "i"
+               OpName %71 "i"
+               OpName %92 "_GLF_color"
+               OpMemberDecorate %8 0 Offset 0
+               OpDecorate %8 Block
+               OpDecorate %10 DescriptorSet 0
+               OpDecorate %10 Binding 0
+               OpDecorate %51 RelaxedPrecision
+               OpDecorate %52 RelaxedPrecision
+               OpDecorate %70 RelaxedPrecision
+               OpDecorate %71 RelaxedPrecision
+               OpDecorate %86 RelaxedPrecision
+               OpDecorate %92 Location 0
+               OpDecorate %96 RelaxedPrecision
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeVector %6 2
+          %8 = OpTypeStruct %7
+          %9 = OpTypePointer Uniform %8
+         %10 = OpVariable %9 Uniform
+         %11 = OpTypeInt 32 1
+         %12 = OpConstant %11 0
+         %13 = OpTypeInt 32 0
+         %14 = OpConstant %13 0
+         %15 = OpTypePointer Uniform %6
+         %18 = OpConstant %6 1
+         %19 = OpTypeBool
+         %23 = OpTypeVector %6 4
+         %24 = OpTypeMatrix %23 4
+         %25 = OpTypePointer Private %24
+         %26 = OpVariable %25 Private
+         %27 = OpConstant %6 2
+         %28 = OpConstant %6 3
+         %29 = OpConstant %6 4
+         %30 = OpConstantComposite %23 %18 %27 %28 %29
+         %31 = OpConstant %6 5
+         %32 = OpConstant %6 6
+         %33 = OpConstant %6 7
+         %34 = OpConstant %6 8
+         %35 = OpConstantComposite %23 %31 %32 %33 %34
+         %36 = OpConstant %6 9
+         %37 = OpConstant %6 10
+         %38 = OpConstant %6 11
+         %39 = OpConstant %6 12
+         %40 = OpConstantComposite %23 %36 %37 %38 %39
+         %41 = OpConstant %6 13
+         %42 = OpConstant %6 14
+         %43 = OpConstant %6 15
+         %44 = OpConstant %6 16
+         %45 = OpConstantComposite %23 %41 %42 %43 %44
+         %46 = OpConstantComposite %24 %30 %35 %40 %45
+         %47 = OpTypePointer Function %6
+         %49 = OpConstant %6 0
+         %50 = OpTypePointer Function %11
+         %59 = OpConstant %11 4
+         %63 = OpTypePointer Private %6
+         %69 = OpConstant %11 1
+         %91 = OpTypePointer Output %23
+         %92 = OpVariable %91 Output
+         %93 = OpConstantComposite %23 %18 %49 %49 %18
+         %95 = OpConstantComposite %23 %49 %49 %49 %18
+        %102 = OpConstantTrue %19
+        %103 = OpConstantFalse %19
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+         %48 = OpVariable %47 Function
+         %51 = OpVariable %50 Function
+         %52 = OpVariable %50 Function
+         %71 = OpVariable %50 Function
+         %16 = OpAccessChain %15 %10 %12 %14
+         %17 = OpLoad %6 %16
+         %20 = OpFOrdLessThan %19 %17 %18
+               OpSelectionMerge %22 None
+               OpBranchConditional %20 %21 %22
+         %21 = OpLabel
+               OpStore %26 %46
+               OpBranch %22
+         %22 = OpLabel
+               OpStore %48 %49
+               OpStore %51 %12
+               OpStore %52 %12
+               OpBranch %53
+         %53 = OpLabel
+         %99 = OpPhi %6 %49 %22 %67 %56
+         %96 = OpPhi %11 %12 %22 %70 %56
+               OpLoopMerge %55 %56 None
+               OpBranch %57
+         %57 = OpLabel
+         %60 = OpSLessThan %19 %96 %59
+               OpBranchConditional %60 %54 %55
+         %54 = OpLabel
+         %64 = OpAccessChain %63 %26 %12 %96
+         %65 = OpLoad %6 %64
+         %67 = OpFAdd %6 %99 %65
+               OpStore %48 %67
+               OpBranch %56
+         %56 = OpLabel
+         %70 = OpIAdd %11 %96 %69
+               OpStore %52 %70
+               OpBranch %53
+         %55 = OpLabel
+               OpStore %71 %59
+               OpBranch %72
+         %72 = OpLabel
+         %98 = OpPhi %6 %99 %55 %84 %75
+         %97 = OpPhi %11 %59 %55 %86 %75
+               OpLoopMerge %74 %75 None
+               OpBranch %76
+         %76 = OpLabel
+         %78 = OpSLessThan %19 %59 %59
+               OpBranchConditional %103 %73 %74
+         %73 = OpLabel
+         %81 = OpAccessChain %63 %26 %12 %59
+         %82 = OpLoad %6 %81
+         %84 = OpFAdd %6 %98 %82
+               OpStore %48 %84
+               OpBranch %75
+         %75 = OpLabel
+         %86 = OpIAdd %11 %59 %69
+               OpStore %71 %86
+               OpBranch %72
+         %74 = OpLabel
+         %88 = OpFOrdEqual %19 %98 %37
+               OpSelectionMerge %90 None
+               OpBranchConditional %88 %89 %94
+         %89 = OpLabel
+               OpStore %92 %93
+               OpBranch %90
+         %94 = OpLabel
+               OpStore %92 %95
+               OpBranch %90
+         %90 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# injectionSwitch
+BUFFER variant_injectionSwitch DATA_TYPE vec2<float> DATA
+ 0.0 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_injectionSwitch AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/graphicsfuzz/vector-values-multiplied-by-fragcoord.amber b/external/vulkancts/data/vulkan/amber/graphicsfuzz/vector-values-multiplied-by-fragcoord.amber
new file mode 100644
index 0000000..9fa9b50
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/graphicsfuzz/vector-values-multiplied-by-fragcoord.amber
@@ -0,0 +1,311 @@
+#!amber
+
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+# A test for a bug found by GraphicsFuzz.
+
+# Short description: A shader that multiplies a vector by fragcoord
+
+# The test passes because shader always writes red.
+
+SHADER vertex variant_vertex_shader PASSTHROUGH
+
+# variant_fragment_shader is derived from the following GLSL:
+# #version 310 es
+# precision highp float;
+# precision highp int;
+#
+# layout(location = 0) out vec4 _GLF_color;
+#
+# layout(set = 0, binding = 0) uniform buf0
+# {
+#     vec2 injectionSwitch;
+# };
+#
+# // Returns 1.
+# float func()
+# {
+#     vec4 value;
+#     bool alwaysFalse = gl_FragCoord.x < -1.0;
+#
+#     if (alwaysFalse)
+#     {
+#         vec2 a;
+#         value.xy = a;
+#     }
+#
+#     if (!alwaysFalse)
+#     {
+#         value.xy = injectionSwitch.xy; // x == 0.0, y == 1.0
+#     }
+#
+#     //At this point all components of value are guaranteed to be initialized.
+#     value.zw = gl_FragCoord.xy * value.xy * vec2(2) + value.xy;
+#
+#     // Iterates twice.
+#     for (int i = 0; i < int(injectionSwitch.y) + 1; i++)
+#     {
+#         value.x = float(i);
+#     }
+#
+#     // Always true.
+#     if (value.x == 1.0 && value.y == 1.0)
+#         return 1.0;
+#     else
+#         return 0.0;
+# }
+#
+# void main()
+# {
+#     int count = 0;
+#
+#     // Iterates twice.
+#     for (int i = 0; i < int(injectionSwitch.y) + 1; i++)
+#     {
+#         count += int(func());
+#     }
+#
+#     // Always true.
+#     if (count == 2)
+#         _GLF_color = vec4(1, 0, 0, 1);
+#     else
+#         _GLF_color = vec4(0, 0, 0, 1);
+# }
+SHADER fragment variant_fragment_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 8
+; Bound: 129
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint Fragment %4 "main" %15 %125
+               OpExecutionMode %4 OriginUpperLeft
+               OpSource ESSL 310
+               OpName %4 "main"
+               OpName %8 "func("
+               OpName %12 "alwaysFalse"
+               OpName %15 "gl_FragCoord"
+               OpName %27 "value"
+               OpName %30 "a"
+               OpName %38 "buf0"
+               OpMemberName %38 0 "injectionSwitch"
+               OpName %40 ""
+               OpName %62 "i"
+               OpName %100 "count"
+               OpName %101 "i"
+               OpName %125 "_GLF_color"
+               OpDecorate %15 BuiltIn FragCoord
+               OpMemberDecorate %38 0 Offset 0
+               OpDecorate %38 Block
+               OpDecorate %40 DescriptorSet 0
+               OpDecorate %40 Binding 0
+               OpDecorate %125 Location 0
+          %2 = OpTypeVoid
+          %3 = OpTypeFunction %2
+          %6 = OpTypeFloat 32
+          %7 = OpTypeFunction %6
+         %10 = OpTypeBool
+         %11 = OpTypePointer Function %10
+         %13 = OpTypeVector %6 4
+         %14 = OpTypePointer Input %13
+         %15 = OpVariable %14 Input
+         %16 = OpTypeInt 32 0
+         %17 = OpConstant %16 0
+         %18 = OpTypePointer Input %6
+         %21 = OpConstant %6 -1
+         %26 = OpTypePointer Function %13
+         %28 = OpTypeVector %6 2
+         %29 = OpTypePointer Function %28
+         %38 = OpTypeStruct %28
+         %39 = OpTypePointer Uniform %38
+         %40 = OpVariable %39 Uniform
+         %41 = OpTypeInt 32 1
+         %42 = OpConstant %41 0
+         %43 = OpTypePointer Uniform %28
+         %53 = OpConstant %6 2
+         %54 = OpConstantComposite %28 %53 %53
+         %61 = OpTypePointer Function %41
+         %69 = OpConstant %16 1
+         %70 = OpTypePointer Uniform %6
+         %74 = OpConstant %41 1
+         %79 = OpTypePointer Function %6
+         %85 = OpConstant %6 1
+         %97 = OpConstant %6 0
+        %120 = OpConstant %41 2
+        %124 = OpTypePointer Output %13
+        %125 = OpVariable %124 Output
+        %126 = OpConstantComposite %13 %85 %97 %97 %85
+        %128 = OpConstantComposite %13 %97 %97 %97 %85
+          %4 = OpFunction %2 None %3
+          %5 = OpLabel
+        %100 = OpVariable %61 Function
+        %101 = OpVariable %61 Function
+               OpStore %100 %42
+               OpStore %101 %42
+               OpBranch %102
+        %102 = OpLabel
+               OpLoopMerge %104 %105 None
+               OpBranch %106
+        %106 = OpLabel
+        %107 = OpLoad %41 %101
+        %108 = OpAccessChain %70 %40 %42 %69
+        %109 = OpLoad %6 %108
+        %110 = OpConvertFToS %41 %109
+        %111 = OpIAdd %41 %110 %74
+        %112 = OpSLessThan %10 %107 %111
+               OpBranchConditional %112 %103 %104
+        %103 = OpLabel
+        %113 = OpFunctionCall %6 %8
+        %114 = OpConvertFToS %41 %113
+        %115 = OpLoad %41 %100
+        %116 = OpIAdd %41 %115 %114
+               OpStore %100 %116
+               OpBranch %105
+        %105 = OpLabel
+        %117 = OpLoad %41 %101
+        %118 = OpIAdd %41 %117 %74
+               OpStore %101 %118
+               OpBranch %102
+        %104 = OpLabel
+        %119 = OpLoad %41 %100
+        %121 = OpIEqual %10 %119 %120
+               OpSelectionMerge %123 None
+               OpBranchConditional %121 %122 %127
+        %122 = OpLabel
+               OpStore %125 %126
+               OpBranch %123
+        %127 = OpLabel
+               OpStore %125 %128
+               OpBranch %123
+        %123 = OpLabel
+               OpReturn
+               OpFunctionEnd
+          %8 = OpFunction %6 None %7
+          %9 = OpLabel
+         %12 = OpVariable %11 Function
+         %27 = OpVariable %26 Function
+         %30 = OpVariable %29 Function
+         %62 = OpVariable %61 Function
+         %19 = OpAccessChain %18 %15 %17
+         %20 = OpLoad %6 %19
+         %22 = OpFOrdLessThan %10 %20 %21
+               OpStore %12 %22
+         %23 = OpLoad %10 %12
+               OpSelectionMerge %25 None
+               OpBranchConditional %23 %24 %25
+         %24 = OpLabel
+         %31 = OpLoad %28 %30
+         %32 = OpLoad %13 %27
+         %33 = OpVectorShuffle %13 %32 %31 4 5 2 3
+               OpStore %27 %33
+               OpBranch %25
+         %25 = OpLabel
+         %34 = OpLoad %10 %12
+         %35 = OpLogicalNot %10 %34
+               OpSelectionMerge %37 None
+               OpBranchConditional %35 %36 %37
+         %36 = OpLabel
+         %44 = OpAccessChain %43 %40 %42
+         %45 = OpLoad %28 %44
+         %46 = OpLoad %13 %27
+         %47 = OpVectorShuffle %13 %46 %45 4 5 2 3
+               OpStore %27 %47
+               OpBranch %37
+         %37 = OpLabel
+         %48 = OpLoad %13 %15
+         %49 = OpVectorShuffle %28 %48 %48 0 1
+         %50 = OpLoad %13 %27
+         %51 = OpVectorShuffle %28 %50 %50 0 1
+         %52 = OpFMul %28 %49 %51
+         %55 = OpFMul %28 %52 %54
+         %56 = OpLoad %13 %27
+         %57 = OpVectorShuffle %28 %56 %56 0 1
+         %58 = OpFAdd %28 %55 %57
+         %59 = OpLoad %13 %27
+         %60 = OpVectorShuffle %13 %59 %58 0 1 4 5
+               OpStore %27 %60
+               OpStore %62 %42
+               OpBranch %63
+         %63 = OpLabel
+               OpLoopMerge %65 %66 None
+               OpBranch %67
+         %67 = OpLabel
+         %68 = OpLoad %41 %62
+         %71 = OpAccessChain %70 %40 %42 %69
+         %72 = OpLoad %6 %71
+         %73 = OpConvertFToS %41 %72
+         %75 = OpIAdd %41 %73 %74
+         %76 = OpSLessThan %10 %68 %75
+               OpBranchConditional %76 %64 %65
+         %64 = OpLabel
+         %77 = OpLoad %41 %62
+         %78 = OpConvertSToF %6 %77
+         %80 = OpAccessChain %79 %27 %17
+               OpStore %80 %78
+               OpBranch %66
+         %66 = OpLabel
+         %81 = OpLoad %41 %62
+         %82 = OpIAdd %41 %81 %74
+               OpStore %62 %82
+               OpBranch %63
+         %65 = OpLabel
+         %83 = OpAccessChain %79 %27 %17
+         %84 = OpLoad %6 %83
+         %86 = OpFOrdEqual %10 %84 %85
+               OpSelectionMerge %88 None
+               OpBranchConditional %86 %87 %88
+         %87 = OpLabel
+         %89 = OpAccessChain %79 %27 %69
+         %90 = OpLoad %6 %89
+         %91 = OpFOrdEqual %10 %90 %85
+               OpBranch %88
+         %88 = OpLabel
+         %92 = OpPhi %10 %86 %65 %91 %87
+               OpSelectionMerge %94 None
+               OpBranchConditional %92 %93 %96
+         %93 = OpLabel
+               OpReturnValue %85
+         %96 = OpLabel
+               OpReturnValue %97
+         %94 = OpLabel
+               OpUnreachable
+               OpFunctionEnd
+END
+
+# uniforms for variant
+
+# injectionSwitch
+BUFFER variant_injectionSwitch DATA_TYPE vec2<float> DATA
+ 0.0 1.0
+END
+
+BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics variant_pipeline
+  ATTACH variant_vertex_shader
+  ATTACH variant_fragment_shader
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER variant_framebuffer AS color LOCATION 0
+  BIND BUFFER variant_injectionSwitch AS uniform DESCRIPTOR_SET 0 BINDING 0
+END
+CLEAR_COLOR variant_pipeline 0 0 0 255
+
+CLEAR variant_pipeline
+RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/rasterization/line_continuity/line-strip.amber b/external/vulkancts/data/vulkan/amber/rasterization/line_continuity/line-strip.amber
new file mode 100644
index 0000000..dc88e12
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/rasterization/line_continuity/line-strip.amber
@@ -0,0 +1,182 @@
+#!amber
+# Copyright 2020 The Amber Authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER vertex vert_shader PASSTHROUGH
+
+SHADER fragment frag_shader GLSL
+#version 430
+
+layout(location = 0) out vec4 color;
+
+void main()
+{
+    color = vec4(1);
+}
+END
+
+SHADER fragment frag_shader_tex GLSL
+#version 430
+layout(location = 0) out vec4 color_out;
+uniform layout(set=0, binding=0, rgba8) readonly image2D texture;
+void main()
+{
+    color_out = imageLoad(texture, ivec2(gl_FragCoord.xy));
+}
+END
+
+SHADER compute compute_shader GLSL
+#version 430
+layout(local_size_x=32, local_size_y=4) in;
+uniform layout (set=0, binding=0, rgba8) image2D img;
+
+int w = 256;
+int h = 256;
+vec4 bg = vec4(0, 0, 0, 1);
+vec4 marked = vec4(0, 1, 1, 1);
+vec4 error = vec4(1, 0, 0, 1);
+
+shared ivec2 stack[256];
+shared int stackPtr;
+shared bool done;
+shared ivec2 pixel;
+
+void pushMarkedPixel(ivec2 p)
+{
+    imageStore(img, p, marked);
+    int slot = atomicAdd(stackPtr, 1);
+    stack[slot] = p;
+}
+
+ivec2 popMarkedPixel()
+{
+    int slot = atomicAdd(stackPtr, -1) - 1;
+    ivec2 p = stack[slot];
+    imageStore(img, p, bg);
+
+    return p;
+}
+
+void main ()
+{
+    if (gl_LocalInvocationIndex == 0)
+    {
+        stack[0] = ivec2(-1);
+        stackPtr = 0;
+        done = false;
+
+        // Use this to break the lines and verify the checker is correct.
+        //for (int x = 0; x < w; x++)
+        //    imageStore(img, ivec2(x, 128), bg);
+    }
+
+    barrier();
+
+    // Search for any pixel belonging to a line.
+    // Use 32 x 4 block for the search.
+    ivec2 p = ivec2(gl_LocalInvocationID) + ivec2(0, 128);
+    vec4 c = imageLoad(img, p);
+    // Any of the pixels found by a thread will do as a starting point.
+    if (c != bg)
+        stack[0] = p;
+
+    barrier();
+
+    if (gl_LocalInvocationIndex == 0 && stack[0] != ivec2(-1))
+    {
+        imageStore(img, stack[0], marked);
+        stackPtr++;
+    }
+
+    barrier();
+
+    while (!done)
+    {
+        if (gl_LocalInvocationIndex == 0 && stackPtr != 0)
+            pixel = popMarkedPixel();
+
+        barrier();
+
+        if (gl_LocalInvocationID.x < 3 && gl_LocalInvocationID.y < 3)
+        {
+            ivec2 p = pixel + ivec2(gl_LocalInvocationID) - ivec2(1);
+            if (p.x >= 0 && p.y >= 0 && p.x < w && p.y < h)
+            {
+                vec4 c = imageLoad(img, p);
+                if (c != marked && c != bg)
+                {
+                    pushMarkedPixel(p);
+                }
+            }
+        }
+
+        barrier();
+
+        if (gl_LocalInvocationIndex == 0 && stackPtr < 1)
+            done = true;
+
+        barrier();
+    }
+}
+END
+
+BUFFER position DATA_TYPE R8G8_SNORM DATA
+-120 -120
+-119  120
+ 120  119
+  10   20
+ -80   20
+ -80   95
+ -83   95
+ -83  -95
+ -85   95
+END
+
+BUFFER texture FORMAT R8G8B8A8_UNORM
+BUFFER framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+
+  VERTEX_DATA position LOCATION 0
+
+  BIND BUFFER texture AS color LOCATION 0
+  FRAMEBUFFER_SIZE 256 256
+END
+
+PIPELINE graphics tex_pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader_tex
+  BIND BUFFER texture AS storage_image DESCRIPTOR_SET 0 BINDING 0
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER framebuffer AS color LOCATION 0
+END
+
+PIPELINE compute verification_pipeline
+  ATTACH compute_shader
+  BIND BUFFER texture AS storage_image DESCRIPTOR_SET 0 BINDING 0
+  FRAMEBUFFER_SIZE 256 256
+END
+
+CLEAR_COLOR pipeline 0 0 0 255
+CLEAR pipeline
+
+RUN pipeline DRAW_ARRAY AS LINE_STRIP START_IDX 0 COUNT 9
+RUN verification_pipeline 1 1 1
+RUN tex_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+# Everything should be clear color since the checker consumes
+# the drawn pixels if they are continuous.
+EXPECT framebuffer IDX 0 0 SIZE 256 255 EQ_RGBA 0 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/rasterization/line_continuity/polygon-mode-lines.amber b/external/vulkancts/data/vulkan/amber/rasterization/line_continuity/polygon-mode-lines.amber
new file mode 100644
index 0000000..4bae586
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/rasterization/line_continuity/polygon-mode-lines.amber
@@ -0,0 +1,187 @@
+#!amber
+# Copyright 2020 The Amber Authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+DEVICE_FEATURE fillModeNonSolid
+
+SHADER vertex vert_shader PASSTHROUGH
+
+SHADER fragment frag_shader GLSL
+#version 430
+
+layout(location = 0) out vec4 color;
+
+void main()
+{
+    color = vec4(1);
+}
+END
+
+SHADER fragment frag_shader_tex GLSL
+#version 430
+layout(location = 0) out vec4 color_out;
+uniform layout(set=0, binding=0, rgba8) readonly image2D texture;
+void main()
+{
+    color_out = imageLoad(texture, ivec2(gl_FragCoord.xy));
+}
+END
+
+SHADER compute compute_shader GLSL
+#version 430
+layout(local_size_x=32, local_size_y=4) in;
+uniform layout (set=0, binding=0, rgba8) image2D img;
+
+int w = 256;
+int h = 256;
+vec4 bg = vec4(0, 0, 0, 1);
+vec4 marked = vec4(0, 1, 1, 1);
+vec4 error = vec4(1, 0, 0, 1);
+
+shared ivec2 stack[256];
+shared int stackPtr;
+shared bool done;
+shared ivec2 pixel;
+
+void pushMarkedPixel(ivec2 p)
+{
+    imageStore(img, p, marked);
+    int slot = atomicAdd(stackPtr, 1);
+    stack[slot] = p;
+}
+
+ivec2 popMarkedPixel()
+{
+    int slot = atomicAdd(stackPtr, -1) - 1;
+    ivec2 p = stack[slot];
+    imageStore(img, p, bg);
+
+    return p;
+}
+
+void main ()
+{
+    if (gl_LocalInvocationIndex == 0)
+    {
+        stack[0] = ivec2(-1);
+        stackPtr = 0;
+        done = false;
+
+        // Use this to break the lines and verify the checker is correct.
+        //for (int x = 0; x < w; x++)
+        //    imageStore(img, ivec2(x, 128), bg);
+    }
+
+    barrier();
+
+    // Search for any pixel belonging to a line.
+    // Use 32 x 4 block for the search.
+    ivec2 p = ivec2(gl_LocalInvocationID) + ivec2(0, 10);
+    vec4 c = imageLoad(img, p);
+    // Any of the pixels found by a thread will do as a starting point.
+    if (c != bg)
+        stack[0] = p;
+
+    barrier();
+
+    if (gl_LocalInvocationIndex == 0 && stack[0] != ivec2(-1))
+    {
+        imageStore(img, stack[0], marked);
+        stackPtr++;
+    }
+
+    barrier();
+
+    while (!done)
+    {
+        if (gl_LocalInvocationIndex == 0 && stackPtr != 0)
+            pixel = popMarkedPixel();
+
+        barrier();
+
+        if (gl_LocalInvocationID.x < 3 && gl_LocalInvocationID.y < 3)
+        {
+            ivec2 p = pixel + ivec2(gl_LocalInvocationID) - ivec2(1);
+            if (p.x >= 0 && p.y >= 0 && p.x < w && p.y < h)
+            {
+                vec4 c = imageLoad(img, p);
+                if (c != marked && c != bg)
+                {
+                    pushMarkedPixel(p);
+                }
+            }
+        }
+
+        barrier();
+
+        if (gl_LocalInvocationIndex == 0 && stackPtr < 1)
+            done = true;
+
+        barrier();
+    }
+}
+END
+
+BUFFER position DATA_TYPE R8G8_SNORM DATA
+-120 -120
+   0  120
+ 120 -120
+
+  0     0
+120     0
+ 60   -60
+
+-100  100
+ 110  100
+ 110  103
+END
+
+BUFFER texture FORMAT R8G8B8A8_UNORM
+BUFFER framebuffer FORMAT B8G8R8A8_UNORM
+
+PIPELINE graphics pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader
+
+  VERTEX_DATA position LOCATION 0
+  POLYGON_MODE line
+
+  BIND BUFFER texture AS color LOCATION 0
+  FRAMEBUFFER_SIZE 256 256
+END
+
+PIPELINE graphics tex_pipeline
+  ATTACH vert_shader
+  ATTACH frag_shader_tex
+  BIND BUFFER texture AS storage_image DESCRIPTOR_SET 0 BINDING 0
+  FRAMEBUFFER_SIZE 256 256
+  BIND BUFFER framebuffer AS color LOCATION 0
+END
+
+PIPELINE compute verification_pipeline
+  ATTACH compute_shader
+  BIND BUFFER texture AS storage_image DESCRIPTOR_SET 0 BINDING 0
+  FRAMEBUFFER_SIZE 256 256
+END
+
+CLEAR_COLOR pipeline 0 0 0 255
+CLEAR pipeline
+
+RUN pipeline DRAW_ARRAY AS TRIANGLE_LIST START_IDX 0 COUNT 9
+RUN verification_pipeline 1 1 1
+RUN tex_pipeline DRAW_RECT POS 0 0 SIZE 256 256
+
+# Everything should be clear color since the checker consumes
+# the drawn pixels if they are continuous.
+EXPECT framebuffer IDX 0 0 SIZE 256 255 EQ_RGBA 0 0 0 255
diff --git a/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size.amber b/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size.amber
new file mode 100644
index 0000000..5ed4591
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/spirv_assembly/instruction/compute/arraylength/array-stride-larger-than-element-size.amber
@@ -0,0 +1,209 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Generated from the following GLSL code, but array stride changed
+# from 4 to 8.
+#
+# SHADER compute compute_shader GLSL
+# #version 320 es
+# layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+# layout(binding = 0) buffer Out0
+# {
+#     uint values[];
+# } sb;
+#
+# void main (void)
+# {
+#     uvec3 size = gl_NumWorkGroups * gl_WorkGroupSize;
+#     uint groupNdx = size.x * size.y * gl_GlobalInvocationID.z + size.x * gl_GlobalInvocationID.y + gl_GlobalInvocationID.x;
+#     uint numValuesPerInv = uint(sb.values.length()) / (size.x * size.y * size.z);
+#     uint offset = numValuesPerInv * groupNdx;
+#
+#     for (uint ndx = 0u; ndx < numValuesPerInv; ndx++)
+#         sb.values[offset + ndx] = offset + ndx;
+# }
+SHADER compute compute_shader SPIRV-ASM
+; SPIR-V
+; Version: 1.0
+; Generator: Khronos Glslang Reference Front End; 7
+; Bound: 83
+; Schema: 0
+               OpCapability Shader
+          %1 = OpExtInstImport "GLSL.std.450"
+               OpMemoryModel Logical GLSL450
+               OpEntryPoint GLCompute %main "main" %gl_NumWorkGroups %gl_GlobalInvocationID
+               OpExecutionMode %main LocalSize 1 1 1
+               OpSource ESSL 320
+               OpName %main "main"
+               OpName %size "size"
+               OpName %gl_NumWorkGroups "gl_NumWorkGroups"
+               OpName %groupNdx "groupNdx"
+               OpName %gl_GlobalInvocationID "gl_GlobalInvocationID"
+               OpName %numValuesPerInv "numValuesPerInv"
+               OpName %Out0 "Out0"
+               OpMemberName %Out0 0 "values"
+               OpName %sb "sb"
+               OpName %offset "offset"
+               OpName %ndx "ndx"
+               OpDecorate %gl_NumWorkGroups BuiltIn NumWorkgroups
+               OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId
+               OpDecorate %_runtimearr_uint ArrayStride 8
+               OpMemberDecorate %Out0 0 Offset 0
+               OpDecorate %Out0 BufferBlock
+               OpDecorate %sb DescriptorSet 0
+               OpDecorate %sb Binding 0
+       %void = OpTypeVoid
+          %3 = OpTypeFunction %void
+       %uint = OpTypeInt 32 0
+     %v3uint = OpTypeVector %uint 3
+%_ptr_Function_v3uint = OpTypePointer Function %v3uint
+%_ptr_Input_v3uint = OpTypePointer Input %v3uint
+%gl_NumWorkGroups = OpVariable %_ptr_Input_v3uint Input
+     %uint_1 = OpConstant %uint 1
+         %14 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_0 = OpConstant %uint 0
+%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input
+     %uint_2 = OpConstant %uint 2
+%_ptr_Input_uint = OpTypePointer Input %uint
+%_runtimearr_uint = OpTypeRuntimeArray %uint
+       %Out0 = OpTypeStruct %_runtimearr_uint
+%_ptr_Uniform_Out0 = OpTypePointer Uniform %Out0
+         %sb = OpVariable %_ptr_Uniform_Out0 Uniform
+        %int = OpTypeInt 32 1
+       %bool = OpTypeBool
+      %int_0 = OpConstant %int 0
+%_ptr_Uniform_uint = OpTypePointer Uniform %uint
+      %int_1 = OpConstant %int 1
+       %main = OpFunction %void None %3
+          %5 = OpLabel
+       %size = OpVariable %_ptr_Function_v3uint Function
+   %groupNdx = OpVariable %_ptr_Function_uint Function
+%numValuesPerInv = OpVariable %_ptr_Function_uint Function
+     %offset = OpVariable %_ptr_Function_uint Function
+        %ndx = OpVariable %_ptr_Function_uint Function
+         %12 = OpLoad %v3uint %gl_NumWorkGroups
+         %15 = OpIMul %v3uint %12 %14
+               OpStore %size %15
+         %19 = OpAccessChain %_ptr_Function_uint %size %uint_0
+         %20 = OpLoad %uint %19
+         %21 = OpAccessChain %_ptr_Function_uint %size %uint_1
+         %22 = OpLoad %uint %21
+         %23 = OpIMul %uint %20 %22
+         %27 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_2
+         %28 = OpLoad %uint %27
+         %29 = OpIMul %uint %23 %28
+         %30 = OpAccessChain %_ptr_Function_uint %size %uint_0
+         %31 = OpLoad %uint %30
+         %32 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_1
+         %33 = OpLoad %uint %32
+         %34 = OpIMul %uint %31 %33
+         %35 = OpIAdd %uint %29 %34
+         %36 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0
+         %37 = OpLoad %uint %36
+         %38 = OpIAdd %uint %35 %37
+               OpStore %groupNdx %38
+         %44 = OpArrayLength %uint %sb 0
+         %46 = OpBitcast %int %44
+         %47 = OpBitcast %uint %46
+         %48 = OpAccessChain %_ptr_Function_uint %size %uint_0
+         %49 = OpLoad %uint %48
+         %50 = OpAccessChain %_ptr_Function_uint %size %uint_1
+         %51 = OpLoad %uint %50
+         %52 = OpIMul %uint %49 %51
+         %53 = OpAccessChain %_ptr_Function_uint %size %uint_2
+         %54 = OpLoad %uint %53
+         %55 = OpIMul %uint %52 %54
+         %56 = OpUDiv %uint %47 %55
+               OpStore %numValuesPerInv %56
+         %58 = OpLoad %uint %numValuesPerInv
+         %59 = OpLoad %uint %groupNdx
+         %60 = OpIMul %uint %58 %59
+               OpStore %offset %60
+               OpStore %ndx %uint_0
+               OpBranch %62
+         %62 = OpLabel
+               OpLoopMerge %64 %65 None
+               OpBranch %66
+         %66 = OpLabel
+         %67 = OpLoad %uint %ndx
+         %68 = OpLoad %uint %numValuesPerInv
+         %70 = OpULessThan %bool %67 %68
+               OpBranchConditional %70 %63 %64
+         %63 = OpLabel
+         %72 = OpLoad %uint %offset
+         %73 = OpLoad %uint %ndx
+         %74 = OpIAdd %uint %72 %73
+         %75 = OpLoad %uint %offset
+         %76 = OpLoad %uint %ndx
+         %77 = OpIAdd %uint %75 %76
+         %79 = OpAccessChain %_ptr_Uniform_uint %sb %int_0 %74
+               OpStore %79 %77
+               OpBranch %65
+         %65 = OpLabel
+         %80 = OpLoad %uint %ndx
+         %82 = OpIAdd %uint %80 %int_1
+               OpStore %ndx %82
+               OpBranch %62
+         %64 = OpLabel
+               OpReturn
+               OpFunctionEnd
+END
+
+# Because the array stride was doubled the verification shader
+# skips every second element.
+SHADER compute compute_shader_verify GLSL
+#version 320 es
+layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+layout(binding = 0) buffer Buf0
+{
+    uint values[];
+};
+
+layout(binding = 1) buffer Buf1
+{
+    int result;
+};
+
+void main()
+{
+    result = 1;
+
+    for (uint i = 0u; i < 512u; i++)
+        if (values[i*2u] != i)
+            result = 0;
+}
+END
+
+BUFFER buf DATA_TYPE uint32 SIZE 1024 FILL 0
+BUFFER result DATA_TYPE int32 SIZE 1 FILL 0
+
+PIPELINE compute verify
+  ATTACH compute_shader_verify
+
+  BIND BUFFER buf AS storage DESCRIPTOR_SET 0 BINDING 0
+  BIND BUFFER result AS storage DESCRIPTOR_SET 0 BINDING 1
+END
+
+PIPELINE compute pipeline
+  ATTACH compute_shader
+
+  BIND BUFFER buf AS storage DESCRIPTOR_SET 0 BINDING 0
+END
+
+RUN pipeline 4 2 2
+RUN verify 1 1 1
+
+EXPECT result IDX 0 EQ 1
diff --git a/external/vulkancts/data/vulkan/amber/texture/conversion/b10g11r11-ufloat-pack32-negative-values.amber b/external/vulkancts/data/vulkan/amber/texture/conversion/b10g11r11-ufloat-pack32-negative-values.amber
new file mode 100644
index 0000000..0a375d9
--- /dev/null
+++ b/external/vulkancts/data/vulkan/amber/texture/conversion/b10g11r11-ufloat-pack32-negative-values.amber
@@ -0,0 +1,73 @@
+#!amber
+# Copyright 2020 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+SHADER compute compute_shader GLSL
+#version 430
+layout(local_size_x=10, local_size_y=10) in;
+uniform layout (set=0, binding=0, r11f_g11f_b10f) image2D texture;
+
+void main ()
+{
+    ivec2 uv = ivec2(gl_GlobalInvocationID.xy);
+    vec4 color = vec4(uv.x - uv.y, uv.y, -uv.y, 1);
+    imageStore(texture, uv, color);
+}
+END
+
+SHADER compute compute_shader_verify GLSL
+#version 430
+layout(local_size_x=1, local_size_y=1) in;
+uniform layout (set=0, binding=0, r11f_g11f_b10f) image2D texture;
+layout(binding = 1) buffer Buf1
+{
+    int result;
+};
+
+void main ()
+{
+  result = 1;
+
+  for (int y = 0; y < 50; y++)
+      for (int x = 0; x < 50; x++)
+      {
+          ivec2 uv = ivec2(x, y);
+          vec4 color = imageLoad(texture, uv);
+          // Conversion to tiny float should clamp negative values to zero,
+          // thus the max operation here.
+          vec4 ref = max(vec4(uv.x - uv.y, uv.y, -uv.y, 1), vec4(0));
+
+          if (color != ref)
+              result = 0;
+      }
+}
+END
+
+IMAGE texture FORMAT B10G11R11_UFLOAT_PACK32 DIM_2D WIDTH 50 HEIGHT 50 FILL 0
+BUFFER result DATA_TYPE int32 SIZE 1 FILL 0
+
+PIPELINE compute pipeline
+  ATTACH compute_shader
+  BIND BUFFER texture AS storage_image DESCRIPTOR_SET 0 BINDING 0
+END
+
+PIPELINE compute verify
+  ATTACH compute_shader_verify
+  BIND BUFFER texture AS storage_image DESCRIPTOR_SET 0 BINDING 0
+  BIND BUFFER result AS storage DESCRIPTOR_SET 0 BINDING 1
+END
+
+RUN pipeline 5 5 1
+RUN verify 1 1 1
+EXPECT result IDX 0 EQ 1
diff --git a/external/vulkancts/data/vulkan/amber/texture_subgroup_lod/texel_fetch.amber b/external/vulkancts/data/vulkan/amber/texture/subgroup_lod/texel_fetch.amber
similarity index 100%
rename from external/vulkancts/data/vulkan/amber/texture_subgroup_lod/texel_fetch.amber
rename to external/vulkancts/data/vulkan/amber/texture/subgroup_lod/texel_fetch.amber
diff --git a/external/vulkancts/data/vulkan/amber/texture_subgroup_lod/texture_grad.amber b/external/vulkancts/data/vulkan/amber/texture/subgroup_lod/texture_grad.amber
similarity index 100%
rename from external/vulkancts/data/vulkan/amber/texture_subgroup_lod/texture_grad.amber
rename to external/vulkancts/data/vulkan/amber/texture/subgroup_lod/texture_grad.amber
diff --git a/external/vulkancts/data/vulkan/amber/texture_subgroup_lod/texture_lod.amber b/external/vulkancts/data/vulkan/amber/texture/subgroup_lod/texture_lod.amber
similarity index 100%
rename from external/vulkancts/data/vulkan/amber/texture_subgroup_lod/texture_lod.amber
rename to external/vulkancts/data/vulkan/amber/texture/subgroup_lod/texture_lod.amber
diff --git a/external/vulkancts/doc/vulkan-cts-withdrawal-2020-03.txt b/external/vulkancts/doc/vulkan-cts-withdrawal-2020-03.txt
new file mode 100644
index 0000000..bf1afb8
--- /dev/null
+++ b/external/vulkancts/doc/vulkan-cts-withdrawal-2020-03.txt
@@ -0,0 +1,35 @@
+Dear Adopters,
+
+This announcement provides notification that the Khronos Group Inc. intends
+to withdraw Vulkan CTS 1.1.4.x releases.
+
+These releases are being discontinued due to improved quality and coverage
+provided by more recent releases. Once the releases are withdrawn it will not be
+possible to make conformance submissions against these releases.
+
+The Khronos Group recommends updating to Vulkan CTS 1.2.2.x and more recent releases
+as early as possible.
+
+This announcement covers the following tags as listed on
+https://github.com/KhronosGroup/VK-GL-CTS/tags:
+- vulkan-cts-1.1.4.0
+- vulkan-cts-1.1.4.1
+- vulkan-cts-1.1.4.2
+- vulkan-cts-1.1.4.3
+
+More information about Khronos Conformance and withdrawal policies can be found
+in the Khronos Group Conformance Process document
+(https://www.khronos.org/files/conformance_procedures.pdf) Attachment M.
+Please contact the Vulkan CTS TSG chair (alexander.galazin at arm.com) or
+the Vulkan Working Group chair (tom.olson at arm.com) if you have any questions.
+
+Below are some key dates to acknowledge:
+
+2020-04-17 Notice of intent to withdraw Vulkan CTS 1.1.4.x
+           distributed via email to adopters.
+
+2020-10-14 The affected releases are withdrawn.
+
+16 April 2020
+Alexander Galazin
+Vulkan CTS TSG Chair
diff --git a/external/vulkancts/framework/vulkan/CMakeLists.txt b/external/vulkancts/framework/vulkan/CMakeLists.txt
index c307da7..37dc216 100644
--- a/external/vulkancts/framework/vulkan/CMakeLists.txt
+++ b/external/vulkancts/framework/vulkan/CMakeLists.txt
@@ -74,6 +74,8 @@
 	vkDeviceProperties.hpp
 	vkDeviceProperties.cpp
 	vkDeviceProperties.inl
+	vkRayTracingUtil.hpp
+	vkRayTracingUtil.cpp
 	)
 
 set(VKUTIL_SRCS
diff --git a/external/vulkancts/framework/vulkan/vkBarrierUtil.cpp b/external/vulkancts/framework/vulkan/vkBarrierUtil.cpp
index b0bed43..f047d14 100644
--- a/external/vulkancts/framework/vulkan/vkBarrierUtil.cpp
+++ b/external/vulkancts/framework/vulkan/vkBarrierUtil.cpp
@@ -88,4 +88,49 @@
 	return barrier;
 }
 
+void cmdPipelineMemoryBarrier		(const DeviceInterface&			vk,
+									 const VkCommandBuffer			commandBuffer,
+									 const VkPipelineStageFlags		srcStageMask,
+									 const VkPipelineStageFlags		dstStageMask,
+									 const VkMemoryBarrier*			pMemoryBarriers,
+									 const size_t					memoryBarrierCount,
+									 const VkDependencyFlags		dependencyFlags)
+{
+	const deUint32	memoryBarrierCount32	=static_cast<deUint32>(memoryBarrierCount);
+
+	DE_ASSERT(memoryBarrierCount == memoryBarrierCount32);
+
+	vk.cmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount32, pMemoryBarriers, 0u, DE_NULL, 0u, DE_NULL);
+}
+
+void cmdPipelineBufferMemoryBarrier	(const DeviceInterface&			vk,
+									 const VkCommandBuffer			commandBuffer,
+									 const VkPipelineStageFlags		srcStageMask,
+									 const VkPipelineStageFlags		dstStageMask,
+									 const VkBufferMemoryBarrier*	pBufferMemoryBarriers,
+									 const size_t					bufferMemoryBarrierCount,
+									 const VkDependencyFlags		dependencyFlags)
+{
+	const deUint32	bufferMemoryBarrierCount32	=static_cast<deUint32>(bufferMemoryBarrierCount);
+
+	DE_ASSERT(bufferMemoryBarrierCount == bufferMemoryBarrierCount32);
+
+	vk.cmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, 0u, DE_NULL, bufferMemoryBarrierCount32, pBufferMemoryBarriers, 0u, DE_NULL);
+}
+
+void cmdPipelineImageMemoryBarrier	(const DeviceInterface&			vk,
+									 const VkCommandBuffer			commandBuffer,
+									 const VkPipelineStageFlags		srcStageMask,
+									 const VkPipelineStageFlags		dstStageMask,
+									 const VkImageMemoryBarrier*	pImageMemoryBarriers,
+									 const size_t					imageMemoryBarrierCount,
+									 const VkDependencyFlags		dependencyFlags)
+{
+	const deUint32	imageMemoryBarrierCount32	=static_cast<deUint32>(imageMemoryBarrierCount);
+
+	DE_ASSERT(imageMemoryBarrierCount == imageMemoryBarrierCount32);
+
+	vk.cmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, 0u, DE_NULL, 0u, DE_NULL, imageMemoryBarrierCount32, pImageMemoryBarriers);
+}
+
 } // vkt
diff --git a/external/vulkancts/framework/vulkan/vkBarrierUtil.hpp b/external/vulkancts/framework/vulkan/vkBarrierUtil.hpp
index a803f6d..269a099 100644
--- a/external/vulkancts/framework/vulkan/vkBarrierUtil.hpp
+++ b/external/vulkancts/framework/vulkan/vkBarrierUtil.hpp
@@ -50,6 +50,30 @@
 VkMemoryBarrier makeMemoryBarrier (const VkAccessFlags	srcAccessMask,
 								   const VkAccessFlags	dstAccessMask);
 
+void cmdPipelineMemoryBarrier		(const DeviceInterface&			vk,
+									 const VkCommandBuffer			commandBuffer,
+									 const VkPipelineStageFlags		srcStageMask,
+									 const VkPipelineStageFlags		dstStageMask,
+									 const VkMemoryBarrier*			pMemoryBarriers,
+									 const size_t					memoryBarrierCount = 1u,
+									 const VkDependencyFlags		dependencyFlags = 0);
+
+void cmdPipelineBufferMemoryBarrier	(const DeviceInterface&			vk,
+									 const VkCommandBuffer			commandBuffer,
+									 const VkPipelineStageFlags		srcStageMask,
+									 const VkPipelineStageFlags		dstStageMask,
+									 const VkBufferMemoryBarrier*	pBufferMemoryBarriers,
+									 const size_t					bufferMemoryBarrierCount = 1u,
+									 const VkDependencyFlags		dependencyFlags = 0);
+
+void cmdPipelineImageMemoryBarrier	(const DeviceInterface&			vk,
+									 const VkCommandBuffer			commandBuffer,
+									 const VkPipelineStageFlags		srcStageMask,
+									 const VkPipelineStageFlags		dstStageMask,
+									 const VkImageMemoryBarrier*	pImageMemoryBarriers,
+									 const size_t					imageMemoryBarrierCount = 1u,
+									 const VkDependencyFlags		dependencyFlags = 0);
+
 } // vk
 
 #endif // _VKBARRIERUTIL_HPP
diff --git a/external/vulkancts/framework/vulkan/vkBasicTypes.inl b/external/vulkancts/framework/vulkan/vkBasicTypes.inl
index 4ee37bd..394ce15 100644
--- a/external/vulkancts/framework/vulkan/vkBasicTypes.inl
+++ b/external/vulkancts/framework/vulkan/vkBasicTypes.inl
@@ -25,6 +25,8 @@
 #define VK_FALSE							(static_cast<vk::VkBool32>		(0))
 #define VK_API_MAX_FRAMEWORK_VERSION		VK_API_VERSION_1_2
 
+VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkBuffer,							HANDLE_TYPE_BUFFER);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkImage,							HANDLE_TYPE_IMAGE);
 VK_DEFINE_HANDLE					(VkInstance,						HANDLE_TYPE_INSTANCE);
 VK_DEFINE_HANDLE					(VkPhysicalDevice,					HANDLE_TYPE_PHYSICAL_DEVICE);
 VK_DEFINE_HANDLE					(VkDevice,							HANDLE_TYPE_DEVICE);
@@ -33,8 +35,6 @@
 VK_DEFINE_HANDLE					(VkCommandBuffer,					HANDLE_TYPE_COMMAND_BUFFER);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkFence,							HANDLE_TYPE_FENCE);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkDeviceMemory,					HANDLE_TYPE_DEVICE_MEMORY);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkBuffer,							HANDLE_TYPE_BUFFER);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkImage,							HANDLE_TYPE_IMAGE);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkEvent,							HANDLE_TYPE_EVENT);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkQueryPool,						HANDLE_TYPE_QUERY_POOL);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkBufferView,						HANDLE_TYPE_BUFFER_VIEW);
@@ -42,12 +42,12 @@
 VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkShaderModule,					HANDLE_TYPE_SHADER_MODULE);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkPipelineCache,					HANDLE_TYPE_PIPELINE_CACHE);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkPipelineLayout,					HANDLE_TYPE_PIPELINE_LAYOUT);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkRenderPass,						HANDLE_TYPE_RENDER_PASS);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkPipeline,						HANDLE_TYPE_PIPELINE);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkRenderPass,						HANDLE_TYPE_RENDER_PASS);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkDescriptorSetLayout,				HANDLE_TYPE_DESCRIPTOR_SET_LAYOUT);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkSampler,							HANDLE_TYPE_SAMPLER);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkDescriptorPool,					HANDLE_TYPE_DESCRIPTOR_POOL);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkDescriptorSet,					HANDLE_TYPE_DESCRIPTOR_SET);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkDescriptorPool,					HANDLE_TYPE_DESCRIPTOR_POOL);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkFramebuffer,						HANDLE_TYPE_FRAMEBUFFER);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkCommandPool,						HANDLE_TYPE_COMMAND_POOL);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkSamplerYcbcrConversion,			HANDLE_TYPE_SAMPLER_YCBCR_CONVERSION);
@@ -57,18 +57,16 @@
 VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkDisplayKHR,						HANDLE_TYPE_DISPLAY_KHR);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkDisplayModeKHR,					HANDLE_TYPE_DISPLAY_MODE_KHR);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkDebugReportCallbackEXT,			HANDLE_TYPE_DEBUG_REPORT_CALLBACK_EXT);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkObjectTableNVX,					HANDLE_TYPE_OBJECT_TABLE_NVX);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkIndirectCommandsLayoutNVX,		HANDLE_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkDebugUtilsMessengerEXT,			HANDLE_TYPE_DEBUG_UTILS_MESSENGER_EXT);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkValidationCacheEXT,				HANDLE_TYPE_VALIDATION_CACHE_EXT);
-VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkAccelerationStructureNV,			HANDLE_TYPE_ACCELERATION_STRUCTURE_NV);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkAccelerationStructureKHR,		HANDLE_TYPE_ACCELERATION_STRUCTURE_KHR);
 VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkPerformanceConfigurationINTEL,	HANDLE_TYPE_PERFORMANCE_CONFIGURATION_INTEL);
-
-enum VkPipelineCacheHeaderVersion
-{
-	VK_PIPELINE_CACHE_HEADER_VERSION_ONE		= 1,
-	VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM	= 0x7FFFFFFF,
-};
+VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkIndirectCommandsLayoutNV,		HANDLE_TYPE_INDIRECT_COMMANDS_LAYOUT_NV);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkPrivateDataSlotEXT,				HANDLE_TYPE_PRIVATE_DATA_SLOT_EXT);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkDeferredOperationKHR,			HANDLE_TYPE_DEFERRED_OPERATION_KHR);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkAccelerationStructureNV,			HANDLE_TYPE_ACCELERATION_STRUCTURE_NV);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkSamplerYcbcrConversionKHR,		HANDLE_TYPE_SAMPLER_YCBCR_CONVERSION);
+VK_DEFINE_NON_DISPATCHABLE_HANDLE	(VkDescriptorUpdateTemplateKHR,		HANDLE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE);
 
 enum VkResult
 {
@@ -102,14 +100,21 @@
 	VK_ERROR_INCOMPATIBLE_DISPLAY_KHR						= -1000003001,
 	VK_ERROR_VALIDATION_FAILED_EXT							= -1000011001,
 	VK_ERROR_INVALID_SHADER_NV								= -1000012000,
+	VK_ERROR_INCOMPATIBLE_VERSION_KHR						= -1000150000,
 	VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT	= -1000158000,
 	VK_ERROR_NOT_PERMITTED_EXT								= -1000174001,
 	VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT			= -1000255000,
+	VK_THREAD_IDLE_KHR										= 1000268000,
+	VK_THREAD_DONE_KHR										= 1000268001,
+	VK_OPERATION_DEFERRED_KHR								= 1000268002,
+	VK_OPERATION_NOT_DEFERRED_KHR							= 1000268003,
+	VK_PIPELINE_COMPILE_REQUIRED_EXT						= 1000297000,
 	VK_ERROR_OUT_OF_POOL_MEMORY_KHR							= VK_ERROR_OUT_OF_POOL_MEMORY,
 	VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR					= VK_ERROR_INVALID_EXTERNAL_HANDLE,
 	VK_ERROR_FRAGMENTATION_EXT								= VK_ERROR_FRAGMENTATION,
 	VK_ERROR_INVALID_DEVICE_ADDRESS_EXT						= VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
 	VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR				= VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
+	VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT					= VK_PIPELINE_COMPILE_REQUIRED_EXT,
 	VK_RESULT_MAX_ENUM										= 0x7FFFFFFF,
 };
 
@@ -307,6 +312,7 @@
 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT					= 1000028001,
 	VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT				= 1000028002,
 	VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX										= 1000030000,
+	VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX									= 1000030001,
 	VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD							= 1000041000,
 	VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP							= 1000049000,
 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV					= 1000050000,
@@ -339,12 +345,6 @@
 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT				= 1000081001,
 	VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT								= 1000081002,
 	VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR												= 1000084000,
-	VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX										= 1000086000,
-	VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX							= 1000086001,
-	VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX										= 1000086002,
-	VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX							= 1000086003,
-	VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX								= 1000086004,
-	VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX							= 1000086005,
 	VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV					= 1000087000,
 	VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT										= 1000090000,
 	VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT											= 1000091000,
@@ -408,6 +408,26 @@
 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT			= 1000148001,
 	VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT				= 1000148002,
 	VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV					= 1000149000,
+	VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR						= 1000165006,
+	VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR					= 1000165007,
+	VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR					= 1000150000,
+	VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_GEOMETRY_TYPE_INFO_KHR				= 1000150001,
+	VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR					= 1000150002,
+	VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR					= 1000150003,
+	VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR				= 1000150004,
+	VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR				= 1000150005,
+	VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR								= 1000150006,
+	VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_KHR				= 1000150008,
+	VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_KHR								= 1000150009,
+	VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR								= 1000150010,
+	VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR					= 1000150011,
+	VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR					= 1000150012,
+	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_FEATURES_KHR							= 1000150013,
+	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_KHR						= 1000150014,
+	VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR								= 1000150015,
+	VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR							= 1000150016,
+	VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR							= 1000150017,
+	VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR					= 1000150018,
 	VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV					= 1000152000,
 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV					= 1000154000,
 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV					= 1000154001,
@@ -428,8 +448,6 @@
 	VK_STRUCTURE_TYPE_GEOMETRY_NV														= 1000165003,
 	VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV												= 1000165004,
 	VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV													= 1000165005,
-	VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV						= 1000165006,
-	VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV					= 1000165007,
 	VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV				= 1000165008,
 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV							= 1000165009,
 	VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV							= 1000165011,
@@ -462,7 +480,7 @@
 	VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV												= 1000206000,
 	VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV								= 1000206001,
 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL			= 1000209000,
-	VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL										= 1000210000,
+	VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL					= 1000210000,
 	VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL								= 1000210001,
 	VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL										= 1000210002,
 	VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL								= 1000210003,
@@ -506,6 +524,8 @@
 	VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT					= 1000259001,
 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT					= 1000259002,
 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT						= 1000265000,
+	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT				= 1000267000,
+	VK_STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR										= 1000268000,
 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR		= 1000269000,
 	VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR													= 1000269001,
 	VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR								= 1000269002,
@@ -513,8 +533,33 @@
 	VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR									= 1000269004,
 	VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR					= 1000269005,
 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT	= 1000276000,
+	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV			= 1000277000,
+	VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV								= 1000277001,
+	VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV					= 1000277002,
+	VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV									= 1000277003,
+	VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV							= 1000277004,
+	VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV										= 1000277005,
+	VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV					= 1000277006,
+	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV				= 1000277007,
 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT				= 1000281000,
 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT				= 1000281001,
+	VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM		= 1000282000,
+	VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM								= 1000282001,
+	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT							= 1000286000,
+	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT						= 1000286001,
+	VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT						= 1000287000,
+	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT				= 1000287001,
+	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT					= 1000287002,
+	VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR									= 1000290000,
+	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT							= 1000295000,
+	VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT								= 1000295001,
+	VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT									= 1000295002,
+	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT		= 1000297000,
+	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV					= 1000300000,
+	VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV							= 1000300001,
+	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT				= 1000332000,
+	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT				= 1000332001,
+	VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT									= 1000346000,
 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES							= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES					= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
 	VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT										= VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
@@ -573,8 +618,8 @@
 	VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR				= VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
 	VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR									= VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
 	VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR			= VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
-	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR						= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,
-	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR					= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,
+	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR					= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
+	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR						= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
 	VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR									= VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
 	VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR								= VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT				= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
@@ -598,6 +643,8 @@
 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT				= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
 	VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT		= VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
 	VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT		= VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
+	VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV						= VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR,
+	VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV					= VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR,
 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR						= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
 	VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR									= VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR		= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
@@ -613,6 +660,7 @@
 	VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR								= VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
 	VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR											= VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
 	VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR											= VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
+	VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL										= VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR					= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT					= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
 	VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR		= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
@@ -631,6 +679,100 @@
 	VK_STRUCTURE_TYPE_MAX_ENUM															= 0x7FFFFFFF,
 };
 
+enum VkImageLayout
+{
+	VK_IMAGE_LAYOUT_UNDEFINED										= 0,
+	VK_IMAGE_LAYOUT_GENERAL											= 1,
+	VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL						= 2,
+	VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL				= 3,
+	VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL					= 4,
+	VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL						= 5,
+	VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL							= 6,
+	VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL							= 7,
+	VK_IMAGE_LAYOUT_PREINITIALIZED									= 8,
+	VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL		= 1000117000,
+	VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL		= 1000117001,
+	VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL						= 1000241000,
+	VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL							= 1000241001,
+	VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL						= 1000241002,
+	VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL						= 1000241003,
+	VK_IMAGE_LAYOUT_PRESENT_SRC_KHR									= 1000001002,
+	VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR								= 1000111000,
+	VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV							= 1000164003,
+	VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT				= 1000218000,
+	VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR	= VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
+	VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR	= VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
+	VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR					= VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
+	VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR						= VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
+	VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR					= VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
+	VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR					= VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
+	VK_IMAGE_LAYOUT_MAX_ENUM										= 0x7FFFFFFF,
+};
+
+enum VkObjectType
+{
+	VK_OBJECT_TYPE_UNKNOWN							= 0,
+	VK_OBJECT_TYPE_INSTANCE							= 1,
+	VK_OBJECT_TYPE_PHYSICAL_DEVICE					= 2,
+	VK_OBJECT_TYPE_DEVICE							= 3,
+	VK_OBJECT_TYPE_QUEUE							= 4,
+	VK_OBJECT_TYPE_SEMAPHORE						= 5,
+	VK_OBJECT_TYPE_COMMAND_BUFFER					= 6,
+	VK_OBJECT_TYPE_FENCE							= 7,
+	VK_OBJECT_TYPE_DEVICE_MEMORY					= 8,
+	VK_OBJECT_TYPE_BUFFER							= 9,
+	VK_OBJECT_TYPE_IMAGE							= 10,
+	VK_OBJECT_TYPE_EVENT							= 11,
+	VK_OBJECT_TYPE_QUERY_POOL						= 12,
+	VK_OBJECT_TYPE_BUFFER_VIEW						= 13,
+	VK_OBJECT_TYPE_IMAGE_VIEW						= 14,
+	VK_OBJECT_TYPE_SHADER_MODULE					= 15,
+	VK_OBJECT_TYPE_PIPELINE_CACHE					= 16,
+	VK_OBJECT_TYPE_PIPELINE_LAYOUT					= 17,
+	VK_OBJECT_TYPE_RENDER_PASS						= 18,
+	VK_OBJECT_TYPE_PIPELINE							= 19,
+	VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT			= 20,
+	VK_OBJECT_TYPE_SAMPLER							= 21,
+	VK_OBJECT_TYPE_DESCRIPTOR_POOL					= 22,
+	VK_OBJECT_TYPE_DESCRIPTOR_SET					= 23,
+	VK_OBJECT_TYPE_FRAMEBUFFER						= 24,
+	VK_OBJECT_TYPE_COMMAND_POOL						= 25,
+	VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION			= 1000156000,
+	VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE		= 1000085000,
+	VK_OBJECT_TYPE_SURFACE_KHR						= 1000000000,
+	VK_OBJECT_TYPE_SWAPCHAIN_KHR					= 1000001000,
+	VK_OBJECT_TYPE_DISPLAY_KHR						= 1000002000,
+	VK_OBJECT_TYPE_DISPLAY_MODE_KHR					= 1000002001,
+	VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT		= 1000011000,
+	VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT		= 1000128000,
+	VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR		= 1000165000,
+	VK_OBJECT_TYPE_VALIDATION_CACHE_EXT				= 1000160000,
+	VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL	= 1000210000,
+	VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR			= 1000268000,
+	VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV		= 1000277000,
+	VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT			= 1000295000,
+	VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR	= VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
+	VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR		= VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
+	VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV		= VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR,
+	VK_OBJECT_TYPE_MAX_ENUM							= 0x7FFFFFFF,
+};
+
+enum VkVendorId
+{
+	VK_VENDOR_ID_VIV		= 0x10001,
+	VK_VENDOR_ID_VSI		= 0x10002,
+	VK_VENDOR_ID_KAZAN		= 0x10003,
+	VK_VENDOR_ID_CODEPLAY	= 0x10004,
+	VK_VENDOR_ID_MESA		= 0x10005,
+	VK_VENDOR_ID_MAX_ENUM	= 0x7FFFFFFF,
+};
+
+enum VkPipelineCacheHeaderVersion
+{
+	VK_PIPELINE_CACHE_HEADER_VERSION_ONE		= 1,
+	VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM	= 0x7FFFFFFF,
+};
+
 enum VkSystemAllocationScope
 {
 	VK_SYSTEM_ALLOCATION_SCOPE_COMMAND	= 0,
@@ -929,6 +1071,14 @@
 	VK_FORMAT_MAX_ENUM											= 0x7FFFFFFF,
 };
 
+enum VkImageTiling
+{
+	VK_IMAGE_TILING_OPTIMAL					= 0,
+	VK_IMAGE_TILING_LINEAR					= 1,
+	VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT	= 1000158000,
+	VK_IMAGE_TILING_MAX_ENUM				= 0x7FFFFFFF,
+};
+
 enum VkImageType
 {
 	VK_IMAGE_TYPE_1D		= 0,
@@ -938,14 +1088,6 @@
 	VK_IMAGE_TYPE_MAX_ENUM	= 0x7FFFFFFF,
 };
 
-enum VkImageTiling
-{
-	VK_IMAGE_TILING_OPTIMAL					= 0,
-	VK_IMAGE_TILING_LINEAR					= 1,
-	VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT	= 1000158000,
-	VK_IMAGE_TILING_MAX_ENUM				= 0x7FFFFFFF,
-};
-
 enum VkPhysicalDeviceType
 {
 	VK_PHYSICAL_DEVICE_TYPE_OTHER			= 0,
@@ -959,14 +1101,16 @@
 
 enum VkQueryType
 {
-	VK_QUERY_TYPE_OCCLUSION									= 0,
-	VK_QUERY_TYPE_PIPELINE_STATISTICS						= 1,
-	VK_QUERY_TYPE_TIMESTAMP									= 2,
-	VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT				= 1000028004,
-	VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR						= 1000116000,
-	VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV	= 1000165000,
-	VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL					= 1000210000,
-	VK_QUERY_TYPE_MAX_ENUM									= 0x7FFFFFFF,
+	VK_QUERY_TYPE_OCCLUSION										= 0,
+	VK_QUERY_TYPE_PIPELINE_STATISTICS							= 1,
+	VK_QUERY_TYPE_TIMESTAMP										= 2,
+	VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT					= 1000028004,
+	VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR							= 1000116000,
+	VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR		= 1000165000,
+	VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR	= 1000150000,
+	VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL						= 1000210000,
+	VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV		= VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR,
+	VK_QUERY_TYPE_MAX_ENUM										= 0x7FFFFFFF,
 };
 
 enum VkSharingMode
@@ -977,49 +1121,6 @@
 	VK_SHARING_MODE_MAX_ENUM	= 0x7FFFFFFF,
 };
 
-enum VkImageLayout
-{
-	VK_IMAGE_LAYOUT_UNDEFINED										= 0,
-	VK_IMAGE_LAYOUT_GENERAL											= 1,
-	VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL						= 2,
-	VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL				= 3,
-	VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL					= 4,
-	VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL						= 5,
-	VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL							= 6,
-	VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL							= 7,
-	VK_IMAGE_LAYOUT_PREINITIALIZED									= 8,
-	VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL		= 1000117000,
-	VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL		= 1000117001,
-	VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL						= 1000241000,
-	VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL							= 1000241001,
-	VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL						= 1000241002,
-	VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL						= 1000241003,
-	VK_IMAGE_LAYOUT_PRESENT_SRC_KHR									= 1000001002,
-	VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR								= 1000111000,
-	VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV							= 1000164003,
-	VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT				= 1000218000,
-	VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR	= VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
-	VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR	= VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
-	VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR					= VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
-	VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR						= VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
-	VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR					= VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
-	VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR					= VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
-	VK_IMAGE_LAYOUT_MAX_ENUM										= 0x7FFFFFFF,
-};
-
-enum VkImageViewType
-{
-	VK_IMAGE_VIEW_TYPE_1D			= 0,
-	VK_IMAGE_VIEW_TYPE_2D			= 1,
-	VK_IMAGE_VIEW_TYPE_3D			= 2,
-	VK_IMAGE_VIEW_TYPE_CUBE			= 3,
-	VK_IMAGE_VIEW_TYPE_1D_ARRAY		= 4,
-	VK_IMAGE_VIEW_TYPE_2D_ARRAY		= 5,
-	VK_IMAGE_VIEW_TYPE_CUBE_ARRAY	= 6,
-	VK_IMAGE_VIEW_TYPE_LAST,
-	VK_IMAGE_VIEW_TYPE_MAX_ENUM		= 0x7FFFFFFF,
-};
-
 enum VkComponentSwizzle
 {
 	VK_COMPONENT_SWIZZLE_IDENTITY	= 0,
@@ -1033,96 +1134,17 @@
 	VK_COMPONENT_SWIZZLE_MAX_ENUM	= 0x7FFFFFFF,
 };
 
-enum VkVertexInputRate
+enum VkImageViewType
 {
-	VK_VERTEX_INPUT_RATE_VERTEX		= 0,
-	VK_VERTEX_INPUT_RATE_INSTANCE	= 1,
-	VK_VERTEX_INPUT_RATE_LAST,
-	VK_VERTEX_INPUT_RATE_MAX_ENUM	= 0x7FFFFFFF,
-};
-
-enum VkPrimitiveTopology
-{
-	VK_PRIMITIVE_TOPOLOGY_POINT_LIST					= 0,
-	VK_PRIMITIVE_TOPOLOGY_LINE_LIST						= 1,
-	VK_PRIMITIVE_TOPOLOGY_LINE_STRIP					= 2,
-	VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST					= 3,
-	VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP				= 4,
-	VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN					= 5,
-	VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY		= 6,
-	VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY		= 7,
-	VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY	= 8,
-	VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY	= 9,
-	VK_PRIMITIVE_TOPOLOGY_PATCH_LIST					= 10,
-	VK_PRIMITIVE_TOPOLOGY_LAST,
-	VK_PRIMITIVE_TOPOLOGY_MAX_ENUM						= 0x7FFFFFFF,
-};
-
-enum VkPolygonMode
-{
-	VK_POLYGON_MODE_FILL				= 0,
-	VK_POLYGON_MODE_LINE				= 1,
-	VK_POLYGON_MODE_POINT				= 2,
-	VK_POLYGON_MODE_FILL_RECTANGLE_NV	= 1000153000,
-	VK_POLYGON_MODE_MAX_ENUM			= 0x7FFFFFFF,
-};
-
-enum VkFrontFace
-{
-	VK_FRONT_FACE_COUNTER_CLOCKWISE	= 0,
-	VK_FRONT_FACE_CLOCKWISE			= 1,
-	VK_FRONT_FACE_LAST,
-	VK_FRONT_FACE_MAX_ENUM			= 0x7FFFFFFF,
-};
-
-enum VkCompareOp
-{
-	VK_COMPARE_OP_NEVER				= 0,
-	VK_COMPARE_OP_LESS				= 1,
-	VK_COMPARE_OP_EQUAL				= 2,
-	VK_COMPARE_OP_LESS_OR_EQUAL		= 3,
-	VK_COMPARE_OP_GREATER			= 4,
-	VK_COMPARE_OP_NOT_EQUAL			= 5,
-	VK_COMPARE_OP_GREATER_OR_EQUAL	= 6,
-	VK_COMPARE_OP_ALWAYS			= 7,
-	VK_COMPARE_OP_LAST,
-	VK_COMPARE_OP_MAX_ENUM			= 0x7FFFFFFF,
-};
-
-enum VkStencilOp
-{
-	VK_STENCIL_OP_KEEP					= 0,
-	VK_STENCIL_OP_ZERO					= 1,
-	VK_STENCIL_OP_REPLACE				= 2,
-	VK_STENCIL_OP_INCREMENT_AND_CLAMP	= 3,
-	VK_STENCIL_OP_DECREMENT_AND_CLAMP	= 4,
-	VK_STENCIL_OP_INVERT				= 5,
-	VK_STENCIL_OP_INCREMENT_AND_WRAP	= 6,
-	VK_STENCIL_OP_DECREMENT_AND_WRAP	= 7,
-	VK_STENCIL_OP_LAST,
-	VK_STENCIL_OP_MAX_ENUM				= 0x7FFFFFFF,
-};
-
-enum VkLogicOp
-{
-	VK_LOGIC_OP_CLEAR			= 0,
-	VK_LOGIC_OP_AND				= 1,
-	VK_LOGIC_OP_AND_REVERSE		= 2,
-	VK_LOGIC_OP_COPY			= 3,
-	VK_LOGIC_OP_AND_INVERTED	= 4,
-	VK_LOGIC_OP_NO_OP			= 5,
-	VK_LOGIC_OP_XOR				= 6,
-	VK_LOGIC_OP_OR				= 7,
-	VK_LOGIC_OP_NOR				= 8,
-	VK_LOGIC_OP_EQUIVALENT		= 9,
-	VK_LOGIC_OP_INVERT			= 10,
-	VK_LOGIC_OP_OR_REVERSE		= 11,
-	VK_LOGIC_OP_COPY_INVERTED	= 12,
-	VK_LOGIC_OP_OR_INVERTED		= 13,
-	VK_LOGIC_OP_NAND			= 14,
-	VK_LOGIC_OP_SET				= 15,
-	VK_LOGIC_OP_LAST,
-	VK_LOGIC_OP_MAX_ENUM		= 0x7FFFFFFF,
+	VK_IMAGE_VIEW_TYPE_1D			= 0,
+	VK_IMAGE_VIEW_TYPE_2D			= 1,
+	VK_IMAGE_VIEW_TYPE_3D			= 2,
+	VK_IMAGE_VIEW_TYPE_CUBE			= 3,
+	VK_IMAGE_VIEW_TYPE_1D_ARRAY		= 4,
+	VK_IMAGE_VIEW_TYPE_2D_ARRAY		= 5,
+	VK_IMAGE_VIEW_TYPE_CUBE_ARRAY	= 6,
+	VK_IMAGE_VIEW_TYPE_LAST,
+	VK_IMAGE_VIEW_TYPE_MAX_ENUM		= 0x7FFFFFFF,
 };
 
 enum VkBlendFactor
@@ -1206,6 +1228,20 @@
 	VK_BLEND_OP_MAX_ENUM				= 0x7FFFFFFF,
 };
 
+enum VkCompareOp
+{
+	VK_COMPARE_OP_NEVER				= 0,
+	VK_COMPARE_OP_LESS				= 1,
+	VK_COMPARE_OP_EQUAL				= 2,
+	VK_COMPARE_OP_LESS_OR_EQUAL		= 3,
+	VK_COMPARE_OP_GREATER			= 4,
+	VK_COMPARE_OP_NOT_EQUAL			= 5,
+	VK_COMPARE_OP_GREATER_OR_EQUAL	= 6,
+	VK_COMPARE_OP_ALWAYS			= 7,
+	VK_COMPARE_OP_LAST,
+	VK_COMPARE_OP_MAX_ENUM			= 0x7FFFFFFF,
+};
+
 enum VkDynamicState
 {
 	VK_DYNAMIC_STATE_VIEWPORT							= 0,
@@ -1224,9 +1260,112 @@
 	VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV	= 1000164006,
 	VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV				= 1000205001,
 	VK_DYNAMIC_STATE_LINE_STIPPLE_EXT					= 1000259000,
+	VK_DYNAMIC_STATE_CULL_MODE_EXT						= 1000267000,
+	VK_DYNAMIC_STATE_FRONT_FACE_EXT						= 1000267001,
+	VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT				= 1000267002,
+	VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT			= 1000267003,
+	VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT				= 1000267004,
+	VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT	= 1000267005,
+	VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT				= 1000267006,
+	VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT				= 1000267007,
+	VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT				= 1000267008,
+	VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT		= 1000267009,
+	VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT			= 1000267010,
+	VK_DYNAMIC_STATE_STENCIL_OP_EXT						= 1000267011,
 	VK_DYNAMIC_STATE_MAX_ENUM							= 0x7FFFFFFF,
 };
 
+enum VkFrontFace
+{
+	VK_FRONT_FACE_COUNTER_CLOCKWISE	= 0,
+	VK_FRONT_FACE_CLOCKWISE			= 1,
+	VK_FRONT_FACE_LAST,
+	VK_FRONT_FACE_MAX_ENUM			= 0x7FFFFFFF,
+};
+
+enum VkVertexInputRate
+{
+	VK_VERTEX_INPUT_RATE_VERTEX		= 0,
+	VK_VERTEX_INPUT_RATE_INSTANCE	= 1,
+	VK_VERTEX_INPUT_RATE_LAST,
+	VK_VERTEX_INPUT_RATE_MAX_ENUM	= 0x7FFFFFFF,
+};
+
+enum VkPrimitiveTopology
+{
+	VK_PRIMITIVE_TOPOLOGY_POINT_LIST					= 0,
+	VK_PRIMITIVE_TOPOLOGY_LINE_LIST						= 1,
+	VK_PRIMITIVE_TOPOLOGY_LINE_STRIP					= 2,
+	VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST					= 3,
+	VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP				= 4,
+	VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN					= 5,
+	VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY		= 6,
+	VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY		= 7,
+	VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY	= 8,
+	VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY	= 9,
+	VK_PRIMITIVE_TOPOLOGY_PATCH_LIST					= 10,
+	VK_PRIMITIVE_TOPOLOGY_LAST,
+	VK_PRIMITIVE_TOPOLOGY_MAX_ENUM						= 0x7FFFFFFF,
+};
+
+enum VkPolygonMode
+{
+	VK_POLYGON_MODE_FILL				= 0,
+	VK_POLYGON_MODE_LINE				= 1,
+	VK_POLYGON_MODE_POINT				= 2,
+	VK_POLYGON_MODE_FILL_RECTANGLE_NV	= 1000153000,
+	VK_POLYGON_MODE_MAX_ENUM			= 0x7FFFFFFF,
+};
+
+enum VkStencilOp
+{
+	VK_STENCIL_OP_KEEP					= 0,
+	VK_STENCIL_OP_ZERO					= 1,
+	VK_STENCIL_OP_REPLACE				= 2,
+	VK_STENCIL_OP_INCREMENT_AND_CLAMP	= 3,
+	VK_STENCIL_OP_DECREMENT_AND_CLAMP	= 4,
+	VK_STENCIL_OP_INVERT				= 5,
+	VK_STENCIL_OP_INCREMENT_AND_WRAP	= 6,
+	VK_STENCIL_OP_DECREMENT_AND_WRAP	= 7,
+	VK_STENCIL_OP_LAST,
+	VK_STENCIL_OP_MAX_ENUM				= 0x7FFFFFFF,
+};
+
+enum VkLogicOp
+{
+	VK_LOGIC_OP_CLEAR			= 0,
+	VK_LOGIC_OP_AND				= 1,
+	VK_LOGIC_OP_AND_REVERSE		= 2,
+	VK_LOGIC_OP_COPY			= 3,
+	VK_LOGIC_OP_AND_INVERTED	= 4,
+	VK_LOGIC_OP_NO_OP			= 5,
+	VK_LOGIC_OP_XOR				= 6,
+	VK_LOGIC_OP_OR				= 7,
+	VK_LOGIC_OP_NOR				= 8,
+	VK_LOGIC_OP_EQUIVALENT		= 9,
+	VK_LOGIC_OP_INVERT			= 10,
+	VK_LOGIC_OP_OR_REVERSE		= 11,
+	VK_LOGIC_OP_COPY_INVERTED	= 12,
+	VK_LOGIC_OP_OR_INVERTED		= 13,
+	VK_LOGIC_OP_NAND			= 14,
+	VK_LOGIC_OP_SET				= 15,
+	VK_LOGIC_OP_LAST,
+	VK_LOGIC_OP_MAX_ENUM		= 0x7FFFFFFF,
+};
+
+enum VkBorderColor
+{
+	VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK	= 0,
+	VK_BORDER_COLOR_INT_TRANSPARENT_BLACK	= 1,
+	VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK		= 2,
+	VK_BORDER_COLOR_INT_OPAQUE_BLACK		= 3,
+	VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE		= 4,
+	VK_BORDER_COLOR_INT_OPAQUE_WHITE		= 5,
+	VK_BORDER_COLOR_FLOAT_CUSTOM_EXT		= 1000287003,
+	VK_BORDER_COLOR_INT_CUSTOM_EXT			= 1000287004,
+	VK_BORDER_COLOR_MAX_ENUM				= 0x7FFFFFFF,
+};
+
 enum VkFilter
 {
 	VK_FILTER_NEAREST	= 0,
@@ -1236,14 +1375,6 @@
 	VK_FILTER_MAX_ENUM	= 0x7FFFFFFF,
 };
 
-enum VkSamplerMipmapMode
-{
-	VK_SAMPLER_MIPMAP_MODE_NEAREST	= 0,
-	VK_SAMPLER_MIPMAP_MODE_LINEAR	= 1,
-	VK_SAMPLER_MIPMAP_MODE_LAST,
-	VK_SAMPLER_MIPMAP_MODE_MAX_ENUM	= 0x7FFFFFFF,
-};
-
 enum VkSamplerAddressMode
 {
 	VK_SAMPLER_ADDRESS_MODE_REPEAT						= 0,
@@ -1256,16 +1387,12 @@
 	VK_SAMPLER_ADDRESS_MODE_MAX_ENUM					= 0x7FFFFFFF,
 };
 
-enum VkBorderColor
+enum VkSamplerMipmapMode
 {
-	VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK	= 0,
-	VK_BORDER_COLOR_INT_TRANSPARENT_BLACK	= 1,
-	VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK		= 2,
-	VK_BORDER_COLOR_INT_OPAQUE_BLACK		= 3,
-	VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE		= 4,
-	VK_BORDER_COLOR_INT_OPAQUE_WHITE		= 5,
-	VK_BORDER_COLOR_LAST,
-	VK_BORDER_COLOR_MAX_ENUM				= 0x7FFFFFFF,
+	VK_SAMPLER_MIPMAP_MODE_NEAREST	= 0,
+	VK_SAMPLER_MIPMAP_MODE_LINEAR	= 1,
+	VK_SAMPLER_MIPMAP_MODE_LAST,
+	VK_SAMPLER_MIPMAP_MODE_MAX_ENUM	= 0x7FFFFFFF,
 };
 
 enum VkDescriptorType
@@ -1282,7 +1409,8 @@
 	VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC		= 9,
 	VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT				= 10,
 	VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT		= 1000138000,
-	VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV	= 1000165000,
+	VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR	= 1000165000,
+	VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV	= VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR,
 	VK_DESCRIPTOR_TYPE_MAX_ENUM						= 0x7FFFFFFF,
 };
 
@@ -1299,7 +1427,7 @@
 {
 	VK_ATTACHMENT_STORE_OP_STORE		= 0,
 	VK_ATTACHMENT_STORE_OP_DONT_CARE	= 1,
-	VK_ATTACHMENT_STORE_OP_LAST,
+	VK_ATTACHMENT_STORE_OP_NONE_QCOM	= 1000301000,
 	VK_ATTACHMENT_STORE_OP_MAX_ENUM		= 0x7FFFFFFF,
 };
 
@@ -1307,7 +1435,8 @@
 {
 	VK_PIPELINE_BIND_POINT_GRAPHICS			= 0,
 	VK_PIPELINE_BIND_POINT_COMPUTE			= 1,
-	VK_PIPELINE_BIND_POINT_RAY_TRACING_NV	= 1000165000,
+	VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR	= 1000165000,
+	VK_PIPELINE_BIND_POINT_RAY_TRACING_NV	= VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
 	VK_PIPELINE_BIND_POINT_MAX_ENUM			= 0x7FFFFFFF,
 };
 
@@ -1323,8 +1452,9 @@
 {
 	VK_INDEX_TYPE_UINT16	= 0,
 	VK_INDEX_TYPE_UINT32	= 1,
-	VK_INDEX_TYPE_NONE_NV	= 1000165000,
+	VK_INDEX_TYPE_NONE_KHR	= 1000165000,
 	VK_INDEX_TYPE_UINT8_EXT	= 1000265000,
+	VK_INDEX_TYPE_NONE_NV	= VK_INDEX_TYPE_NONE_KHR,
 	VK_INDEX_TYPE_MAX_ENUM	= 0x7FFFFFFF,
 };
 
@@ -1336,60 +1466,6 @@
 	VK_SUBPASS_CONTENTS_MAX_ENUM					= 0x7FFFFFFF,
 };
 
-enum VkObjectType
-{
-	VK_OBJECT_TYPE_UNKNOWN							= 0,
-	VK_OBJECT_TYPE_INSTANCE							= 1,
-	VK_OBJECT_TYPE_PHYSICAL_DEVICE					= 2,
-	VK_OBJECT_TYPE_DEVICE							= 3,
-	VK_OBJECT_TYPE_QUEUE							= 4,
-	VK_OBJECT_TYPE_SEMAPHORE						= 5,
-	VK_OBJECT_TYPE_COMMAND_BUFFER					= 6,
-	VK_OBJECT_TYPE_FENCE							= 7,
-	VK_OBJECT_TYPE_DEVICE_MEMORY					= 8,
-	VK_OBJECT_TYPE_BUFFER							= 9,
-	VK_OBJECT_TYPE_IMAGE							= 10,
-	VK_OBJECT_TYPE_EVENT							= 11,
-	VK_OBJECT_TYPE_QUERY_POOL						= 12,
-	VK_OBJECT_TYPE_BUFFER_VIEW						= 13,
-	VK_OBJECT_TYPE_IMAGE_VIEW						= 14,
-	VK_OBJECT_TYPE_SHADER_MODULE					= 15,
-	VK_OBJECT_TYPE_PIPELINE_CACHE					= 16,
-	VK_OBJECT_TYPE_PIPELINE_LAYOUT					= 17,
-	VK_OBJECT_TYPE_RENDER_PASS						= 18,
-	VK_OBJECT_TYPE_PIPELINE							= 19,
-	VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT			= 20,
-	VK_OBJECT_TYPE_SAMPLER							= 21,
-	VK_OBJECT_TYPE_DESCRIPTOR_POOL					= 22,
-	VK_OBJECT_TYPE_DESCRIPTOR_SET					= 23,
-	VK_OBJECT_TYPE_FRAMEBUFFER						= 24,
-	VK_OBJECT_TYPE_COMMAND_POOL						= 25,
-	VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION			= 1000156000,
-	VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE		= 1000085000,
-	VK_OBJECT_TYPE_SURFACE_KHR						= 1000000000,
-	VK_OBJECT_TYPE_SWAPCHAIN_KHR					= 1000001000,
-	VK_OBJECT_TYPE_DISPLAY_KHR						= 1000002000,
-	VK_OBJECT_TYPE_DISPLAY_MODE_KHR					= 1000002001,
-	VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT		= 1000011000,
-	VK_OBJECT_TYPE_OBJECT_TABLE_NVX					= 1000086000,
-	VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX		= 1000086001,
-	VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT		= 1000128000,
-	VK_OBJECT_TYPE_VALIDATION_CACHE_EXT				= 1000160000,
-	VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV		= 1000165000,
-	VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL	= 1000210000,
-	VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR	= VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
-	VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR		= VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
-	VK_OBJECT_TYPE_MAX_ENUM							= 0x7FFFFFFF,
-};
-
-enum VkVendorId
-{
-	VK_VENDOR_ID_VIV		= 0x10001,
-	VK_VENDOR_ID_VSI		= 0x10002,
-	VK_VENDOR_ID_KAZAN		= 0x10003,
-	VK_VENDOR_ID_MAX_ENUM	= 0x7FFFFFFF,
-};
-
 enum VkPointClippingBehavior
 {
 	VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES				= 0,
@@ -1469,6 +1545,7 @@
 	VK_DRIVER_ID_GOOGLE_SWIFTSHADER				= 10,
 	VK_DRIVER_ID_GGP_PROPRIETARY				= 11,
 	VK_DRIVER_ID_BROADCOM_PROPRIETARY			= 12,
+	VK_DRIVER_ID_MESA_LLVMPIPE					= 13,
 	VK_DRIVER_ID_AMD_PROPRIETARY_KHR			= VK_DRIVER_ID_AMD_PROPRIETARY,
 	VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR			= VK_DRIVER_ID_AMD_OPEN_SOURCE,
 	VK_DRIVER_ID_MESA_RADV_KHR					= VK_DRIVER_ID_MESA_RADV,
@@ -1518,6 +1595,17 @@
 	VK_SEMAPHORE_TYPE_MAX_ENUM		= 0x7FFFFFFF,
 };
 
+enum VkPresentModeKHR
+{
+	VK_PRESENT_MODE_IMMEDIATE_KHR					= 0,
+	VK_PRESENT_MODE_MAILBOX_KHR						= 1,
+	VK_PRESENT_MODE_FIFO_KHR						= 2,
+	VK_PRESENT_MODE_FIFO_RELAXED_KHR				= 3,
+	VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR		= 1000111000,
+	VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR	= 1000111001,
+	VK_PRESENT_MODE_MAX_ENUM_KHR					= 0x7FFFFFFF,
+};
+
 enum VkColorSpaceKHR
 {
 	VK_COLOR_SPACE_SRGB_NONLINEAR_KHR			= 0,
@@ -1541,17 +1629,6 @@
 	VK_COLOR_SPACE_MAX_ENUM_KHR					= 0x7FFFFFFF,
 };
 
-enum VkPresentModeKHR
-{
-	VK_PRESENT_MODE_IMMEDIATE_KHR					= 0,
-	VK_PRESENT_MODE_MAILBOX_KHR						= 1,
-	VK_PRESENT_MODE_FIFO_KHR						= 2,
-	VK_PRESENT_MODE_FIFO_RELAXED_KHR				= 3,
-	VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR		= 1000111000,
-	VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR	= 1000111001,
-	VK_PRESENT_MODE_MAX_ENUM_KHR					= 0x7FFFFFFF,
-};
-
 enum VkPerformanceCounterUnitKHR
 {
 	VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR				= 0,
@@ -1636,16 +1713,15 @@
 	VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT		= 28,
 	VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT						= 29,
 	VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT				= 30,
-	VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT				= 31,
-	VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT	= 32,
 	VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT			= 33,
 	VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT		= 1000156000,
 	VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT		= 1000085000,
-	VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT		= 1000165000,
+	VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT		= 1000165000,
 	VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT					= VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
 	VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT				= VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
 	VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT	= VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
 	VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT	= VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
+	VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT		= VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT,
 	VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT						= 0x7FFFFFFF,
 };
 
@@ -1674,31 +1750,6 @@
 	VK_VALIDATION_CHECK_MAX_ENUM_EXT	= 0x7FFFFFFF,
 };
 
-enum VkIndirectCommandsTokenTypeNVX
-{
-	VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX		= 0,
-	VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX	= 1,
-	VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX	= 2,
-	VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX	= 3,
-	VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX	= 4,
-	VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX	= 5,
-	VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX			= 6,
-	VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX		= 7,
-	VK_INDIRECT_COMMANDS_TOKEN_TYPE_NVX_LAST,
-	VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NVX		= 0x7FFFFFFF,
-};
-
-enum VkObjectEntryTypeNVX
-{
-	VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX	= 0,
-	VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX		= 1,
-	VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX	= 2,
-	VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX	= 3,
-	VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX	= 4,
-	VK_OBJECT_ENTRY_TYPE_NVX_LAST,
-	VK_OBJECT_ENTRY_TYPE_MAX_ENUM_NVX		= 0x7FFFFFFF,
-};
-
 enum VkDisplayPowerStateEXT
 {
 	VK_DISPLAY_POWER_STATE_OFF_EXT		= 0,
@@ -1806,46 +1857,60 @@
 	VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV		= 0x7FFFFFFF,
 };
 
-enum VkAccelerationStructureTypeNV
+enum VkRayTracingShaderGroupTypeKHR
 {
-	VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV		= 0,
-	VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV	= 1,
-	VK_ACCELERATION_STRUCTURE_TYPE_NV_LAST,
-	VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_NV		= 0x7FFFFFFF,
+	VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR				= 0,
+	VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR	= 1,
+	VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR	= 2,
+	VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV					= VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
+	VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV		= VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
+	VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV	= VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR,
+	VK_RAY_TRACING_SHADER_GROUP_TYPE_KHR_LAST,
+	VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR				= 0x7FFFFFFF,
 };
 
-enum VkRayTracingShaderGroupTypeNV
+enum VkGeometryTypeKHR
 {
-	VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV					= 0,
-	VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV		= 1,
-	VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV	= 2,
-	VK_RAY_TRACING_SHADER_GROUP_TYPE_NV_LAST,
-	VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_NV				= 0x7FFFFFFF,
+	VK_GEOMETRY_TYPE_TRIANGLES_KHR	= 0,
+	VK_GEOMETRY_TYPE_AABBS_KHR		= 1,
+	VK_GEOMETRY_TYPE_INSTANCES_KHR	= 1000150000,
+	VK_GEOMETRY_TYPE_TRIANGLES_NV	= VK_GEOMETRY_TYPE_TRIANGLES_KHR,
+	VK_GEOMETRY_TYPE_AABBS_NV		= VK_GEOMETRY_TYPE_AABBS_KHR,
+	VK_GEOMETRY_TYPE_MAX_ENUM_KHR	= 0x7FFFFFFF,
 };
 
-enum VkGeometryTypeNV
+enum VkAccelerationStructureTypeKHR
 {
-	VK_GEOMETRY_TYPE_TRIANGLES_NV	= 0,
-	VK_GEOMETRY_TYPE_AABBS_NV		= 1,
-	VK_GEOMETRY_TYPE_NV_LAST,
-	VK_GEOMETRY_TYPE_MAX_ENUM_NV	= 0x7FFFFFFF,
+	VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR	= 0,
+	VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR	= 1,
+	VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV		= VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
+	VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV	= VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
+	VK_ACCELERATION_STRUCTURE_TYPE_KHR_LAST,
+	VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR		= 0x7FFFFFFF,
 };
 
-enum VkCopyAccelerationStructureModeNV
+enum VkCopyAccelerationStructureModeKHR
 {
-	VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV	= 0,
-	VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV	= 1,
-	VK_COPY_ACCELERATION_STRUCTURE_MODE_NV_LAST,
-	VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_NV	= 0x7FFFFFFF,
+	VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR		= 0,
+	VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR		= 1,
+	VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR	= 2,
+	VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR	= 3,
+	VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV		= VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
+	VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV		= VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
+	VK_COPY_ACCELERATION_STRUCTURE_MODE_KHR_LAST,
+	VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR	= 0x7FFFFFFF,
 };
 
-enum VkAccelerationStructureMemoryRequirementsTypeNV
+enum VkAccelerationStructureMemoryRequirementsTypeKHR
 {
-	VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV			= 0,
-	VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV		= 1,
-	VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV	= 2,
-	VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_NV_LAST,
-	VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV			= 0x7FFFFFFF,
+	VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR			= 0,
+	VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_KHR	= 1,
+	VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_KHR	= 2,
+	VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV			= VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR,
+	VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV		= VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_KHR,
+	VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV	= VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_KHR,
+	VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_KHR_LAST,
+	VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_KHR			= 0x7FFFFFFF,
 };
 
 enum VkQueueGlobalPriorityEXT
@@ -1922,6 +1987,7 @@
 	VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT						= 0,
 	VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT	= 1,
 	VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT						= 2,
+	VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT						= 3,
 	VK_VALIDATION_FEATURE_ENABLE_EXT_LAST,
 	VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT							= 0x7FFFFFFF,
 };
@@ -1983,6 +2049,29 @@
 	VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT				= 0x7FFFFFFF,
 };
 
+enum VkIndirectCommandsTokenTypeNV
+{
+	VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV		= 0,
+	VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV		= 1,
+	VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV		= 2,
+	VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV	= 3,
+	VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV	= 4,
+	VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV		= 5,
+	VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV				= 6,
+	VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV		= 7,
+	VK_INDIRECT_COMMANDS_TOKEN_TYPE_NV_LAST,
+	VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV			= 0x7FFFFFFF,
+};
+
+enum VkAccelerationStructureBuildTypeKHR
+{
+	VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR			= 0,
+	VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR			= 1,
+	VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR	= 2,
+	VK_ACCELERATION_STRUCTURE_BUILD_TYPE_KHR_LAST,
+	VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR		= 0x7FFFFFFF,
+};
+
 enum VkFullScreenExclusiveEXT
 {
 	VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT				= 0,
@@ -1993,15 +2082,91 @@
 	VK_FULL_SCREEN_EXCLUSIVE_MAX_ENUM_EXT				= 0x7FFFFFFF,
 };
 
+typedef VkPointClippingBehavior VkPointClippingBehaviorKHR;
 
+typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR;
 
+typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR;
 
+typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR;
 
+typedef VkChromaLocation VkChromaLocationKHR;
 
+typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR;
 
+typedef VkDriverId VkDriverIdKHR;
 
+typedef VkShaderFloatControlsIndependence VkShaderFloatControlsIndependenceKHR;
 
+typedef VkSamplerReductionMode VkSamplerReductionModeEXT;
 
+typedef VkSemaphoreType VkSemaphoreTypeKHR;
+
+typedef VkRayTracingShaderGroupTypeKHR VkRayTracingShaderGroupTypeNV;
+
+typedef VkGeometryTypeKHR VkGeometryTypeNV;
+
+typedef VkAccelerationStructureTypeKHR VkAccelerationStructureTypeNV;
+
+typedef VkCopyAccelerationStructureModeKHR VkCopyAccelerationStructureModeNV;
+
+typedef VkAccelerationStructureMemoryRequirementsTypeKHR VkAccelerationStructureMemoryRequirementsTypeNV;
+
+enum VkAccessFlagBits
+{
+	VK_ACCESS_INDIRECT_COMMAND_READ_BIT					= 0x00000001,
+	VK_ACCESS_INDEX_READ_BIT							= 0x00000002,
+	VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT					= 0x00000004,
+	VK_ACCESS_UNIFORM_READ_BIT							= 0x00000008,
+	VK_ACCESS_INPUT_ATTACHMENT_READ_BIT					= 0x00000010,
+	VK_ACCESS_SHADER_READ_BIT							= 0x00000020,
+	VK_ACCESS_SHADER_WRITE_BIT							= 0x00000040,
+	VK_ACCESS_COLOR_ATTACHMENT_READ_BIT					= 0x00000080,
+	VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT				= 0x00000100,
+	VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT			= 0x00000200,
+	VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT		= 0x00000400,
+	VK_ACCESS_TRANSFER_READ_BIT							= 0x00000800,
+	VK_ACCESS_TRANSFER_WRITE_BIT						= 0x00001000,
+	VK_ACCESS_HOST_READ_BIT								= 0x00002000,
+	VK_ACCESS_HOST_WRITE_BIT							= 0x00004000,
+	VK_ACCESS_MEMORY_READ_BIT							= 0x00008000,
+	VK_ACCESS_MEMORY_WRITE_BIT							= 0x00010000,
+	VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT			= 0x02000000,
+	VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT	= 0x04000000,
+	VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT	= 0x08000000,
+	VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT		= 0x00100000,
+	VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT	= 0x00080000,
+	VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR		= 0x00200000,
+	VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR		= 0x00400000,
+	VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV			= 0x00800000,
+	VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT			= 0x01000000,
+	VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV			= 0x00020000,
+	VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV			= 0x00040000,
+	VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV		= VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
+	VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV		= VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
+	VK_ACCESS_FLAG_BITS_MAX_ENUM						= 0x7FFFFFFF,
+};
+typedef deUint32 VkAccessFlags;
+
+enum VkImageAspectFlagBits
+{
+	VK_IMAGE_ASPECT_COLOR_BIT				= 0x00000001,
+	VK_IMAGE_ASPECT_DEPTH_BIT				= 0x00000002,
+	VK_IMAGE_ASPECT_STENCIL_BIT				= 0x00000004,
+	VK_IMAGE_ASPECT_METADATA_BIT			= 0x00000008,
+	VK_IMAGE_ASPECT_PLANE_0_BIT				= 0x00000010,
+	VK_IMAGE_ASPECT_PLANE_1_BIT				= 0x00000020,
+	VK_IMAGE_ASPECT_PLANE_2_BIT				= 0x00000040,
+	VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT	= 0x00000080,
+	VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT	= 0x00000100,
+	VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT	= 0x00000200,
+	VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT	= 0x00000400,
+	VK_IMAGE_ASPECT_PLANE_0_BIT_KHR			= VK_IMAGE_ASPECT_PLANE_0_BIT,
+	VK_IMAGE_ASPECT_PLANE_1_BIT_KHR			= VK_IMAGE_ASPECT_PLANE_1_BIT,
+	VK_IMAGE_ASPECT_PLANE_2_BIT_KHR			= VK_IMAGE_ASPECT_PLANE_2_BIT,
+	VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM		= 0x7FFFFFFF,
+};
+typedef deUint32 VkImageAspectFlags;
 
 enum VkFormatFeatureFlagBits
 {
@@ -2029,6 +2194,7 @@
 	VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT														= 0x00800000,
 	VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT													= 0x00010000,
 	VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG												= 0x00002000,
+	VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR										= 0x20000000,
 	VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT														= 0x01000000,
 	VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR																= VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
 	VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR																= VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
@@ -2045,22 +2211,6 @@
 };
 typedef deUint32 VkFormatFeatureFlags;
 
-enum VkImageUsageFlagBits
-{
-	VK_IMAGE_USAGE_TRANSFER_SRC_BIT				= 0x00000001,
-	VK_IMAGE_USAGE_TRANSFER_DST_BIT				= 0x00000002,
-	VK_IMAGE_USAGE_SAMPLED_BIT					= 0x00000004,
-	VK_IMAGE_USAGE_STORAGE_BIT					= 0x00000008,
-	VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT			= 0x00000010,
-	VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT	= 0x00000020,
-	VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT		= 0x00000040,
-	VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT			= 0x00000080,
-	VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV	= 0x00000100,
-	VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT	= 0x00000200,
-	VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM			= 0x7FFFFFFF,
-};
-typedef deUint32 VkImageUsageFlags;
-
 enum VkImageCreateFlagBits
 {
 	VK_IMAGE_CREATE_SPARSE_BINDING_BIT							= 0x00000001,
@@ -2101,16 +2251,30 @@
 };
 typedef deUint32 VkSampleCountFlags;
 
-enum VkQueueFlagBits
+enum VkImageUsageFlagBits
 {
-	VK_QUEUE_GRAPHICS_BIT		= 0x00000001,
-	VK_QUEUE_COMPUTE_BIT		= 0x00000002,
-	VK_QUEUE_TRANSFER_BIT		= 0x00000004,
-	VK_QUEUE_SPARSE_BINDING_BIT	= 0x00000008,
-	VK_QUEUE_PROTECTED_BIT		= 0x00000010,
-	VK_QUEUE_FLAG_BITS_MAX_ENUM	= 0x7FFFFFFF,
+	VK_IMAGE_USAGE_TRANSFER_SRC_BIT				= 0x00000001,
+	VK_IMAGE_USAGE_TRANSFER_DST_BIT				= 0x00000002,
+	VK_IMAGE_USAGE_SAMPLED_BIT					= 0x00000004,
+	VK_IMAGE_USAGE_STORAGE_BIT					= 0x00000008,
+	VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT			= 0x00000010,
+	VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT	= 0x00000020,
+	VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT		= 0x00000040,
+	VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT			= 0x00000080,
+	VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV	= 0x00000100,
+	VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT	= 0x00000200,
+	VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM			= 0x7FFFFFFF,
 };
-typedef deUint32 VkQueueFlags;
+typedef deUint32 VkImageUsageFlags;
+
+enum VkMemoryHeapFlagBits
+{
+	VK_MEMORY_HEAP_DEVICE_LOCAL_BIT			= 0x00000001,
+	VK_MEMORY_HEAP_MULTI_INSTANCE_BIT		= 0x00000002,
+	VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR	= VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
+	VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM		= 0x7FFFFFFF,
+};
+typedef deUint32 VkMemoryHeapFlags;
 
 enum VkMemoryPropertyFlagBits
 {
@@ -2126,14 +2290,16 @@
 };
 typedef deUint32 VkMemoryPropertyFlags;
 
-enum VkMemoryHeapFlagBits
+enum VkQueueFlagBits
 {
-	VK_MEMORY_HEAP_DEVICE_LOCAL_BIT			= 0x00000001,
-	VK_MEMORY_HEAP_MULTI_INSTANCE_BIT		= 0x00000002,
-	VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR	= VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
-	VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM		= 0x7FFFFFFF,
+	VK_QUEUE_GRAPHICS_BIT		= 0x00000001,
+	VK_QUEUE_COMPUTE_BIT		= 0x00000002,
+	VK_QUEUE_TRANSFER_BIT		= 0x00000004,
+	VK_QUEUE_SPARSE_BINDING_BIT	= 0x00000008,
+	VK_QUEUE_PROTECTED_BIT		= 0x00000010,
+	VK_QUEUE_FLAG_BITS_MAX_ENUM	= 0x7FFFFFFF,
 };
-typedef deUint32 VkMemoryHeapFlags;
+typedef deUint32 VkQueueFlags;
 
 enum VkDeviceQueueCreateFlagBits
 {
@@ -2163,36 +2329,25 @@
 	VK_PIPELINE_STAGE_ALL_COMMANDS_BIT						= 0x00010000,
 	VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT			= 0x01000000,
 	VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT			= 0x00040000,
-	VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX				= 0x00020000,
+	VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR			= 0x00200000,
+	VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR	= 0x02000000,
 	VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV				= 0x00400000,
-	VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV				= 0x00200000,
-	VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV	= 0x02000000,
 	VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV					= 0x00080000,
 	VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV					= 0x00100000,
 	VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT		= 0x00800000,
+	VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV				= 0x00020000,
+	VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV				= VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
+	VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV	= VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
 	VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM					= 0x7FFFFFFF,
 };
 typedef deUint32 VkPipelineStageFlags;
 
-enum VkImageAspectFlagBits
+enum VkSparseMemoryBindFlagBits
 {
-	VK_IMAGE_ASPECT_COLOR_BIT				= 0x00000001,
-	VK_IMAGE_ASPECT_DEPTH_BIT				= 0x00000002,
-	VK_IMAGE_ASPECT_STENCIL_BIT				= 0x00000004,
-	VK_IMAGE_ASPECT_METADATA_BIT			= 0x00000008,
-	VK_IMAGE_ASPECT_PLANE_0_BIT				= 0x00000010,
-	VK_IMAGE_ASPECT_PLANE_1_BIT				= 0x00000020,
-	VK_IMAGE_ASPECT_PLANE_2_BIT				= 0x00000040,
-	VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT	= 0x00000080,
-	VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT	= 0x00000100,
-	VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT	= 0x00000200,
-	VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT	= 0x00000400,
-	VK_IMAGE_ASPECT_PLANE_0_BIT_KHR			= VK_IMAGE_ASPECT_PLANE_0_BIT,
-	VK_IMAGE_ASPECT_PLANE_1_BIT_KHR			= VK_IMAGE_ASPECT_PLANE_1_BIT,
-	VK_IMAGE_ASPECT_PLANE_2_BIT_KHR			= VK_IMAGE_ASPECT_PLANE_2_BIT,
-	VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM		= 0x7FFFFFFF,
+	VK_SPARSE_MEMORY_BIND_METADATA_BIT			= 0x00000001,
+	VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM	= 0x7FFFFFFF,
 };
-typedef deUint32 VkImageAspectFlags;
+typedef deUint32 VkSparseMemoryBindFlags;
 
 enum VkSparseImageFormatFlagBits
 {
@@ -2203,13 +2358,6 @@
 };
 typedef deUint32 VkSparseImageFormatFlags;
 
-enum VkSparseMemoryBindFlagBits
-{
-	VK_SPARSE_MEMORY_BIND_METADATA_BIT			= 0x00000001,
-	VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM	= 0x7FFFFFFF,
-};
-typedef deUint32 VkSparseMemoryBindFlags;
-
 enum VkFenceCreateFlagBits
 {
 	VK_FENCE_CREATE_SIGNALED_BIT		= 0x00000001,
@@ -2272,7 +2420,8 @@
 	VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT			= 0x00000800,
 	VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT	= 0x00001000,
 	VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT				= 0x00000200,
-	VK_BUFFER_USAGE_RAY_TRACING_BIT_NV							= 0x00000400,
+	VK_BUFFER_USAGE_RAY_TRACING_BIT_KHR							= 0x00000400,
+	VK_BUFFER_USAGE_RAY_TRACING_BIT_NV							= VK_BUFFER_USAGE_RAY_TRACING_BIT_KHR,
 	VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT				= VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
 	VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR				= VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
 	VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM							= 0x7FFFFFFF,
@@ -2282,6 +2431,7 @@
 enum VkImageViewCreateFlagBits
 {
 	VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT	= 0x00000001,
+	VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT	= 0x00000002,
 	VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM						= 0x7FFFFFFF,
 };
 typedef deUint32 VkImageViewCreateFlags;
@@ -2292,20 +2442,47 @@
 };
 typedef deUint32 VkShaderModuleCreateFlags;
 
+enum VkPipelineCacheCreateFlagBits
+{
+	VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT	= 0x00000001,
+	VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM					= 0x7FFFFFFF,
+};
+typedef deUint32 VkPipelineCacheCreateFlags;
+
+enum VkColorComponentFlagBits
+{
+	VK_COLOR_COMPONENT_R_BIT				= 0x00000001,
+	VK_COLOR_COMPONENT_G_BIT				= 0x00000002,
+	VK_COLOR_COMPONENT_B_BIT				= 0x00000004,
+	VK_COLOR_COMPONENT_A_BIT				= 0x00000008,
+	VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM	= 0x7FFFFFFF,
+};
+typedef deUint32 VkColorComponentFlags;
+
 enum VkPipelineCreateFlagBits
 {
-	VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT					= 0x00000001,
-	VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT					= 0x00000002,
-	VK_PIPELINE_CREATE_DERIVATIVE_BIT							= 0x00000004,
-	VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT			= 0x00000008,
-	VK_PIPELINE_CREATE_DISPATCH_BASE_BIT						= 0x00000010,
-	VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV						= 0x00000020,
-	VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR				= 0x00000040,
-	VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR	= 0x00000080,
-	VK_PIPELINE_CREATE_DISPATCH_BASE							= VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
-	VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR		= VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
-	VK_PIPELINE_CREATE_DISPATCH_BASE_KHR						= VK_PIPELINE_CREATE_DISPATCH_BASE,
-	VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM						= 0x7FFFFFFF,
+	VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT							= 0x00000001,
+	VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT							= 0x00000002,
+	VK_PIPELINE_CREATE_DERIVATIVE_BIT									= 0x00000004,
+	VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT					= 0x00000008,
+	VK_PIPELINE_CREATE_DISPATCH_BASE_BIT								= 0x00000010,
+	VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR		= 0x00004000,
+	VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR	= 0x00008000,
+	VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR			= 0x00010000,
+	VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR	= 0x00020000,
+	VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR				= 0x00001000,
+	VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR					= 0x00002000,
+	VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV								= 0x00000020,
+	VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR						= 0x00000040,
+	VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR			= 0x00000080,
+	VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV							= 0x00040000,
+	VK_PIPELINE_CREATE_LIBRARY_BIT_KHR									= 0x00000800,
+	VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT		= 0x00000100,
+	VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT					= 0x00000200,
+	VK_PIPELINE_CREATE_DISPATCH_BASE									= VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
+	VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR				= VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
+	VK_PIPELINE_CREATE_DISPATCH_BASE_KHR								= VK_PIPELINE_CREATE_DISPATCH_BASE,
+	VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM								= 0x7FFFFFFF,
 };
 typedef deUint32 VkPipelineCreateFlags;
 
@@ -2327,14 +2504,20 @@
 	VK_SHADER_STAGE_COMPUTE_BIT					= 0x00000020,
 	VK_SHADER_STAGE_ALL_GRAPHICS				= 0x0000001F,
 	VK_SHADER_STAGE_ALL							= 0x7FFFFFFF,
-	VK_SHADER_STAGE_RAYGEN_BIT_NV				= 0x00000100,
-	VK_SHADER_STAGE_ANY_HIT_BIT_NV				= 0x00000200,
-	VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV			= 0x00000400,
-	VK_SHADER_STAGE_MISS_BIT_NV					= 0x00000800,
-	VK_SHADER_STAGE_INTERSECTION_BIT_NV			= 0x00001000,
-	VK_SHADER_STAGE_CALLABLE_BIT_NV				= 0x00002000,
+	VK_SHADER_STAGE_RAYGEN_BIT_KHR				= 0x00000100,
+	VK_SHADER_STAGE_ANY_HIT_BIT_KHR				= 0x00000200,
+	VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR			= 0x00000400,
+	VK_SHADER_STAGE_MISS_BIT_KHR				= 0x00000800,
+	VK_SHADER_STAGE_INTERSECTION_BIT_KHR		= 0x00001000,
+	VK_SHADER_STAGE_CALLABLE_BIT_KHR			= 0x00002000,
 	VK_SHADER_STAGE_TASK_BIT_NV					= 0x00000040,
 	VK_SHADER_STAGE_MESH_BIT_NV					= 0x00000080,
+	VK_SHADER_STAGE_RAYGEN_BIT_NV				= VK_SHADER_STAGE_RAYGEN_BIT_KHR,
+	VK_SHADER_STAGE_ANY_HIT_BIT_NV				= VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
+	VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV			= VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
+	VK_SHADER_STAGE_MISS_BIT_NV					= VK_SHADER_STAGE_MISS_BIT_KHR,
+	VK_SHADER_STAGE_INTERSECTION_BIT_NV			= VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
+	VK_SHADER_STAGE_CALLABLE_BIT_NV				= VK_SHADER_STAGE_CALLABLE_BIT_KHR,
 	VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM			= 0x7FFFFFFF,
 };
 typedef deUint32 VkShaderStageFlags;
@@ -2349,16 +2532,6 @@
 };
 typedef deUint32 VkCullModeFlags;
 
-enum VkColorComponentFlagBits
-{
-	VK_COLOR_COMPONENT_R_BIT				= 0x00000001,
-	VK_COLOR_COMPONENT_G_BIT				= 0x00000002,
-	VK_COLOR_COMPONENT_B_BIT				= 0x00000004,
-	VK_COLOR_COMPONENT_A_BIT				= 0x00000008,
-	VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM	= 0x7FFFFFFF,
-};
-typedef deUint32 VkColorComponentFlags;
-
 enum VkSamplerCreateFlagBits
 {
 	VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT						= 0x00000001,
@@ -2367,15 +2540,6 @@
 };
 typedef deUint32 VkSamplerCreateFlags;
 
-enum VkDescriptorSetLayoutCreateFlagBits
-{
-	VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT		= 0x00000002,
-	VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR			= 0x00000001,
-	VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT	= VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
-	VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM				= 0x7FFFFFFF,
-};
-typedef deUint32 VkDescriptorSetLayoutCreateFlags;
-
 enum VkDescriptorPoolCreateFlagBits
 {
 	VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT	= 0x00000001,
@@ -2385,19 +2549,14 @@
 };
 typedef deUint32 VkDescriptorPoolCreateFlags;
 
-enum VkFramebufferCreateFlagBits
+enum VkDescriptorSetLayoutCreateFlagBits
 {
-	VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT			= 0x00000001,
-	VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR		= VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
-	VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM	= 0x7FFFFFFF,
+	VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT		= 0x00000002,
+	VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR			= 0x00000001,
+	VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT	= VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
+	VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM				= 0x7FFFFFFF,
 };
-typedef deUint32 VkFramebufferCreateFlags;
-
-enum VkRenderPassCreateFlagBits
-{
-	VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM	= 0x7FFFFFFF,
-};
-typedef deUint32 VkRenderPassCreateFlags;
+typedef deUint32 VkDescriptorSetLayoutCreateFlags;
 
 enum VkAttachmentDescriptionFlagBits
 {
@@ -2406,48 +2565,6 @@
 };
 typedef deUint32 VkAttachmentDescriptionFlags;
 
-enum VkSubpassDescriptionFlagBits
-{
-	VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX		= 0x00000001,
-	VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX	= 0x00000002,
-	VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM				= 0x7FFFFFFF,
-};
-typedef deUint32 VkSubpassDescriptionFlags;
-
-enum VkAccessFlagBits
-{
-	VK_ACCESS_INDIRECT_COMMAND_READ_BIT					= 0x00000001,
-	VK_ACCESS_INDEX_READ_BIT							= 0x00000002,
-	VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT					= 0x00000004,
-	VK_ACCESS_UNIFORM_READ_BIT							= 0x00000008,
-	VK_ACCESS_INPUT_ATTACHMENT_READ_BIT					= 0x00000010,
-	VK_ACCESS_SHADER_READ_BIT							= 0x00000020,
-	VK_ACCESS_SHADER_WRITE_BIT							= 0x00000040,
-	VK_ACCESS_COLOR_ATTACHMENT_READ_BIT					= 0x00000080,
-	VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT				= 0x00000100,
-	VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT			= 0x00000200,
-	VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT		= 0x00000400,
-	VK_ACCESS_TRANSFER_READ_BIT							= 0x00000800,
-	VK_ACCESS_TRANSFER_WRITE_BIT						= 0x00001000,
-	VK_ACCESS_HOST_READ_BIT								= 0x00002000,
-	VK_ACCESS_HOST_WRITE_BIT							= 0x00004000,
-	VK_ACCESS_MEMORY_READ_BIT							= 0x00008000,
-	VK_ACCESS_MEMORY_WRITE_BIT							= 0x00010000,
-	VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT			= 0x02000000,
-	VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT	= 0x04000000,
-	VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT	= 0x08000000,
-	VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT		= 0x00100000,
-	VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX				= 0x00020000,
-	VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX				= 0x00040000,
-	VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT	= 0x00080000,
-	VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV			= 0x00800000,
-	VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV		= 0x00200000,
-	VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV		= 0x00400000,
-	VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT			= 0x01000000,
-	VK_ACCESS_FLAG_BITS_MAX_ENUM						= 0x7FFFFFFF,
-};
-typedef deUint32 VkAccessFlags;
-
 enum VkDependencyFlagBits
 {
 	VK_DEPENDENCY_BY_REGION_BIT			= 0x00000001,
@@ -2459,6 +2576,31 @@
 };
 typedef deUint32 VkDependencyFlags;
 
+enum VkFramebufferCreateFlagBits
+{
+	VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT			= 0x00000001,
+	VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR		= VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
+	VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM	= 0x7FFFFFFF,
+};
+typedef deUint32 VkFramebufferCreateFlags;
+
+enum VkRenderPassCreateFlagBits
+{
+	VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM	= 0x00000002,
+	VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM	= 0x7FFFFFFF,
+};
+typedef deUint32 VkRenderPassCreateFlags;
+
+enum VkSubpassDescriptionFlagBits
+{
+	VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX		= 0x00000001,
+	VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX	= 0x00000002,
+	VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM			= 0x00000004,
+	VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM			= 0x00000008,
+	VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM				= 0x7FFFFFFF,
+};
+typedef deUint32 VkSubpassDescriptionFlags;
+
 enum VkCommandPoolCreateFlagBits
 {
 	VK_COMMAND_POOL_CREATE_TRANSIENT_BIT			= 0x00000001,
@@ -2794,24 +2936,6 @@
 };
 typedef deUint32 VkConditionalRenderingFlagsEXT;
 
-enum VkIndirectCommandsLayoutUsageFlagBitsNVX
-{
-	VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX	= 0x00000001,
-	VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX		= 0x00000002,
-	VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX		= 0x00000004,
-	VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX		= 0x00000008,
-	VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NVX		= 0x7FFFFFFF,
-};
-typedef deUint32 VkIndirectCommandsLayoutUsageFlagsNVX;
-
-enum VkObjectEntryUsageFlagBitsNVX
-{
-	VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX			= 0x00000001,
-	VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX			= 0x00000002,
-	VK_OBJECT_ENTRY_USAGE_FLAG_BITS_MAX_ENUM_NVX	= 0x7FFFFFFF,
-};
-typedef deUint32 VkObjectEntryUsageFlagsNVX;
-
 enum VkSurfaceCounterFlagBitsEXT
 {
 	VK_SURFACE_COUNTER_VBLANK_EXT				= 0x00000001,
@@ -2838,34 +2962,45 @@
 };
 typedef deUint32 VkDebugUtilsMessageTypeFlagsEXT;
 
-enum VkGeometryFlagBitsNV
+enum VkGeometryFlagBitsKHR
 {
-	VK_GEOMETRY_OPAQUE_BIT_NV							= 0x00000001,
-	VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV	= 0x00000002,
-	VK_GEOMETRY_FLAG_BITS_MAX_ENUM_NV					= 0x7FFFFFFF,
+	VK_GEOMETRY_OPAQUE_BIT_KHR							= 0x00000001,
+	VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR	= 0x00000002,
+	VK_GEOMETRY_OPAQUE_BIT_NV							= VK_GEOMETRY_OPAQUE_BIT_KHR,
+	VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV	= VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,
+	VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR					= 0x7FFFFFFF,
 };
-typedef deUint32 VkGeometryFlagsNV;
+typedef deUint32 VkGeometryFlagsKHR;
 
-enum VkGeometryInstanceFlagBitsNV
+enum VkGeometryInstanceFlagBitsKHR
 {
-	VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV			= 0x00000001,
-	VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV	= 0x00000002,
-	VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV					= 0x00000004,
-	VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV					= 0x00000008,
-	VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_NV					= 0x7FFFFFFF,
+	VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR		= 0x00000001,
+	VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR	= 0x00000002,
+	VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR						= 0x00000004,
+	VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR					= 0x00000008,
+	VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV				= VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
+	VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV		= VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
+	VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV						= VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
+	VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV						= VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
+	VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR						= 0x7FFFFFFF,
 };
-typedef deUint32 VkGeometryInstanceFlagsNV;
+typedef deUint32 VkGeometryInstanceFlagsKHR;
 
-enum VkBuildAccelerationStructureFlagBitsNV
+enum VkBuildAccelerationStructureFlagBitsKHR
 {
-	VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV			= 0x00000001,
-	VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV		= 0x00000002,
-	VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV	= 0x00000004,
-	VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV	= 0x00000008,
-	VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV			= 0x00000010,
-	VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_NV		= 0x7FFFFFFF,
+	VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR		= 0x00000001,
+	VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR	= 0x00000002,
+	VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR	= 0x00000004,
+	VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR	= 0x00000008,
+	VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR			= 0x00000010,
+	VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV			= VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
+	VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV		= VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
+	VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV	= VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
+	VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV	= VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
+	VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV			= VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,
+	VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR		= 0x7FFFFFFF,
 };
-typedef deUint32 VkBuildAccelerationStructureFlagsNV;
+typedef deUint32 VkBuildAccelerationStructureFlagsKHR;
 
 enum VkPipelineCompilerControlFlagBitsAMD
 {
@@ -2901,6 +3036,37 @@
 };
 typedef deUint32 VkToolPurposeFlagsEXT;
 
+enum VkIndirectStateFlagBitsNV
+{
+	VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV	= 0x00000001,
+	VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV	= 0x7FFFFFFF,
+};
+typedef deUint32 VkIndirectStateFlagsNV;
+
+enum VkIndirectCommandsLayoutUsageFlagBitsNV
+{
+	VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV	= 0x00000001,
+	VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV		= 0x00000002,
+	VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV	= 0x00000004,
+	VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV			= 0x7FFFFFFF,
+};
+typedef deUint32 VkIndirectCommandsLayoutUsageFlagsNV;
+
+enum VkPrivateDataSlotCreateFlagBitsEXT
+{
+	VK_PRIVATE_DATA_SLOT_CREATE_FLAG_BITS_MAX_ENUM_EXT	= 0x7FFFFFFF,
+};
+typedef deUint32 VkPrivateDataSlotCreateFlagsEXT;
+
+enum VkDeviceDiagnosticsConfigFlagBitsNV
+{
+	VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV		= 0x00000001,
+	VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV		= 0x00000002,
+	VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV	= 0x00000004,
+	VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV					= 0x7FFFFFFF,
+};
+typedef deUint32 VkDeviceDiagnosticsConfigFlagsNV;
+
 typedef deUint32 VkInstanceCreateFlags;
 
 typedef deUint32 VkDeviceCreateFlags;
@@ -2915,8 +3081,6 @@
 
 typedef deUint32 VkBufferViewCreateFlags;
 
-typedef deUint32 VkPipelineCacheCreateFlags;
-
 typedef deUint32 VkPipelineVertexInputStateCreateFlags;
 
 typedef deUint32 VkPipelineInputAssemblyStateCreateFlags;
@@ -2993,20 +3157,41 @@
 
 typedef deUint32 VkXlibSurfaceCreateFlagsKHR;
 
+typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR;
 
+typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR;
 
+typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR;
 
+typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR;
 
+typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR;
 
+typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR;
 
+typedef VkFenceImportFlags VkFenceImportFlagsKHR;
 
+typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR;
 
+typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR;
 
+typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR;
 
+typedef VkResolveModeFlags VkResolveModeFlagsKHR;
 
+typedef VkDescriptorBindingFlags VkDescriptorBindingFlagsEXT;
 
+typedef VkSemaphoreWaitFlags VkSemaphoreWaitFlagsKHR;
 
+typedef VkGeometryFlagsKHR VkGeometryFlagsNV;
 
+typedef VkGeometryInstanceFlagsKHR VkGeometryInstanceFlagsNV;
+
+typedef VkBuildAccelerationStructureFlagsKHR VkBuildAccelerationStructureFlagsNV;
+
+typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR;
+
+typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR;
 
 VK_DEFINE_PLATFORM_TYPE(XlibDisplayPtr,				void*);
 VK_DEFINE_PLATFORM_TYPE(XlibWindow,					deUintptr);
@@ -3094,6 +3279,7 @@
 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1
 #define VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 1
 #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1
+#define VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION 1
 #define VK_EXT_DEBUG_REPORT_SPEC_VERSION 9
 #define VK_NV_GLSL_SHADER_SPEC_VERSION 1
 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
@@ -3105,7 +3291,7 @@
 #define VK_AMD_GCN_SHADER_SPEC_VERSION 1
 #define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
 #define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1
-#define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 1
+#define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 2
 #define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 2
 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
 #define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 2
@@ -3123,7 +3309,6 @@
 #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION 1
 #define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
 #define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 2
-#define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
 #define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
 #define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
 #define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
@@ -3142,7 +3327,7 @@
 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
 #define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
 #define VK_QUEUE_FAMILY_FOREIGN_EXT (~0U-2)
-#define VK_EXT_DEBUG_UTILS_SPEC_VERSION 1
+#define VK_EXT_DEBUG_UTILS_SPEC_VERSION 2
 #define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 2
 #define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 2
 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
@@ -3162,9 +3347,11 @@
 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
 #define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
 #define VK_NV_RAY_TRACING_SPEC_VERSION 3
-#define VK_SHADER_UNUSED_NV (~0U)
+#define VK_SHADER_UNUSED_KHR (~0U)
+#define VK_SHADER_UNUSED_NV VK_SHADER_UNUSED_KHR
 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2
 #define VK_EXT_FILTER_CUBIC_SPEC_VERSION 3
+#define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION 4
 #define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2
 #define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
 #define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
@@ -3182,7 +3369,7 @@
 #define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 1
 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
 #define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION 1
-#define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 1
+#define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 2
 #define VK_EXT_PCI_BUS_INFO_SPEC_VERSION 2
 #define VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION 1
 #define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 1
@@ -3190,7 +3377,7 @@
 #define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION 1
 #define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1
 #define VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION 2
-#define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2"
+#define VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION 1
 #define VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION 1
 #define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1
 #define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1
@@ -3198,7 +3385,7 @@
 #define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2
 #define VK_EXT_TOOLING_INFO_SPEC_VERSION 1
 #define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1
-#define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 2
+#define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 3
 #define VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION 1
 #define VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION 1
 #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1
@@ -3207,11 +3394,24 @@
 #define VK_EXT_LINE_RASTERIZATION_SPEC_VERSION 1
 #define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1
 #define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1
+#define VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION 1
 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1
+#define VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1
+#define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 1
+#define VK_EXT_ROBUSTNESS_2_SPEC_VERSION 1
+#define VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION 12
 #define VK_GOOGLE_USER_TYPE_SPEC_VERSION 1
+#define VK_EXT_PRIVATE_DATA_SPEC_VERSION 1
+#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3
+#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 1
+#define VK_QCOM_render_pass_store_ops_EXTENSION_NAME "VK_QCOM_render_pass_store_ops"
+#define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1
 #define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6
 #define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 3
+#define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 3
+#define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1
+#define VK_KHR_RAY_TRACING_SPEC_VERSION 8
 #define VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION 1
 #define VK_GGP_STREAM_DESCRIPTOR_SURFACE_SPEC_VERSION 1
 #define VK_GGP_FRAME_TOKEN_SPEC_VERSION 1
diff --git a/external/vulkancts/framework/vulkan/vkBuilderUtil.cpp b/external/vulkancts/framework/vulkan/vkBuilderUtil.cpp
index bbeee7e..4032289 100644
--- a/external/vulkancts/framework/vulkan/vkBuilderUtil.cpp
+++ b/external/vulkancts/framework/vulkan/vkBuilderUtil.cpp
@@ -200,13 +200,14 @@
 															   VkDescriptorType					descriptorType,
 															   const VkDescriptorImageInfo*		pImageInfo,
 															   const VkDescriptorBufferInfo*	pBufferInfo,
-															   const VkBufferView*				pTexelBufferView)
+															   const VkBufferView*				pTexelBufferView,
+															   const void*						pNext)
 {
 	// pImageInfo, pBufferInfo and pTexelBufferView will be updated when calling update()
 	const VkWriteDescriptorSet writeParams =
 	{
 		VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,
-		DE_NULL,
+		pNext,
 		destSet,			//!< destSet
 		destBinding,		//!< destBinding
 		destArrayElement,	//!< destArrayElement
diff --git a/external/vulkancts/framework/vulkan/vkBuilderUtil.hpp b/external/vulkancts/framework/vulkan/vkBuilderUtil.hpp
index 3e13b71..24cdbc0 100644
--- a/external/vulkancts/framework/vulkan/vkBuilderUtil.hpp
+++ b/external/vulkancts/framework/vulkan/vkBuilderUtil.hpp
@@ -163,7 +163,8 @@
 																	 VkDescriptorType				descriptorType,
 																	 const VkDescriptorImageInfo*	pImageInfo,
 																	 const VkDescriptorBufferInfo*	pBufferInfo,
-																	 const VkBufferView*			pTexelBufferView);
+																	 const VkBufferView*			pTexelBufferView,
+																	 const void*					pNext = DE_NULL);
 
 	DescriptorSetUpdateBuilder&			copy						(VkDescriptorSet	srcSet,
 																	 deUint32			srcBinding,
@@ -203,6 +204,14 @@
 		return write(destSet, destLocation.m_binding, destLocation.m_arrayElement, 1u, descriptorType, DE_NULL, DE_NULL, pTexelBufferView);
 	}
 
+	inline DescriptorSetUpdateBuilder&	writeSingle					(VkDescriptorSet										destSet,
+																	 const Location&										destLocation,
+																	 VkDescriptorType										descriptorType,
+																	 const VkWriteDescriptorSetAccelerationStructureKHR*	pAccelerationStructure)
+	{
+		return write(destSet, destLocation.m_binding, destLocation.m_arrayElement, 1u, descriptorType, DE_NULL, DE_NULL, DE_NULL, pAccelerationStructure);
+	}
+
 	inline DescriptorSetUpdateBuilder&	writeArray					(VkDescriptorSet				destSet,
 																	 const Location&				destLocation,
 																	 VkDescriptorType				descriptorType,
diff --git a/external/vulkancts/framework/vulkan/vkConcreteDeviceInterface.inl b/external/vulkancts/framework/vulkan/vkConcreteDeviceInterface.inl
index c46db92..f2b5a69 100644
--- a/external/vulkancts/framework/vulkan/vkConcreteDeviceInterface.inl
+++ b/external/vulkancts/framework/vulkan/vkConcreteDeviceInterface.inl
@@ -186,19 +186,12 @@
 virtual void				cmdEndQueryIndexedEXT							(VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, deUint32 index) const;
 virtual void				cmdDrawIndirectByteCountEXT						(VkCommandBuffer commandBuffer, deUint32 instanceCount, deUint32 firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, deUint32 counterOffset, deUint32 vertexStride) const;
 virtual uint32_t			getImageViewHandleNVX							(VkDevice device, const VkImageViewHandleInfoNVX* pInfo) const;
+virtual VkResult			getImageViewAddressNVX							(VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties) const;
 virtual void				cmdDrawIndirectCountAMD							(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const;
 virtual void				cmdDrawIndexedIndirectCountAMD					(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const;
 virtual VkResult			getShaderInfoAMD								(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, deUintptr* pInfoSize, void* pInfo) const;
 virtual void				cmdBeginConditionalRenderingEXT					(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) const;
 virtual void				cmdEndConditionalRenderingEXT					(VkCommandBuffer commandBuffer) const;
-virtual void				cmdProcessCommandsNVX							(VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) const;
-virtual void				cmdReserveSpaceForCommandsNVX					(VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) const;
-virtual VkResult			createIndirectCommandsLayoutNVX					(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) const;
-virtual void				destroyIndirectCommandsLayoutNVX				(VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult			createObjectTableNVX							(VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable) const;
-virtual void				destroyObjectTableNVX							(VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator) const;
-virtual VkResult			registerObjectsNVX								(VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectTableEntryNVX* const* ppObjectTableEntries, const deUint32* pObjectIndices) const;
-virtual VkResult			unregisterObjectsNVX							(VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const deUint32* pObjectIndices) const;
 virtual void				cmdSetViewportWScalingNV						(VkCommandBuffer commandBuffer, deUint32 firstViewport, deUint32 viewportCount, const VkViewportWScalingNV* pViewportWScalings) const;
 virtual VkResult			displayPowerControlEXT							(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo) const;
 virtual VkResult			registerDeviceEventEXT							(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const;
@@ -226,16 +219,20 @@
 virtual void				cmdSetViewportShadingRatePaletteNV				(VkCommandBuffer commandBuffer, deUint32 firstViewport, deUint32 viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes) const;
 virtual void				cmdSetCoarseSampleOrderNV						(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, deUint32 customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders) const;
 virtual VkResult			createAccelerationStructureNV					(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure) const;
+virtual void				destroyAccelerationStructureKHR					(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator) const;
 virtual void				destroyAccelerationStructureNV					(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator) const;
 virtual void				getAccelerationStructureMemoryRequirementsNV	(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements) const;
-virtual VkResult			bindAccelerationStructureMemoryNV				(VkDevice device, deUint32 bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos) const;
-virtual void				cmdBuildAccelerationStructureNV					(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset) const;
-virtual void				cmdCopyAccelerationStructureNV					(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeNV mode) const;
+virtual VkResult			bindAccelerationStructureMemoryKHR				(VkDevice device, deUint32 bindInfoCount, const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos) const;
+virtual VkResult			bindAccelerationStructureMemoryNV				(VkDevice device, deUint32 bindInfoCount, const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos) const;
+virtual void				cmdBuildAccelerationStructureNV					(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureKHR dst, VkAccelerationStructureKHR src, VkBuffer scratch, VkDeviceSize scratchOffset) const;
+virtual void				cmdCopyAccelerationStructureNV					(VkCommandBuffer commandBuffer, VkAccelerationStructureKHR dst, VkAccelerationStructureKHR src, VkCopyAccelerationStructureModeKHR mode) const;
 virtual void				cmdTraceRaysNV									(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, deUint32 width, deUint32 height, deUint32 depth) const;
 virtual VkResult			createRayTracingPipelinesNV						(VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const;
+virtual VkResult			getRayTracingShaderGroupHandlesKHR				(VkDevice device, VkPipeline pipeline, deUint32 firstGroup, deUint32 groupCount, deUintptr dataSize, void* pData) const;
 virtual VkResult			getRayTracingShaderGroupHandlesNV				(VkDevice device, VkPipeline pipeline, deUint32 firstGroup, deUint32 groupCount, deUintptr dataSize, void* pData) const;
-virtual VkResult			getAccelerationStructureHandleNV				(VkDevice device, VkAccelerationStructureNV accelerationStructure, deUintptr dataSize, void* pData) const;
-virtual void				cmdWriteAccelerationStructuresPropertiesNV		(VkCommandBuffer commandBuffer, deUint32 accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, deUint32 firstQuery) const;
+virtual VkResult			getAccelerationStructureHandleNV				(VkDevice device, VkAccelerationStructureKHR accelerationStructure, deUintptr dataSize, void* pData) const;
+virtual void				cmdWriteAccelerationStructuresPropertiesKHR		(VkCommandBuffer commandBuffer, deUint32 accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, deUint32 firstQuery) const;
+virtual void				cmdWriteAccelerationStructuresPropertiesNV		(VkCommandBuffer commandBuffer, deUint32 accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, deUint32 firstQuery) const;
 virtual VkResult			compileDeferredNV								(VkDevice device, VkPipeline pipeline, deUint32 shader) const;
 virtual VkResult			getMemoryHostPointerPropertiesEXT				(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) const;
 virtual void				cmdWriteBufferMarkerAMD							(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, deUint32 marker) const;
@@ -258,8 +255,53 @@
 virtual void				setLocalDimmingAMD								(VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable) const;
 virtual VkDeviceAddress		getBufferDeviceAddressEXT						(VkDevice device, const VkBufferDeviceAddressInfo* pInfo) const;
 virtual void				cmdSetLineStippleEXT							(VkCommandBuffer commandBuffer, deUint32 lineStippleFactor, deUint16 lineStipplePattern) const;
+virtual void				cmdSetCullModeEXT								(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode) const;
+virtual void				cmdSetFrontFaceEXT								(VkCommandBuffer commandBuffer, VkFrontFace frontFace) const;
+virtual void				cmdSetPrimitiveTopologyEXT						(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology) const;
+virtual void				cmdSetViewportWithCountEXT						(VkCommandBuffer commandBuffer, deUint32 viewportCount, const VkViewport* pViewports) const;
+virtual void				cmdSetScissorWithCountEXT						(VkCommandBuffer commandBuffer, deUint32 scissorCount, const VkRect2D* pScissors) const;
+virtual void				cmdBindVertexBuffers2EXT						(VkCommandBuffer commandBuffer, deUint32 firstBinding, deUint32 bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides) const;
+virtual void				cmdSetDepthTestEnableEXT						(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable) const;
+virtual void				cmdSetDepthWriteEnableEXT						(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable) const;
+virtual void				cmdSetDepthCompareOpEXT							(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp) const;
+virtual void				cmdSetDepthBoundsTestEnableEXT					(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable) const;
+virtual void				cmdSetStencilTestEnableEXT						(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable) const;
+virtual void				cmdSetStencilOpEXT								(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp) const;
+virtual void				getGeneratedCommandsMemoryRequirementsNV		(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements) const;
+virtual void				cmdPreprocessGeneratedCommandsNV				(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) const;
+virtual void				cmdExecuteGeneratedCommandsNV					(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) const;
+virtual void				cmdBindPipelineShaderGroupNV					(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, deUint32 groupIndex) const;
+virtual VkResult			createIndirectCommandsLayoutNV					(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout) const;
+virtual void				destroyIndirectCommandsLayoutNV					(VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult			createPrivateDataSlotEXT						(VkDevice device, const VkPrivateDataSlotCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlotEXT* pPrivateDataSlot) const;
+virtual void				destroyPrivateDataSlotEXT						(VkDevice device, VkPrivateDataSlotEXT privateDataSlot, const VkAllocationCallbacks* pAllocator) const;
+virtual VkResult			setPrivateDataEXT								(VkDevice device, VkObjectType objectType, deUint64 objectHandle, VkPrivateDataSlotEXT privateDataSlot, deUint64 data) const;
+virtual void				getPrivateDataEXT								(VkDevice device, VkObjectType objectType, deUint64 objectHandle, VkPrivateDataSlotEXT privateDataSlot, deUint64* pData) const;
 virtual VkResult			getAndroidHardwareBufferPropertiesANDROID		(VkDevice device, const struct pt::AndroidHardwareBufferPtr buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties) const;
 virtual VkResult			getMemoryAndroidHardwareBufferANDROID			(VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct pt::AndroidHardwareBufferPtr* pBuffer) const;
+virtual VkResult			createDeferredOperationKHR						(VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation) const;
+virtual void				destroyDeferredOperationKHR						(VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator) const;
+virtual uint32_t			getDeferredOperationMaxConcurrencyKHR			(VkDevice device, VkDeferredOperationKHR operation) const;
+virtual VkResult			getDeferredOperationResultKHR					(VkDevice device, VkDeferredOperationKHR operation) const;
+virtual VkResult			deferredOperationJoinKHR						(VkDevice device, VkDeferredOperationKHR operation) const;
+virtual VkResult			createAccelerationStructureKHR					(VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure) const;
+virtual void				getAccelerationStructureMemoryRequirementsKHR	(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoKHR* pInfo, VkMemoryRequirements2* pMemoryRequirements) const;
+virtual void				cmdBuildAccelerationStructureKHR				(VkCommandBuffer commandBuffer, deUint32 infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildOffsetInfoKHR* const* ppOffsetInfos) const;
+virtual void				cmdBuildAccelerationStructureIndirectKHR		(VkCommandBuffer commandBuffer, const VkAccelerationStructureBuildGeometryInfoKHR* pInfo, VkBuffer indirectBuffer, VkDeviceSize indirectOffset, deUint32 indirectStride) const;
+virtual VkResult			buildAccelerationStructureKHR					(VkDevice device, deUint32 infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildOffsetInfoKHR* const* ppOffsetInfos) const;
+virtual VkResult			copyAccelerationStructureKHR					(VkDevice device, const VkCopyAccelerationStructureInfoKHR* pInfo) const;
+virtual VkResult			copyAccelerationStructureToMemoryKHR			(VkDevice device, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) const;
+virtual VkResult			copyMemoryToAccelerationStructureKHR			(VkDevice device, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) const;
+virtual VkResult			writeAccelerationStructuresPropertiesKHR		(VkDevice device, deUint32 accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, deUintptr dataSize, void* pData, deUintptr stride) const;
+virtual void				cmdCopyAccelerationStructureKHR					(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo) const;
+virtual void				cmdCopyAccelerationStructureToMemoryKHR			(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) const;
+virtual void				cmdCopyMemoryToAccelerationStructureKHR			(VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) const;
+virtual void				cmdTraceRaysKHR									(VkCommandBuffer commandBuffer, const VkStridedBufferRegionKHR* pRaygenShaderBindingTable, const VkStridedBufferRegionKHR* pMissShaderBindingTable, const VkStridedBufferRegionKHR* pHitShaderBindingTable, const VkStridedBufferRegionKHR* pCallableShaderBindingTable, deUint32 width, deUint32 height, deUint32 depth) const;
+virtual VkResult			createRayTracingPipelinesKHR					(VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const;
+virtual VkDeviceAddress		getAccelerationStructureDeviceAddressKHR		(VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo) const;
+virtual VkResult			getRayTracingCaptureReplayShaderGroupHandlesKHR	(VkDevice device, VkPipeline pipeline, deUint32 firstGroup, deUint32 groupCount, deUintptr dataSize, void* pData) const;
+virtual void				cmdTraceRaysIndirectKHR							(VkCommandBuffer commandBuffer, const VkStridedBufferRegionKHR* pRaygenShaderBindingTable, const VkStridedBufferRegionKHR* pMissShaderBindingTable, const VkStridedBufferRegionKHR* pHitShaderBindingTable, const VkStridedBufferRegionKHR* pCallableShaderBindingTable, VkBuffer buffer, VkDeviceSize offset) const;
+virtual VkResult			getDeviceAccelerationStructureCompatibilityKHR	(VkDevice device, const VkAccelerationStructureVersionKHR* version) const;
 virtual VkResult			getMemoryWin32HandleKHR							(VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const;
 virtual VkResult			getMemoryWin32HandlePropertiesKHR				(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, pt::Win32Handle handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) const;
 virtual VkResult			importSemaphoreWin32HandleKHR					(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) const;
diff --git a/external/vulkancts/framework/vulkan/vkConcreteInstanceInterface.inl b/external/vulkancts/framework/vulkan/vkConcreteInstanceInterface.inl
index 0316326..ea5200c 100644
--- a/external/vulkancts/framework/vulkan/vkConcreteInstanceInterface.inl
+++ b/external/vulkancts/framework/vulkan/vkConcreteInstanceInterface.inl
@@ -49,7 +49,6 @@
 virtual void		destroyDebugReportCallbackEXT									(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator) const;
 virtual void		debugReportMessageEXT											(VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, deUint64 object, deUintptr location, deInt32 messageCode, const char* pLayerPrefix, const char* pMessage) const;
 virtual VkResult	getPhysicalDeviceExternalImageFormatPropertiesNV				(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) const;
-virtual void		getPhysicalDeviceGeneratedCommandsPropertiesNVX					(VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits) const;
 virtual VkResult	releaseDisplayEXT												(VkPhysicalDevice physicalDevice, VkDisplayKHR display) const;
 virtual VkResult	getPhysicalDeviceSurfaceCapabilities2EXT						(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities) const;
 virtual VkResult	createDebugUtilsMessengerEXT									(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger) const;
diff --git a/external/vulkancts/framework/vulkan/vkDebugReportUtil.cpp b/external/vulkancts/framework/vulkan/vkDebugReportUtil.cpp
index 16f88e2..fbc78e2 100644
--- a/external/vulkancts/framework/vulkan/vkDebugReportUtil.cpp
+++ b/external/vulkancts/framework/vulkan/vkDebugReportUtil.cpp
@@ -25,6 +25,7 @@
 #include "vkRefUtil.hpp"
 #include "vkQueryUtil.hpp"
 #include "deArrayUtil.hpp"
+#include "tcuDefs.hpp"
 
 namespace vk
 {
@@ -119,9 +120,14 @@
 													const char*					pMessage,
 													void*						pUserData)
 {
-	DebugReportRecorder::MessageList* const	messageList	= reinterpret_cast<DebugReportRecorder::MessageList*>(pUserData);
+	auto						recorder	= reinterpret_cast<DebugReportRecorder*>(pUserData);
+	auto&						messageList	= recorder->getMessages();
+	const DebugReportMessage	message		(flags, objectType, object, location, messageCode, pLayerPrefix, pMessage);
 
-	messageList->append(DebugReportMessage(flags, objectType, object, location, messageCode, pLayerPrefix, pMessage));
+	messageList.append(message);
+
+	if (recorder->errorPrinting() && message.isError())
+		tcu::printError("%s\n", pMessage);
 
 	// Return false to indicate that the call should not return error and should
 	// continue execution normally.
@@ -130,7 +136,7 @@
 
 Move<VkDebugReportCallbackEXT> createCallback (const InstanceInterface&				vki,
 											   VkInstance							instance,
-											   DebugReportRecorder::MessageList*	messageList)
+											   DebugReportRecorder*					recorder)
 {
 	const VkDebugReportFlagsEXT					allFlags	= VK_DEBUG_REPORT_INFORMATION_BIT_EXT
 															| VK_DEBUG_REPORT_WARNING_BIT_EXT
@@ -144,7 +150,7 @@
 		DE_NULL,
 		allFlags,
 		debugReportCallback,
-		messageList
+		recorder,
 	};
 
 	return createDebugReportCallbackEXT(vki, instance, &createInfo);
@@ -152,9 +158,10 @@
 
 } // anonymous
 
-DebugReportRecorder::DebugReportRecorder (const InstanceInterface& vki, VkInstance instance)
-	: m_messages	(1024)
-	, m_callback	(createCallback(vki, instance, &m_messages))
+DebugReportRecorder::DebugReportRecorder (const InstanceInterface& vki, VkInstance instance, bool printValidationErrors)
+	: m_messages		(1024)
+	, m_callback		(createCallback(vki, instance, this))
+	, m_print_errors	(printValidationErrors)
 {
 }
 
diff --git a/external/vulkancts/framework/vulkan/vkDebugReportUtil.hpp b/external/vulkancts/framework/vulkan/vkDebugReportUtil.hpp
index 6c4a8dd..52c3315 100644
--- a/external/vulkancts/framework/vulkan/vkDebugReportUtil.hpp
+++ b/external/vulkancts/framework/vulkan/vkDebugReportUtil.hpp
@@ -65,6 +65,20 @@
 		, layerPrefix	(layerPrefix_)
 		, message		(message_)
 	{}
+
+	bool isError		() const
+	{
+		static const vk::VkDebugReportFlagsEXT errorFlags = vk::VK_DEBUG_REPORT_ERROR_BIT_EXT;
+		return ((flags & errorFlags) != 0u);
+	}
+
+	bool shouldBeLogged	() const
+	{
+		// \note We are not logging INFORMATION and DEBUG messages
+		static const vk::VkDebugReportFlagsEXT otherFlags	= vk::VK_DEBUG_REPORT_WARNING_BIT_EXT
+															| vk::VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT;
+		return (isError() || ((flags & otherFlags) != 0u));
+	}
 };
 
 std::ostream&	operator<<	(std::ostream& str, const DebugReportMessage& message);
@@ -72,17 +86,19 @@
 class DebugReportRecorder
 {
 public:
-	typedef de::AppendList<DebugReportMessage>	MessageList;
+	using MessageList = de::AppendList<DebugReportMessage>;
 
-											DebugReportRecorder		(const InstanceInterface& vki, VkInstance instance);
+											DebugReportRecorder		(const InstanceInterface& vki, VkInstance instance, bool printValidationErrors);
 											~DebugReportRecorder	(void);
 
-	const MessageList&						getMessages				(void) const { return m_messages; }
+	MessageList&							getMessages				(void) { return m_messages; }
 	void									clearMessages			(void) { m_messages.clear(); }
+	bool									errorPrinting			(void) const { return m_print_errors; }
 
 private:
 	MessageList								m_messages;
 	const Unique<VkDebugReportCallbackEXT>	m_callback;
+	const bool								m_print_errors;
 };
 
 bool	isDebugReportSupported		(const PlatformInterface& vkp);
diff --git a/external/vulkancts/framework/vulkan/vkDefs.hpp b/external/vulkancts/framework/vulkan/vkDefs.hpp
index 8335792..d67980e 100644
--- a/external/vulkancts/framework/vulkan/vkDefs.hpp
+++ b/external/vulkancts/framework/vulkan/vkDefs.hpp
@@ -99,7 +99,9 @@
 
 #include "vkBasicTypes.inl"
 
-#define VK_CORE_FORMAT_LAST		((vk::VkFormat)(vk::VK_FORMAT_ASTC_12x12_SRGB_BLOCK+1))
+#define VK_CORE_FORMAT_LAST			((vk::VkFormat)(vk::VK_FORMAT_ASTC_12x12_SRGB_BLOCK+1))
+#define VK_CORE_IMAGE_TILING_LAST	((vk::VkImageTiling)(vk::VK_IMAGE_TILING_LINEAR+1))
+#define VK_CORE_IMAGE_TYPE_LAST		((vk::VkImageType)(vk::VK_IMAGE_TYPE_3D+1))
 
 enum SpirvVersion
 {
diff --git a/external/vulkancts/framework/vulkan/vkDeviceDriverImpl.inl b/external/vulkancts/framework/vulkan/vkDeviceDriverImpl.inl
index 298c2bf..3f99571 100644
--- a/external/vulkancts/framework/vulkan/vkDeviceDriverImpl.inl
+++ b/external/vulkancts/framework/vulkan/vkDeviceDriverImpl.inl
@@ -927,6 +927,11 @@
 	return m_vk.getImageViewHandleNVX(device, pInfo);
 }
 
+VkResult DeviceDriver::getImageViewAddressNVX (VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties) const
+{
+	return m_vk.getImageViewAddressNVX(device, imageView, pProperties);
+}
+
 void DeviceDriver::cmdDrawIndirectCountAMD (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const
 {
 	m_vk.cmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
@@ -952,46 +957,6 @@
 	m_vk.cmdEndConditionalRenderingEXT(commandBuffer);
 }
 
-void DeviceDriver::cmdProcessCommandsNVX (VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) const
-{
-	m_vk.cmdProcessCommandsNVX(commandBuffer, pProcessCommandsInfo);
-}
-
-void DeviceDriver::cmdReserveSpaceForCommandsNVX (VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) const
-{
-	m_vk.cmdReserveSpaceForCommandsNVX(commandBuffer, pReserveSpaceInfo);
-}
-
-VkResult DeviceDriver::createIndirectCommandsLayoutNVX (VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) const
-{
-	return m_vk.createIndirectCommandsLayoutNVX(device, pCreateInfo, pAllocator, pIndirectCommandsLayout);
-}
-
-void DeviceDriver::destroyIndirectCommandsLayoutNVX (VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator) const
-{
-	m_vk.destroyIndirectCommandsLayoutNVX(device, indirectCommandsLayout, pAllocator);
-}
-
-VkResult DeviceDriver::createObjectTableNVX (VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable) const
-{
-	return m_vk.createObjectTableNVX(device, pCreateInfo, pAllocator, pObjectTable);
-}
-
-void DeviceDriver::destroyObjectTableNVX (VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator) const
-{
-	m_vk.destroyObjectTableNVX(device, objectTable, pAllocator);
-}
-
-VkResult DeviceDriver::registerObjectsNVX (VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectTableEntryNVX* const* ppObjectTableEntries, const deUint32* pObjectIndices) const
-{
-	return m_vk.registerObjectsNVX(device, objectTable, objectCount, ppObjectTableEntries, pObjectIndices);
-}
-
-VkResult DeviceDriver::unregisterObjectsNVX (VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const deUint32* pObjectIndices) const
-{
-	return m_vk.unregisterObjectsNVX(device, objectTable, objectCount, pObjectEntryTypes, pObjectIndices);
-}
-
 void DeviceDriver::cmdSetViewportWScalingNV (VkCommandBuffer commandBuffer, deUint32 firstViewport, deUint32 viewportCount, const VkViewportWScalingNV* pViewportWScalings) const
 {
 	m_vk.cmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings);
@@ -1127,6 +1092,11 @@
 	return m_vk.createAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure);
 }
 
+void DeviceDriver::destroyAccelerationStructureKHR (VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator) const
+{
+	m_vk.destroyAccelerationStructureKHR(device, accelerationStructure, pAllocator);
+}
+
 void DeviceDriver::destroyAccelerationStructureNV (VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator) const
 {
 	m_vk.destroyAccelerationStructureNV(device, accelerationStructure, pAllocator);
@@ -1137,17 +1107,22 @@
 	m_vk.getAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements);
 }
 
-VkResult DeviceDriver::bindAccelerationStructureMemoryNV (VkDevice device, deUint32 bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos) const
+VkResult DeviceDriver::bindAccelerationStructureMemoryKHR (VkDevice device, deUint32 bindInfoCount, const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos) const
+{
+	return m_vk.bindAccelerationStructureMemoryKHR(device, bindInfoCount, pBindInfos);
+}
+
+VkResult DeviceDriver::bindAccelerationStructureMemoryNV (VkDevice device, deUint32 bindInfoCount, const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos) const
 {
 	return m_vk.bindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos);
 }
 
-void DeviceDriver::cmdBuildAccelerationStructureNV (VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset) const
+void DeviceDriver::cmdBuildAccelerationStructureNV (VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureKHR dst, VkAccelerationStructureKHR src, VkBuffer scratch, VkDeviceSize scratchOffset) const
 {
 	m_vk.cmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset);
 }
 
-void DeviceDriver::cmdCopyAccelerationStructureNV (VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeNV mode) const
+void DeviceDriver::cmdCopyAccelerationStructureNV (VkCommandBuffer commandBuffer, VkAccelerationStructureKHR dst, VkAccelerationStructureKHR src, VkCopyAccelerationStructureModeKHR mode) const
 {
 	m_vk.cmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode);
 }
@@ -1162,17 +1137,27 @@
 	return m_vk.createRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
 }
 
+VkResult DeviceDriver::getRayTracingShaderGroupHandlesKHR (VkDevice device, VkPipeline pipeline, deUint32 firstGroup, deUint32 groupCount, deUintptr dataSize, void* pData) const
+{
+	return m_vk.getRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData);
+}
+
 VkResult DeviceDriver::getRayTracingShaderGroupHandlesNV (VkDevice device, VkPipeline pipeline, deUint32 firstGroup, deUint32 groupCount, deUintptr dataSize, void* pData) const
 {
 	return m_vk.getRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData);
 }
 
-VkResult DeviceDriver::getAccelerationStructureHandleNV (VkDevice device, VkAccelerationStructureNV accelerationStructure, deUintptr dataSize, void* pData) const
+VkResult DeviceDriver::getAccelerationStructureHandleNV (VkDevice device, VkAccelerationStructureKHR accelerationStructure, deUintptr dataSize, void* pData) const
 {
 	return m_vk.getAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData);
 }
 
-void DeviceDriver::cmdWriteAccelerationStructuresPropertiesNV (VkCommandBuffer commandBuffer, deUint32 accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, deUint32 firstQuery) const
+void DeviceDriver::cmdWriteAccelerationStructuresPropertiesKHR (VkCommandBuffer commandBuffer, deUint32 accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, deUint32 firstQuery) const
+{
+	m_vk.cmdWriteAccelerationStructuresPropertiesKHR(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery);
+}
+
+void DeviceDriver::cmdWriteAccelerationStructuresPropertiesNV (VkCommandBuffer commandBuffer, deUint32 accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, deUint32 firstQuery) const
 {
 	m_vk.cmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery);
 }
@@ -1287,6 +1272,116 @@
 	m_vk.cmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern);
 }
 
+void DeviceDriver::cmdSetCullModeEXT (VkCommandBuffer commandBuffer, VkCullModeFlags cullMode) const
+{
+	m_vk.cmdSetCullModeEXT(commandBuffer, cullMode);
+}
+
+void DeviceDriver::cmdSetFrontFaceEXT (VkCommandBuffer commandBuffer, VkFrontFace frontFace) const
+{
+	m_vk.cmdSetFrontFaceEXT(commandBuffer, frontFace);
+}
+
+void DeviceDriver::cmdSetPrimitiveTopologyEXT (VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology) const
+{
+	m_vk.cmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology);
+}
+
+void DeviceDriver::cmdSetViewportWithCountEXT (VkCommandBuffer commandBuffer, deUint32 viewportCount, const VkViewport* pViewports) const
+{
+	m_vk.cmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports);
+}
+
+void DeviceDriver::cmdSetScissorWithCountEXT (VkCommandBuffer commandBuffer, deUint32 scissorCount, const VkRect2D* pScissors) const
+{
+	m_vk.cmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors);
+}
+
+void DeviceDriver::cmdBindVertexBuffers2EXT (VkCommandBuffer commandBuffer, deUint32 firstBinding, deUint32 bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides) const
+{
+	m_vk.cmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides);
+}
+
+void DeviceDriver::cmdSetDepthTestEnableEXT (VkCommandBuffer commandBuffer, VkBool32 depthTestEnable) const
+{
+	m_vk.cmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable);
+}
+
+void DeviceDriver::cmdSetDepthWriteEnableEXT (VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable) const
+{
+	m_vk.cmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable);
+}
+
+void DeviceDriver::cmdSetDepthCompareOpEXT (VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp) const
+{
+	m_vk.cmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp);
+}
+
+void DeviceDriver::cmdSetDepthBoundsTestEnableEXT (VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable) const
+{
+	m_vk.cmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable);
+}
+
+void DeviceDriver::cmdSetStencilTestEnableEXT (VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable) const
+{
+	m_vk.cmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable);
+}
+
+void DeviceDriver::cmdSetStencilOpEXT (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp) const
+{
+	m_vk.cmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp);
+}
+
+void DeviceDriver::getGeneratedCommandsMemoryRequirementsNV (VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements) const
+{
+	m_vk.getGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements);
+}
+
+void DeviceDriver::cmdPreprocessGeneratedCommandsNV (VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) const
+{
+	m_vk.cmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo);
+}
+
+void DeviceDriver::cmdExecuteGeneratedCommandsNV (VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) const
+{
+	m_vk.cmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo);
+}
+
+void DeviceDriver::cmdBindPipelineShaderGroupNV (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, deUint32 groupIndex) const
+{
+	m_vk.cmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex);
+}
+
+VkResult DeviceDriver::createIndirectCommandsLayoutNV (VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout) const
+{
+	return m_vk.createIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout);
+}
+
+void DeviceDriver::destroyIndirectCommandsLayoutNV (VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator) const
+{
+	m_vk.destroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator);
+}
+
+VkResult DeviceDriver::createPrivateDataSlotEXT (VkDevice device, const VkPrivateDataSlotCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlotEXT* pPrivateDataSlot) const
+{
+	return m_vk.createPrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot);
+}
+
+void DeviceDriver::destroyPrivateDataSlotEXT (VkDevice device, VkPrivateDataSlotEXT privateDataSlot, const VkAllocationCallbacks* pAllocator) const
+{
+	m_vk.destroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator);
+}
+
+VkResult DeviceDriver::setPrivateDataEXT (VkDevice device, VkObjectType objectType, deUint64 objectHandle, VkPrivateDataSlotEXT privateDataSlot, deUint64 data) const
+{
+	return m_vk.setPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data);
+}
+
+void DeviceDriver::getPrivateDataEXT (VkDevice device, VkObjectType objectType, deUint64 objectHandle, VkPrivateDataSlotEXT privateDataSlot, deUint64* pData) const
+{
+	m_vk.getPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData);
+}
+
 VkResult DeviceDriver::getAndroidHardwareBufferPropertiesANDROID (VkDevice device, const struct pt::AndroidHardwareBufferPtr buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties) const
 {
 	return m_vk.getAndroidHardwareBufferPropertiesANDROID(device, buffer, pProperties);
@@ -1297,6 +1392,121 @@
 	return m_vk.getMemoryAndroidHardwareBufferANDROID(device, pInfo, pBuffer);
 }
 
+VkResult DeviceDriver::createDeferredOperationKHR (VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation) const
+{
+	return m_vk.createDeferredOperationKHR(device, pAllocator, pDeferredOperation);
+}
+
+void DeviceDriver::destroyDeferredOperationKHR (VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator) const
+{
+	m_vk.destroyDeferredOperationKHR(device, operation, pAllocator);
+}
+
+uint32_t DeviceDriver::getDeferredOperationMaxConcurrencyKHR (VkDevice device, VkDeferredOperationKHR operation) const
+{
+	return m_vk.getDeferredOperationMaxConcurrencyKHR(device, operation);
+}
+
+VkResult DeviceDriver::getDeferredOperationResultKHR (VkDevice device, VkDeferredOperationKHR operation) const
+{
+	return m_vk.getDeferredOperationResultKHR(device, operation);
+}
+
+VkResult DeviceDriver::deferredOperationJoinKHR (VkDevice device, VkDeferredOperationKHR operation) const
+{
+	return m_vk.deferredOperationJoinKHR(device, operation);
+}
+
+VkResult DeviceDriver::createAccelerationStructureKHR (VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure) const
+{
+	return m_vk.createAccelerationStructureKHR(device, pCreateInfo, pAllocator, pAccelerationStructure);
+}
+
+void DeviceDriver::getAccelerationStructureMemoryRequirementsKHR (VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoKHR* pInfo, VkMemoryRequirements2* pMemoryRequirements) const
+{
+	m_vk.getAccelerationStructureMemoryRequirementsKHR(device, pInfo, pMemoryRequirements);
+}
+
+void DeviceDriver::cmdBuildAccelerationStructureKHR (VkCommandBuffer commandBuffer, deUint32 infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildOffsetInfoKHR* const* ppOffsetInfos) const
+{
+	m_vk.cmdBuildAccelerationStructureKHR(commandBuffer, infoCount, pInfos, ppOffsetInfos);
+}
+
+void DeviceDriver::cmdBuildAccelerationStructureIndirectKHR (VkCommandBuffer commandBuffer, const VkAccelerationStructureBuildGeometryInfoKHR* pInfo, VkBuffer indirectBuffer, VkDeviceSize indirectOffset, deUint32 indirectStride) const
+{
+	m_vk.cmdBuildAccelerationStructureIndirectKHR(commandBuffer, pInfo, indirectBuffer, indirectOffset, indirectStride);
+}
+
+VkResult DeviceDriver::buildAccelerationStructureKHR (VkDevice device, deUint32 infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildOffsetInfoKHR* const* ppOffsetInfos) const
+{
+	return m_vk.buildAccelerationStructureKHR(device, infoCount, pInfos, ppOffsetInfos);
+}
+
+VkResult DeviceDriver::copyAccelerationStructureKHR (VkDevice device, const VkCopyAccelerationStructureInfoKHR* pInfo) const
+{
+	return m_vk.copyAccelerationStructureKHR(device, pInfo);
+}
+
+VkResult DeviceDriver::copyAccelerationStructureToMemoryKHR (VkDevice device, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) const
+{
+	return m_vk.copyAccelerationStructureToMemoryKHR(device, pInfo);
+}
+
+VkResult DeviceDriver::copyMemoryToAccelerationStructureKHR (VkDevice device, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) const
+{
+	return m_vk.copyMemoryToAccelerationStructureKHR(device, pInfo);
+}
+
+VkResult DeviceDriver::writeAccelerationStructuresPropertiesKHR (VkDevice device, deUint32 accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, deUintptr dataSize, void* pData, deUintptr stride) const
+{
+	return m_vk.writeAccelerationStructuresPropertiesKHR(device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride);
+}
+
+void DeviceDriver::cmdCopyAccelerationStructureKHR (VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo) const
+{
+	m_vk.cmdCopyAccelerationStructureKHR(commandBuffer, pInfo);
+}
+
+void DeviceDriver::cmdCopyAccelerationStructureToMemoryKHR (VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) const
+{
+	m_vk.cmdCopyAccelerationStructureToMemoryKHR(commandBuffer, pInfo);
+}
+
+void DeviceDriver::cmdCopyMemoryToAccelerationStructureKHR (VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) const
+{
+	m_vk.cmdCopyMemoryToAccelerationStructureKHR(commandBuffer, pInfo);
+}
+
+void DeviceDriver::cmdTraceRaysKHR (VkCommandBuffer commandBuffer, const VkStridedBufferRegionKHR* pRaygenShaderBindingTable, const VkStridedBufferRegionKHR* pMissShaderBindingTable, const VkStridedBufferRegionKHR* pHitShaderBindingTable, const VkStridedBufferRegionKHR* pCallableShaderBindingTable, deUint32 width, deUint32 height, deUint32 depth) const
+{
+	m_vk.cmdTraceRaysKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth);
+}
+
+VkResult DeviceDriver::createRayTracingPipelinesKHR (VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const
+{
+	return m_vk.createRayTracingPipelinesKHR(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
+}
+
+VkDeviceAddress DeviceDriver::getAccelerationStructureDeviceAddressKHR (VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo) const
+{
+	return m_vk.getAccelerationStructureDeviceAddressKHR(device, pInfo);
+}
+
+VkResult DeviceDriver::getRayTracingCaptureReplayShaderGroupHandlesKHR (VkDevice device, VkPipeline pipeline, deUint32 firstGroup, deUint32 groupCount, deUintptr dataSize, void* pData) const
+{
+	return m_vk.getRayTracingCaptureReplayShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData);
+}
+
+void DeviceDriver::cmdTraceRaysIndirectKHR (VkCommandBuffer commandBuffer, const VkStridedBufferRegionKHR* pRaygenShaderBindingTable, const VkStridedBufferRegionKHR* pMissShaderBindingTable, const VkStridedBufferRegionKHR* pHitShaderBindingTable, const VkStridedBufferRegionKHR* pCallableShaderBindingTable, VkBuffer buffer, VkDeviceSize offset) const
+{
+	m_vk.cmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, buffer, offset);
+}
+
+VkResult DeviceDriver::getDeviceAccelerationStructureCompatibilityKHR (VkDevice device, const VkAccelerationStructureVersionKHR* version) const
+{
+	return m_vk.getDeviceAccelerationStructureCompatibilityKHR(device, version);
+}
+
 VkResult DeviceDriver::getMemoryWin32HandleKHR (VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const
 {
 	return m_vk.getMemoryWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
diff --git a/external/vulkancts/framework/vulkan/vkDeviceFeatures.cpp b/external/vulkancts/framework/vulkan/vkDeviceFeatures.cpp
index 9eed63f..cb3c08f 100644
--- a/external/vulkancts/framework/vulkan/vkDeviceFeatures.cpp
+++ b/external/vulkancts/framework/vulkan/vkDeviceFeatures.cpp
@@ -74,9 +74,20 @@
 					featuresToFillFromBlob.push_back(p);
 				else
 				{
-					// add to chain
-					*nextPtr = p->getFeatureTypeRaw();
-					nextPtr = p->getFeatureTypeNext();
+					if (p->getFeatureDesc().sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT)
+					{
+						VkPhysicalDeviceFeatures2 coreFeatures2 = initVulkanStructure();
+
+						coreFeatures2.pNext = p->getFeatureTypeRaw();
+
+						vki.getPhysicalDeviceFeatures2(physicalDevice, &coreFeatures2);
+					}
+					else
+					{
+						// add to chain
+						*nextPtr = p->getFeatureTypeRaw();
+						nextPtr = p->getFeatureTypeNext();
+					}
 				}
 				m_features.push_back(p);
 			}
diff --git a/external/vulkancts/framework/vulkan/vkDeviceFeatures.inl b/external/vulkancts/framework/vulkan/vkDeviceFeatures.inl
index 4c499d6..66fd52e 100644
--- a/external/vulkancts/framework/vulkan/vkDeviceFeatures.inl
+++ b/external/vulkancts/framework/vulkan/vkDeviceFeatures.inl
@@ -17,11 +17,16 @@
 #define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
 #define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
 #define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode"
+#define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color"
 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing"
 #define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable"
 #define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
+#define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands"
+#define DECL_NV_DIAGNOSTICS_CONFIG_EXTENSION_NAME "not_existent_feature"
 #define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
+#define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state"
 #define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
+#define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
 #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
 #define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
@@ -33,9 +38,13 @@
 #define VK_NV_MESH_SHADER_EXTENSION_NAME  "VK_NV_mesh_shader"
 #define VK_KHR_MULTIVIEW_EXTENSION_NAME   "VK_KHR_multiview"
 #define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query"
+#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control"
 #define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties"
+#define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data"
 #define DECL_PROTECTED_MEMORY_EXTENSION_NAME "not_existent_feature"
+#define VK_KHR_RAY_TRACING_EXTENSION_NAME "VK_KHR_ray_tracing"
 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
+#define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2"
 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
 #define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
 #define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME "VK_KHR_separate_depth_stencil_layouts"
@@ -51,6 +60,7 @@
 #define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
 #define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
+#define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr"
 #define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore"
 #define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
 #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout"
@@ -204,56 +214,75 @@
 template<> void initFromBlob<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT>(VkPhysicalDeviceYcbcrImageArraysFeaturesEXT&, const AllBlobs&) {}
 template<> void initFromBlob<VkPhysicalDeviceLineRasterizationFeaturesEXT>(VkPhysicalDeviceLineRasterizationFeaturesEXT&, const AllBlobs&) {}
 template<> void initFromBlob<VkPhysicalDeviceIndexTypeUint8FeaturesEXT>(VkPhysicalDeviceIndexTypeUint8FeaturesEXT&, const AllBlobs&) {}
+template<> void initFromBlob<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT>(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT&, const AllBlobs&) {}
 template<> void initFromBlob<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT>(VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT&, const AllBlobs&) {}
+template<> void initFromBlob<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV>(VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV&, const AllBlobs&) {}
 template<> void initFromBlob<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT>(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT&, const AllBlobs&) {}
+template<> void initFromBlob<VkPhysicalDeviceRobustness2FeaturesEXT>(VkPhysicalDeviceRobustness2FeaturesEXT&, const AllBlobs&) {}
+template<> void initFromBlob<VkPhysicalDeviceCustomBorderColorFeaturesEXT>(VkPhysicalDeviceCustomBorderColorFeaturesEXT&, const AllBlobs&) {}
+template<> void initFromBlob<VkPhysicalDevicePrivateDataFeaturesEXT>(VkPhysicalDevicePrivateDataFeaturesEXT&, const AllBlobs&) {}
+template<> void initFromBlob<VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT>(VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT&, const AllBlobs&) {}
+template<> void initFromBlob<VkPhysicalDeviceDiagnosticsConfigFeaturesNV>(VkPhysicalDeviceDiagnosticsConfigFeaturesNV&, const AllBlobs&) {}
+template<> void initFromBlob<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT>(VkPhysicalDeviceFragmentDensityMap2FeaturesEXT&, const AllBlobs&) {}
+template<> void initFromBlob<VkPhysicalDeviceRayTracingFeaturesKHR>(VkPhysicalDeviceRayTracingFeaturesKHR&, const AllBlobs&) {}
 
 
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevice16BitStorageFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES, VK_KHR_16BIT_STORAGE_EXTENSION_NAME, VK_KHR_16BIT_STORAGE_SPEC_VERSION, 53}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevice8BitStorageFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES, VK_KHR_8BIT_STORAGE_EXTENSION_NAME, VK_KHR_8BIT_STORAGE_SPEC_VERSION, 52}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceASTCDecodeFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT, VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME, VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION, 51}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT, VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME, VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION, 50}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceBufferDeviceAddressFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES, VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION, 49}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT, VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION, 48}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCoherentMemoryFeaturesAMD>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD, DECL_AMD_COHERENT_MEMORY_EXTENSION_NAME, 0, 47}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV, VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME, VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION, 46}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceConditionalRenderingFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT, VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME, VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION, 45}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCooperativeMatrixFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV, VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION, 44}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCornerSampledImageFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV, VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME, VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION, 43}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCoverageReductionModeFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV, VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME, VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION, 42}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION, 41}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDepthClipEnableFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT, VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME, VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION, 40}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDescriptorIndexingFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION, 39}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceExclusiveScissorFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV, VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME, VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION, 38}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION, 37}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION, 36}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT, VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME, VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION, 35}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceHostQueryResetFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES, VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME, VK_EXT_HOST_QUERY_RESET_SPEC_VERSION, 34}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceImagelessFramebufferFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES, VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME, VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION, 33}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceIndexTypeUint8FeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT, VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME, VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION, 32}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceInlineUniformBlockFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT, VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME, VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION, 31}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceLineRasterizationFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT, VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME, VK_EXT_LINE_RASTERIZATION_SPEC_VERSION, 30}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMemoryPriorityFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT, VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME, VK_EXT_MEMORY_PRIORITY_SPEC_VERSION, 29}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMeshShaderFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV, VK_NV_MESH_SHADER_EXTENSION_NAME, VK_NV_MESH_SHADER_SPEC_VERSION, 28}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMultiviewFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION, 27}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePerformanceQueryFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR, VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME, VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION, 26}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR, VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME, VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION, 25}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceProtectedMemoryFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0, 24}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV, VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME, VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION, 23}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceSamplerYcbcrConversionFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES, VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME, VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION, 22}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceScalarBlockLayoutFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES, VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME, VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION, 21}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES, VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME, VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION, 20}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderAtomicInt64Features>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES, VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME, VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION, 19}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderClockFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR, VK_KHR_SHADER_CLOCK_EXTENSION_NAME, VK_KHR_SHADER_CLOCK_SPEC_VERSION, 18}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT, VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME, VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION, 17}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderDrawParametersFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME, VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION, 16}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderFloat16Int8Features>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES, VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME, VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION, 15}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderImageFootprintFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV, VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME, VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION, 14}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL, VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME, VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION, 13}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV, VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME, VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION, 12}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES, VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME, VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION, 11}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShadingRateImageFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV, VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME, VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION, 10}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceSubgroupSizeControlFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT, VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME, VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION, 9}; }
-template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT, VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME, VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION, 8}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevice16BitStorageFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES, VK_KHR_16BIT_STORAGE_EXTENSION_NAME, VK_KHR_16BIT_STORAGE_SPEC_VERSION, 63}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevice8BitStorageFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES, VK_KHR_8BIT_STORAGE_EXTENSION_NAME, VK_KHR_8BIT_STORAGE_SPEC_VERSION, 62}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceASTCDecodeFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT, VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME, VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION, 61}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT, VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME, VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION, 60}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceBufferDeviceAddressFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES, VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION, 59}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT, VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION, 58}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCoherentMemoryFeaturesAMD>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD, DECL_AMD_COHERENT_MEMORY_EXTENSION_NAME, 0, 57}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV, VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME, VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION, 56}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceConditionalRenderingFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT, VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME, VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION, 55}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCooperativeMatrixFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV, VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION, 54}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCornerSampledImageFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV, VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME, VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION, 53}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCoverageReductionModeFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV, VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME, VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION, 52}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCustomBorderColorFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT, VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION, 51}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION, 50}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDepthClipEnableFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT, VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME, VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION, 49}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDescriptorIndexingFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION, 48}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV, VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME, VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION, 47}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDiagnosticsConfigFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV, DECL_NV_DIAGNOSTICS_CONFIG_EXTENSION_NAME, 0, 46}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceExclusiveScissorFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV, VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME, VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION, 45}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT, VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME, VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION, 44}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION, 43}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION, 42}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION, 41}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT, VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME, VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION, 40}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceHostQueryResetFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES, VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME, VK_EXT_HOST_QUERY_RESET_SPEC_VERSION, 39}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceImagelessFramebufferFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES, VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME, VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION, 38}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceIndexTypeUint8FeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT, VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME, VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION, 37}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceInlineUniformBlockFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT, VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME, VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION, 36}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceLineRasterizationFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT, VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME, VK_EXT_LINE_RASTERIZATION_SPEC_VERSION, 35}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMemoryPriorityFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT, VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME, VK_EXT_MEMORY_PRIORITY_SPEC_VERSION, 34}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMeshShaderFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV, VK_NV_MESH_SHADER_EXTENSION_NAME, VK_NV_MESH_SHADER_SPEC_VERSION, 33}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMultiviewFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION, 32}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePerformanceQueryFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR, VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME, VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION, 31}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT, VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME, VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION, 30}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR, VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME, VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION, 29}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePrivateDataFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT, VK_EXT_PRIVATE_DATA_EXTENSION_NAME, VK_EXT_PRIVATE_DATA_SPEC_VERSION, 28}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceProtectedMemoryFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0, 27}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceRayTracingFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_FEATURES_KHR, VK_KHR_RAY_TRACING_EXTENSION_NAME, VK_KHR_RAY_TRACING_SPEC_VERSION, 26}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV, VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME, VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION, 25}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceRobustness2FeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT, VK_EXT_ROBUSTNESS_2_EXTENSION_NAME, VK_EXT_ROBUSTNESS_2_SPEC_VERSION, 24}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceSamplerYcbcrConversionFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES, VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME, VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION, 23}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceScalarBlockLayoutFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES, VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME, VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION, 22}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES, VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME, VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION, 21}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderAtomicInt64Features>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES, VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME, VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION, 20}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderClockFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR, VK_KHR_SHADER_CLOCK_EXTENSION_NAME, VK_KHR_SHADER_CLOCK_SPEC_VERSION, 19}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT, VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME, VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION, 18}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderDrawParametersFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME, VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION, 17}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderFloat16Int8Features>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES, VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME, VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION, 16}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderImageFootprintFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV, VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME, VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION, 15}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL, VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME, VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION, 14}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV, VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME, VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION, 13}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES, VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME, VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION, 12}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShadingRateImageFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV, VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME, VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION, 11}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceSubgroupSizeControlFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT, VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME, VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION, 10}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT, VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME, VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION, 9}; }
+template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT, VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME, VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION, 8}; }
 template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceTimelineSemaphoreFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES, VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME, VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION, 7}; }
 template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceTransformFeedbackFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT, VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME, VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION, 6}; }
 template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceUniformBufferStandardLayoutFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION, 5}; }
@@ -277,11 +306,16 @@
 	{ createFeatureStructWrapper<VkPhysicalDeviceCooperativeMatrixFeaturesNV>, VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION },
 	{ createFeatureStructWrapper<VkPhysicalDeviceCornerSampledImageFeaturesNV>, VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME, VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION },
 	{ createFeatureStructWrapper<VkPhysicalDeviceCoverageReductionModeFeaturesNV>, VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME, VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION },
+	{ createFeatureStructWrapper<VkPhysicalDeviceCustomBorderColorFeaturesEXT>, VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION },
 	{ createFeatureStructWrapper<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION },
 	{ createFeatureStructWrapper<VkPhysicalDeviceDepthClipEnableFeaturesEXT>, VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME, VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION },
 	{ createFeatureStructWrapper<VkPhysicalDeviceDescriptorIndexingFeatures>, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION },
+	{ createFeatureStructWrapper<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV>, VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME, VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION },
+	{ createFeatureStructWrapper<VkPhysicalDeviceDiagnosticsConfigFeaturesNV>, DECL_NV_DIAGNOSTICS_CONFIG_EXTENSION_NAME, 0 },
 	{ createFeatureStructWrapper<VkPhysicalDeviceExclusiveScissorFeaturesNV>, VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME, VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION },
+	{ createFeatureStructWrapper<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT>, VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME, VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION },
 	{ createFeatureStructWrapper<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION },
+	{ createFeatureStructWrapper<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT>, VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION },
 	{ createFeatureStructWrapper<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV>, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION },
 	{ createFeatureStructWrapper<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT>, VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME, VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION },
 	{ createFeatureStructWrapper<VkPhysicalDeviceHostQueryResetFeatures>, VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME, VK_EXT_HOST_QUERY_RESET_SPEC_VERSION },
@@ -293,9 +327,13 @@
 	{ createFeatureStructWrapper<VkPhysicalDeviceMeshShaderFeaturesNV>, VK_NV_MESH_SHADER_EXTENSION_NAME, VK_NV_MESH_SHADER_SPEC_VERSION },
 	{ createFeatureStructWrapper<VkPhysicalDeviceMultiviewFeatures>, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION },
 	{ createFeatureStructWrapper<VkPhysicalDevicePerformanceQueryFeaturesKHR>, VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME, VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION },
+	{ createFeatureStructWrapper<VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT>, VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME, VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION },
 	{ createFeatureStructWrapper<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR>, VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME, VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION },
+	{ createFeatureStructWrapper<VkPhysicalDevicePrivateDataFeaturesEXT>, VK_EXT_PRIVATE_DATA_EXTENSION_NAME, VK_EXT_PRIVATE_DATA_SPEC_VERSION },
 	{ createFeatureStructWrapper<VkPhysicalDeviceProtectedMemoryFeatures>, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0 },
+	{ createFeatureStructWrapper<VkPhysicalDeviceRayTracingFeaturesKHR>, VK_KHR_RAY_TRACING_EXTENSION_NAME, VK_KHR_RAY_TRACING_SPEC_VERSION },
 	{ createFeatureStructWrapper<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV>, VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME, VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION },
+	{ createFeatureStructWrapper<VkPhysicalDeviceRobustness2FeaturesEXT>, VK_EXT_ROBUSTNESS_2_EXTENSION_NAME, VK_EXT_ROBUSTNESS_2_SPEC_VERSION },
 	{ createFeatureStructWrapper<VkPhysicalDeviceSamplerYcbcrConversionFeatures>, VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME, VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION },
 	{ createFeatureStructWrapper<VkPhysicalDeviceScalarBlockLayoutFeatures>, VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME, VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION },
 	{ createFeatureStructWrapper<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures>, VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME, VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION },
@@ -311,6 +349,7 @@
 	{ createFeatureStructWrapper<VkPhysicalDeviceShadingRateImageFeaturesNV>, VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME, VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION },
 	{ createFeatureStructWrapper<VkPhysicalDeviceSubgroupSizeControlFeaturesEXT>, VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME, VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION },
 	{ createFeatureStructWrapper<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT>, VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME, VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION },
+	{ createFeatureStructWrapper<VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT>, VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME, VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION },
 	{ createFeatureStructWrapper<VkPhysicalDeviceTimelineSemaphoreFeatures>, VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME, VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION },
 	{ createFeatureStructWrapper<VkPhysicalDeviceTransformFeedbackFeaturesEXT>, VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME, VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION },
 	{ createFeatureStructWrapper<VkPhysicalDeviceUniformBufferStandardLayoutFeatures>, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION },
diff --git a/external/vulkancts/framework/vulkan/vkDeviceFeatures2.inl b/external/vulkancts/framework/vulkan/vkDeviceFeatures2.inl
new file mode 100644
index 0000000..504694e
--- /dev/null
+++ b/external/vulkancts/framework/vulkan/vkDeviceFeatures2.inl
@@ -0,0 +1,273 @@
+/* WARNING: This is auto-generated file. Do not modify, since changes will
+ * be lost! Modify the generating script instead.
+ */
+VkPhysicalDeviceConditionalRenderingFeaturesEXT		deviceConditionalRenderingFeaturesEXT[count];
+VkPhysicalDeviceScalarBlockLayoutFeatures			deviceScalarBlockLayoutFeatures[count];
+VkPhysicalDevicePerformanceQueryFeaturesKHR			devicePerformanceQueryFeaturesKHR[count];
+VkPhysicalDevice16BitStorageFeatures				device16BitStorageFeatures[count];
+VkPhysicalDeviceMultiviewFeatures					deviceMultiviewFeatures[count];
+VkPhysicalDeviceProtectedMemoryFeatures				deviceProtectedMemoryFeatures[count];
+VkPhysicalDeviceSamplerYcbcrConversionFeatures		deviceSamplerYcbcrConversionFeatures[count];
+VkPhysicalDeviceVariablePointersFeatures			deviceVariablePointersFeatures[count];
+VkPhysicalDevice8BitStorageFeatures					device8BitStorageFeatures[count];
+VkPhysicalDeviceShaderAtomicInt64Features			deviceShaderAtomicInt64Features[count];
+VkPhysicalDeviceShaderFloat16Int8Features			deviceShaderFloat16Int8Features[count];
+VkPhysicalDeviceBufferDeviceAddressFeaturesEXT		deviceBufferDeviceAddressFeaturesEXT[count];
+VkPhysicalDeviceBufferDeviceAddressFeatures			deviceBufferDeviceAddressFeatures[count];
+VkPhysicalDeviceDescriptorIndexingFeatures			deviceDescriptorIndexingFeatures[count];
+VkPhysicalDeviceTimelineSemaphoreFeatures			deviceTimelineSemaphoreFeatures[count];
+VkPhysicalDeviceFragmentDensityMapFeaturesEXT		deviceFragmentDensityMapFeaturesEXT[count];
+VkPhysicalDeviceFragmentDensityMap2FeaturesEXT		deviceFragmentDensityMap2FeaturesEXT[count];
+
+const bool isConditionalRenderingFeaturesEXT	= checkExtension(properties, "VK_EXT_conditional_rendering");
+const bool isScalarBlockLayoutFeatures			= checkExtension(properties, "VK_EXT_scalar_block_layout")			|| context.contextSupports(vk::ApiVersion(1, 2, 0));
+const bool isPerformanceQueryFeaturesKHR		= checkExtension(properties, "VK_KHR_performance_query");
+const bool is16BitStorageFeatures				= checkExtension(properties, "VK_KHR_16bit_storage")				|| context.contextSupports(vk::ApiVersion(1, 1, 0));
+const bool isMultiviewFeatures					= checkExtension(properties, "VK_KHR_multiview")					|| context.contextSupports(vk::ApiVersion(1, 1, 0));
+const bool isProtectedMemoryFeatures			=																	   context.contextSupports(vk::ApiVersion(1, 1, 0));
+const bool isSamplerYcbcrConversionFeatures		= checkExtension(properties, "VK_KHR_sampler_ycbcr_conversion")		|| context.contextSupports(vk::ApiVersion(1, 1, 0));
+const bool isVariablePointersFeatures			= checkExtension(properties, "VK_KHR_variable_pointers")			|| context.contextSupports(vk::ApiVersion(1, 1, 0));
+const bool is8BitStorageFeatures				= checkExtension(properties, "VK_KHR_8bit_storage")					|| context.contextSupports(vk::ApiVersion(1, 2, 0));
+const bool isShaderAtomicInt64Features			= checkExtension(properties, "VK_KHR_shader_atomic_int64")			|| context.contextSupports(vk::ApiVersion(1, 2, 0));
+const bool isShaderFloat16Int8Features			= checkExtension(properties, "VK_KHR_shader_float16_int8")			|| context.contextSupports(vk::ApiVersion(1, 2, 0));
+const bool isBufferDeviceAddressFeaturesEXT		= checkExtension(properties, "VK_EXT_buffer_device_address");
+const bool isBufferDeviceAddressFeatures		= checkExtension(properties, "VK_KHR_buffer_device_address")		|| context.contextSupports(vk::ApiVersion(1, 2, 0));
+const bool isDescriptorIndexingFeatures			= checkExtension(properties, "VK_EXT_descriptor_indexing")			|| context.contextSupports(vk::ApiVersion(1, 2, 0));
+const bool isTimelineSemaphoreFeatures			= checkExtension(properties, "VK_KHR_timeline_semaphore")			|| context.contextSupports(vk::ApiVersion(1, 2, 0));
+const bool isFragmentDensityMapFeaturesEXT		= checkExtension(properties, "VK_EXT_fragment_density_map");
+const bool isFragmentDensityMap2FeaturesEXT		= checkExtension(properties, "VK_EXT_fragment_density_map2");
+
+for (int ndx = 0; ndx < count; ++ndx)
+{
+	deMemset(&deviceConditionalRenderingFeaturesEXT[ndx],	0xFF * ndx, sizeof(VkPhysicalDeviceConditionalRenderingFeaturesEXT));
+	deMemset(&deviceScalarBlockLayoutFeatures[ndx],			0xFF * ndx, sizeof(VkPhysicalDeviceScalarBlockLayoutFeatures));
+	deMemset(&devicePerformanceQueryFeaturesKHR[ndx],		0xFF * ndx, sizeof(VkPhysicalDevicePerformanceQueryFeaturesKHR));
+	deMemset(&device16BitStorageFeatures[ndx],				0xFF * ndx, sizeof(VkPhysicalDevice16BitStorageFeatures));
+	deMemset(&deviceMultiviewFeatures[ndx],					0xFF * ndx, sizeof(VkPhysicalDeviceMultiviewFeatures));
+	deMemset(&deviceProtectedMemoryFeatures[ndx],			0xFF * ndx, sizeof(VkPhysicalDeviceProtectedMemoryFeatures));
+	deMemset(&deviceSamplerYcbcrConversionFeatures[ndx],	0xFF * ndx, sizeof(VkPhysicalDeviceSamplerYcbcrConversionFeatures));
+	deMemset(&deviceVariablePointersFeatures[ndx],			0xFF * ndx, sizeof(VkPhysicalDeviceVariablePointersFeatures));
+	deMemset(&device8BitStorageFeatures[ndx],				0xFF * ndx, sizeof(VkPhysicalDevice8BitStorageFeatures));
+	deMemset(&deviceShaderAtomicInt64Features[ndx],			0xFF * ndx, sizeof(VkPhysicalDeviceShaderAtomicInt64Features));
+	deMemset(&deviceShaderFloat16Int8Features[ndx],			0xFF * ndx, sizeof(VkPhysicalDeviceShaderFloat16Int8Features));
+	deMemset(&deviceBufferDeviceAddressFeaturesEXT[ndx],	0xFF * ndx, sizeof(VkPhysicalDeviceBufferDeviceAddressFeaturesEXT));
+	deMemset(&deviceBufferDeviceAddressFeatures[ndx],		0xFF * ndx, sizeof(VkPhysicalDeviceBufferDeviceAddressFeatures));
+	deMemset(&deviceDescriptorIndexingFeatures[ndx],		0xFF * ndx, sizeof(VkPhysicalDeviceDescriptorIndexingFeatures));
+	deMemset(&deviceTimelineSemaphoreFeatures[ndx],			0xFF * ndx, sizeof(VkPhysicalDeviceTimelineSemaphoreFeatures));
+	deMemset(&deviceFragmentDensityMapFeaturesEXT[ndx],		0xFF * ndx, sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT));
+	deMemset(&deviceFragmentDensityMap2FeaturesEXT[ndx],	0xFF * ndx, sizeof(VkPhysicalDeviceFragmentDensityMap2FeaturesEXT));
+
+	deviceConditionalRenderingFeaturesEXT[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT;
+	deviceConditionalRenderingFeaturesEXT[ndx].pNext = &deviceScalarBlockLayoutFeatures[ndx];
+
+	deviceScalarBlockLayoutFeatures[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES;
+	deviceScalarBlockLayoutFeatures[ndx].pNext = &devicePerformanceQueryFeaturesKHR[ndx];
+
+	devicePerformanceQueryFeaturesKHR[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR;
+	devicePerformanceQueryFeaturesKHR[ndx].pNext = &device16BitStorageFeatures[ndx];
+
+	device16BitStorageFeatures[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES;
+	device16BitStorageFeatures[ndx].pNext = &deviceMultiviewFeatures[ndx];
+
+	deviceMultiviewFeatures[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES;
+	deviceMultiviewFeatures[ndx].pNext = &deviceProtectedMemoryFeatures[ndx];
+
+	deviceProtectedMemoryFeatures[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES;
+	deviceProtectedMemoryFeatures[ndx].pNext = &deviceSamplerYcbcrConversionFeatures[ndx];
+
+	deviceSamplerYcbcrConversionFeatures[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES;
+	deviceSamplerYcbcrConversionFeatures[ndx].pNext = &deviceVariablePointersFeatures[ndx];
+
+	deviceVariablePointersFeatures[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES;
+	deviceVariablePointersFeatures[ndx].pNext = &device8BitStorageFeatures[ndx];
+
+	device8BitStorageFeatures[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES;
+	device8BitStorageFeatures[ndx].pNext = &deviceShaderAtomicInt64Features[ndx];
+
+	deviceShaderAtomicInt64Features[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES;
+	deviceShaderAtomicInt64Features[ndx].pNext = &deviceShaderFloat16Int8Features[ndx];
+
+	deviceShaderFloat16Int8Features[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES;
+	deviceShaderFloat16Int8Features[ndx].pNext = &deviceBufferDeviceAddressFeaturesEXT[ndx];
+
+	deviceBufferDeviceAddressFeaturesEXT[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT;
+	deviceBufferDeviceAddressFeaturesEXT[ndx].pNext = &deviceBufferDeviceAddressFeatures[ndx];
+
+	deviceBufferDeviceAddressFeatures[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES;
+	deviceBufferDeviceAddressFeatures[ndx].pNext = &deviceDescriptorIndexingFeatures[ndx];
+
+	deviceDescriptorIndexingFeatures[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES;
+	deviceDescriptorIndexingFeatures[ndx].pNext = &deviceTimelineSemaphoreFeatures[ndx];
+
+	deviceTimelineSemaphoreFeatures[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES;
+	deviceTimelineSemaphoreFeatures[ndx].pNext = &deviceFragmentDensityMapFeaturesEXT[ndx];
+
+	deviceFragmentDensityMapFeaturesEXT[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT;
+	deviceFragmentDensityMapFeaturesEXT[ndx].pNext = &deviceFragmentDensityMap2FeaturesEXT[ndx];
+
+	deviceFragmentDensityMap2FeaturesEXT[ndx].sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT;
+	deviceFragmentDensityMap2FeaturesEXT[ndx].pNext = DE_NULL;
+
+	deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
+	extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+	extFeatures.pNext = &deviceConditionalRenderingFeaturesEXT[ndx];
+	vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
+}
+
+if (isConditionalRenderingFeaturesEXT)
+	log << TestLog::Message << deviceConditionalRenderingFeaturesEXT[0] << TestLog::EndMessage;
+if (isScalarBlockLayoutFeatures)
+	log << TestLog::Message << deviceScalarBlockLayoutFeatures[0] << TestLog::EndMessage;
+if (isPerformanceQueryFeaturesKHR)
+	log << TestLog::Message << devicePerformanceQueryFeaturesKHR[0] << TestLog::EndMessage;
+if (is16BitStorageFeatures)
+	log << TestLog::Message << device16BitStorageFeatures[0] << TestLog::EndMessage;
+if (isMultiviewFeatures)
+	log << TestLog::Message << deviceMultiviewFeatures[0] << TestLog::EndMessage;
+if (isProtectedMemoryFeatures)
+	log << TestLog::Message << deviceProtectedMemoryFeatures[0] << TestLog::EndMessage;
+if (isSamplerYcbcrConversionFeatures)
+	log << TestLog::Message << deviceSamplerYcbcrConversionFeatures[0] << TestLog::EndMessage;
+if (isVariablePointersFeatures)
+	log << TestLog::Message << deviceVariablePointersFeatures[0] << TestLog::EndMessage;
+if (is8BitStorageFeatures)
+	log << TestLog::Message << device8BitStorageFeatures[0] << TestLog::EndMessage;
+if (isShaderAtomicInt64Features)
+	log << TestLog::Message << deviceShaderAtomicInt64Features[0] << TestLog::EndMessage;
+if (isShaderFloat16Int8Features)
+	log << TestLog::Message << deviceShaderFloat16Int8Features[0] << TestLog::EndMessage;
+if (isBufferDeviceAddressFeaturesEXT)
+	log << TestLog::Message << deviceBufferDeviceAddressFeaturesEXT[0] << TestLog::EndMessage;
+if (isBufferDeviceAddressFeatures)
+	log << TestLog::Message << deviceBufferDeviceAddressFeatures[0] << TestLog::EndMessage;
+if (isDescriptorIndexingFeatures)
+	log << TestLog::Message << deviceDescriptorIndexingFeatures[0] << TestLog::EndMessage;
+if (isTimelineSemaphoreFeatures)
+	log << TestLog::Message << deviceTimelineSemaphoreFeatures[0] << TestLog::EndMessage;
+if (isFragmentDensityMapFeaturesEXT)
+	log << TestLog::Message << deviceFragmentDensityMapFeaturesEXT[0] << TestLog::EndMessage;
+if (isFragmentDensityMap2FeaturesEXT)
+	log << TestLog::Message << deviceFragmentDensityMap2FeaturesEXT[0] << TestLog::EndMessage;
+
+if (isConditionalRenderingFeaturesEXT &&
+	(deviceConditionalRenderingFeaturesEXT[0].conditionalRendering != deviceConditionalRenderingFeaturesEXT[1].conditionalRendering ||
+	 deviceConditionalRenderingFeaturesEXT[0].inheritedConditionalRendering != deviceConditionalRenderingFeaturesEXT[1].inheritedConditionalRendering))
+{
+		TCU_FAIL("Mismatch between VkPhysicalDeviceConditionalRenderingFeaturesEXT");
+}
+if (isScalarBlockLayoutFeatures &&
+	(deviceScalarBlockLayoutFeatures[0].scalarBlockLayout != deviceScalarBlockLayoutFeatures[1].scalarBlockLayout))
+{
+		TCU_FAIL("Mismatch between VkPhysicalDeviceScalarBlockLayoutFeatures");
+}
+if (isPerformanceQueryFeaturesKHR &&
+	(devicePerformanceQueryFeaturesKHR[0].performanceCounterQueryPools != devicePerformanceQueryFeaturesKHR[1].performanceCounterQueryPools ||
+	 devicePerformanceQueryFeaturesKHR[0].performanceCounterMultipleQueryPools != devicePerformanceQueryFeaturesKHR[1].performanceCounterMultipleQueryPools))
+{
+		TCU_FAIL("Mismatch between VkPhysicalDevicePerformanceQueryFeaturesKHR");
+}
+if (is16BitStorageFeatures &&
+	(device16BitStorageFeatures[0].storageBuffer16BitAccess != device16BitStorageFeatures[1].storageBuffer16BitAccess ||
+	 device16BitStorageFeatures[0].uniformAndStorageBuffer16BitAccess != device16BitStorageFeatures[1].uniformAndStorageBuffer16BitAccess ||
+	 device16BitStorageFeatures[0].storagePushConstant16 != device16BitStorageFeatures[1].storagePushConstant16 ||
+	 device16BitStorageFeatures[0].storageInputOutput16 != device16BitStorageFeatures[1].storageInputOutput16))
+{
+		TCU_FAIL("Mismatch between VkPhysicalDevice16BitStorageFeatures");
+}
+if (isMultiviewFeatures &&
+	(deviceMultiviewFeatures[0].multiview != deviceMultiviewFeatures[1].multiview ||
+	 deviceMultiviewFeatures[0].multiviewGeometryShader != deviceMultiviewFeatures[1].multiviewGeometryShader ||
+	 deviceMultiviewFeatures[0].multiviewTessellationShader != deviceMultiviewFeatures[1].multiviewTessellationShader))
+{
+		TCU_FAIL("Mismatch between VkPhysicalDeviceMultiviewFeatures");
+}
+if (isProtectedMemoryFeatures &&
+	(deviceProtectedMemoryFeatures[0].protectedMemory != deviceProtectedMemoryFeatures[1].protectedMemory))
+{
+		TCU_FAIL("Mismatch between VkPhysicalDeviceProtectedMemoryFeatures");
+}
+if (isSamplerYcbcrConversionFeatures &&
+	(deviceSamplerYcbcrConversionFeatures[0].samplerYcbcrConversion != deviceSamplerYcbcrConversionFeatures[1].samplerYcbcrConversion))
+{
+		TCU_FAIL("Mismatch between VkPhysicalDeviceSamplerYcbcrConversionFeatures");
+}
+if (isVariablePointersFeatures &&
+	(deviceVariablePointersFeatures[0].variablePointersStorageBuffer != deviceVariablePointersFeatures[1].variablePointersStorageBuffer ||
+	 deviceVariablePointersFeatures[0].variablePointers != deviceVariablePointersFeatures[1].variablePointers))
+{
+		TCU_FAIL("Mismatch between VkPhysicalDeviceVariablePointersFeatures");
+}
+if (is8BitStorageFeatures &&
+	(device8BitStorageFeatures[0].storageBuffer8BitAccess != device8BitStorageFeatures[1].storageBuffer8BitAccess ||
+	 device8BitStorageFeatures[0].uniformAndStorageBuffer8BitAccess != device8BitStorageFeatures[1].uniformAndStorageBuffer8BitAccess ||
+	 device8BitStorageFeatures[0].storagePushConstant8 != device8BitStorageFeatures[1].storagePushConstant8))
+{
+		TCU_FAIL("Mismatch between VkPhysicalDevice8BitStorageFeatures");
+}
+if (isShaderAtomicInt64Features &&
+	(deviceShaderAtomicInt64Features[0].shaderBufferInt64Atomics != deviceShaderAtomicInt64Features[1].shaderBufferInt64Atomics ||
+	 deviceShaderAtomicInt64Features[0].shaderSharedInt64Atomics != deviceShaderAtomicInt64Features[1].shaderSharedInt64Atomics))
+{
+		TCU_FAIL("Mismatch between VkPhysicalDeviceShaderAtomicInt64Features");
+}
+if (isShaderFloat16Int8Features &&
+	(deviceShaderFloat16Int8Features[0].shaderFloat16 != deviceShaderFloat16Int8Features[1].shaderFloat16 ||
+	 deviceShaderFloat16Int8Features[0].shaderInt8 != deviceShaderFloat16Int8Features[1].shaderInt8))
+{
+		TCU_FAIL("Mismatch between VkPhysicalDeviceShaderFloat16Int8Features");
+}
+if (isBufferDeviceAddressFeaturesEXT &&
+	(deviceBufferDeviceAddressFeaturesEXT[0].bufferDeviceAddress != deviceBufferDeviceAddressFeaturesEXT[1].bufferDeviceAddress ||
+	 deviceBufferDeviceAddressFeaturesEXT[0].bufferDeviceAddressCaptureReplay != deviceBufferDeviceAddressFeaturesEXT[1].bufferDeviceAddressCaptureReplay ||
+	 deviceBufferDeviceAddressFeaturesEXT[0].bufferDeviceAddressMultiDevice != deviceBufferDeviceAddressFeaturesEXT[1].bufferDeviceAddressMultiDevice))
+{
+		TCU_FAIL("Mismatch between VkPhysicalDeviceBufferDeviceAddressFeaturesEXT");
+}
+if (isBufferDeviceAddressFeatures &&
+	(deviceBufferDeviceAddressFeatures[0].bufferDeviceAddress != deviceBufferDeviceAddressFeatures[1].bufferDeviceAddress ||
+	 deviceBufferDeviceAddressFeatures[0].bufferDeviceAddressCaptureReplay != deviceBufferDeviceAddressFeatures[1].bufferDeviceAddressCaptureReplay ||
+	 deviceBufferDeviceAddressFeatures[0].bufferDeviceAddressMultiDevice != deviceBufferDeviceAddressFeatures[1].bufferDeviceAddressMultiDevice))
+{
+		TCU_FAIL("Mismatch between VkPhysicalDeviceBufferDeviceAddressFeatures");
+}
+if (isDescriptorIndexingFeatures &&
+	(deviceDescriptorIndexingFeatures[0].shaderInputAttachmentArrayDynamicIndexing != deviceDescriptorIndexingFeatures[1].shaderInputAttachmentArrayDynamicIndexing ||
+	 deviceDescriptorIndexingFeatures[0].shaderUniformTexelBufferArrayDynamicIndexing != deviceDescriptorIndexingFeatures[1].shaderUniformTexelBufferArrayDynamicIndexing ||
+	 deviceDescriptorIndexingFeatures[0].shaderStorageTexelBufferArrayDynamicIndexing != deviceDescriptorIndexingFeatures[1].shaderStorageTexelBufferArrayDynamicIndexing ||
+	 deviceDescriptorIndexingFeatures[0].shaderUniformBufferArrayNonUniformIndexing != deviceDescriptorIndexingFeatures[1].shaderUniformBufferArrayNonUniformIndexing ||
+	 deviceDescriptorIndexingFeatures[0].shaderSampledImageArrayNonUniformIndexing != deviceDescriptorIndexingFeatures[1].shaderSampledImageArrayNonUniformIndexing ||
+	 deviceDescriptorIndexingFeatures[0].shaderStorageBufferArrayNonUniformIndexing != deviceDescriptorIndexingFeatures[1].shaderStorageBufferArrayNonUniformIndexing ||
+	 deviceDescriptorIndexingFeatures[0].shaderStorageImageArrayNonUniformIndexing != deviceDescriptorIndexingFeatures[1].shaderStorageImageArrayNonUniformIndexing ||
+	 deviceDescriptorIndexingFeatures[0].shaderInputAttachmentArrayNonUniformIndexing != deviceDescriptorIndexingFeatures[1].shaderInputAttachmentArrayNonUniformIndexing ||
+	 deviceDescriptorIndexingFeatures[0].shaderUniformTexelBufferArrayNonUniformIndexing != deviceDescriptorIndexingFeatures[1].shaderUniformTexelBufferArrayNonUniformIndexing ||
+	 deviceDescriptorIndexingFeatures[0].shaderStorageTexelBufferArrayNonUniformIndexing != deviceDescriptorIndexingFeatures[1].shaderStorageTexelBufferArrayNonUniformIndexing ||
+	 deviceDescriptorIndexingFeatures[0].descriptorBindingUniformBufferUpdateAfterBind != deviceDescriptorIndexingFeatures[1].descriptorBindingUniformBufferUpdateAfterBind ||
+	 deviceDescriptorIndexingFeatures[0].descriptorBindingSampledImageUpdateAfterBind != deviceDescriptorIndexingFeatures[1].descriptorBindingSampledImageUpdateAfterBind ||
+	 deviceDescriptorIndexingFeatures[0].descriptorBindingStorageImageUpdateAfterBind != deviceDescriptorIndexingFeatures[1].descriptorBindingStorageImageUpdateAfterBind ||
+	 deviceDescriptorIndexingFeatures[0].descriptorBindingStorageBufferUpdateAfterBind != deviceDescriptorIndexingFeatures[1].descriptorBindingStorageBufferUpdateAfterBind ||
+	 deviceDescriptorIndexingFeatures[0].descriptorBindingUniformTexelBufferUpdateAfterBind != deviceDescriptorIndexingFeatures[1].descriptorBindingUniformTexelBufferUpdateAfterBind ||
+	 deviceDescriptorIndexingFeatures[0].descriptorBindingStorageTexelBufferUpdateAfterBind != deviceDescriptorIndexingFeatures[1].descriptorBindingStorageTexelBufferUpdateAfterBind ||
+	 deviceDescriptorIndexingFeatures[0].descriptorBindingUpdateUnusedWhilePending != deviceDescriptorIndexingFeatures[1].descriptorBindingUpdateUnusedWhilePending ||
+	 deviceDescriptorIndexingFeatures[0].descriptorBindingPartiallyBound != deviceDescriptorIndexingFeatures[1].descriptorBindingPartiallyBound ||
+	 deviceDescriptorIndexingFeatures[0].descriptorBindingVariableDescriptorCount != deviceDescriptorIndexingFeatures[1].descriptorBindingVariableDescriptorCount ||
+	 deviceDescriptorIndexingFeatures[0].runtimeDescriptorArray != deviceDescriptorIndexingFeatures[1].runtimeDescriptorArray))
+{
+		TCU_FAIL("Mismatch between VkPhysicalDeviceDescriptorIndexingFeatures");
+}
+if (isTimelineSemaphoreFeatures &&
+	(deviceTimelineSemaphoreFeatures[0].timelineSemaphore != deviceTimelineSemaphoreFeatures[1].timelineSemaphore))
+{
+		TCU_FAIL("Mismatch between VkPhysicalDeviceTimelineSemaphoreFeatures");
+}
+if (isFragmentDensityMapFeaturesEXT &&
+	(deviceFragmentDensityMapFeaturesEXT[0].fragmentDensityMap != deviceFragmentDensityMapFeaturesEXT[1].fragmentDensityMap ||
+	 deviceFragmentDensityMapFeaturesEXT[0].fragmentDensityMapDynamic != deviceFragmentDensityMapFeaturesEXT[1].fragmentDensityMapDynamic ||
+	 deviceFragmentDensityMapFeaturesEXT[0].fragmentDensityMapNonSubsampledImages != deviceFragmentDensityMapFeaturesEXT[1].fragmentDensityMapNonSubsampledImages))
+{
+		TCU_FAIL("Mismatch between VkPhysicalDeviceFragmentDensityMapFeaturesEXT");
+}
+if (isFragmentDensityMap2FeaturesEXT &&
+	(deviceFragmentDensityMap2FeaturesEXT[0].fragmentDensityMapDeferred != deviceFragmentDensityMap2FeaturesEXT[1].fragmentDensityMapDeferred))
+{
+		TCU_FAIL("Mismatch between VkPhysicalDeviceFragmentDensityMap2FeaturesEXT");
+}
diff --git a/external/vulkancts/framework/vulkan/vkDeviceFeaturesForContextDecl.inl b/external/vulkancts/framework/vulkan/vkDeviceFeaturesForContextDecl.inl
index f91ce80..ce18f46 100644
--- a/external/vulkancts/framework/vulkan/vkDeviceFeaturesForContextDecl.inl
+++ b/external/vulkancts/framework/vulkan/vkDeviceFeaturesForContextDecl.inl
@@ -13,11 +13,16 @@
 const vk::VkPhysicalDeviceCooperativeMatrixFeaturesNV&					getCooperativeMatrixFeatures					(void) const;
 const vk::VkPhysicalDeviceCornerSampledImageFeaturesNV&					getCornerSampledImageFeatures					(void) const;
 const vk::VkPhysicalDeviceCoverageReductionModeFeaturesNV&				getCoverageReductionModeFeatures				(void) const;
+const vk::VkPhysicalDeviceCustomBorderColorFeaturesEXT&					getCustomBorderColorFeaturesEXT					(void) const;
 const vk::VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV&	getDedicatedAllocationImageAliasingFeatures		(void) const;
 const vk::VkPhysicalDeviceDepthClipEnableFeaturesEXT&					getDepthClipEnableFeaturesEXT					(void) const;
 const vk::VkPhysicalDeviceDescriptorIndexingFeatures&					getDescriptorIndexingFeatures					(void) const;
+const vk::VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV&			getDeviceGeneratedCommandsFeatures				(void) const;
+const vk::VkPhysicalDeviceDiagnosticsConfigFeaturesNV&					getDiagnosticsConfigFeatures					(void) const;
 const vk::VkPhysicalDeviceExclusiveScissorFeaturesNV&					getExclusiveScissorFeatures						(void) const;
+const vk::VkPhysicalDeviceExtendedDynamicStateFeaturesEXT&				getExtendedDynamicStateFeaturesEXT				(void) const;
 const vk::VkPhysicalDeviceFragmentDensityMapFeaturesEXT&				getFragmentDensityMapFeaturesEXT				(void) const;
+const vk::VkPhysicalDeviceFragmentDensityMap2FeaturesEXT&				getFragmentDensityMap2FeaturesEXT				(void) const;
 const vk::VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV&			getFragmentShaderBarycentricFeatures			(void) const;
 const vk::VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT&			getFragmentShaderInterlockFeaturesEXT			(void) const;
 const vk::VkPhysicalDeviceHostQueryResetFeatures&						getHostQueryResetFeatures						(void) const;
@@ -29,9 +34,13 @@
 const vk::VkPhysicalDeviceMeshShaderFeaturesNV&							getMeshShaderFeatures							(void) const;
 const vk::VkPhysicalDeviceMultiviewFeatures&							getMultiviewFeatures							(void) const;
 const vk::VkPhysicalDevicePerformanceQueryFeaturesKHR&					getPerformanceQueryFeatures						(void) const;
+const vk::VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT&		getPipelineCreationCacheControlFeaturesEXT		(void) const;
 const vk::VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&		getPipelineExecutablePropertiesFeatures			(void) const;
+const vk::VkPhysicalDevicePrivateDataFeaturesEXT&						getPrivateDataFeaturesEXT						(void) const;
 const vk::VkPhysicalDeviceProtectedMemoryFeatures&						getProtectedMemoryFeatures						(void) const;
+const vk::VkPhysicalDeviceRayTracingFeaturesKHR&						getRayTracingFeatures							(void) const;
 const vk::VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV&			getRepresentativeFragmentTestFeatures			(void) const;
+const vk::VkPhysicalDeviceRobustness2FeaturesEXT&						getRobustness2FeaturesEXT						(void) const;
 const vk::VkPhysicalDeviceSamplerYcbcrConversionFeatures&				getSamplerYcbcrConversionFeatures				(void) const;
 const vk::VkPhysicalDeviceScalarBlockLayoutFeatures&					getScalarBlockLayoutFeatures					(void) const;
 const vk::VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures&			getSeparateDepthStencilLayoutsFeatures			(void) const;
@@ -47,6 +56,7 @@
 const vk::VkPhysicalDeviceShadingRateImageFeaturesNV&					getShadingRateImageFeatures						(void) const;
 const vk::VkPhysicalDeviceSubgroupSizeControlFeaturesEXT&				getSubgroupSizeControlFeaturesEXT				(void) const;
 const vk::VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT&				getTexelBufferAlignmentFeaturesEXT				(void) const;
+const vk::VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT&			getTextureCompressionASTCHDRFeaturesEXT			(void) const;
 const vk::VkPhysicalDeviceTimelineSemaphoreFeatures&					getTimelineSemaphoreFeatures					(void) const;
 const vk::VkPhysicalDeviceTransformFeedbackFeaturesEXT&					getTransformFeedbackFeaturesEXT					(void) const;
 const vk::VkPhysicalDeviceUniformBufferStandardLayoutFeatures&			getUniformBufferStandardLayoutFeatures			(void) const;
diff --git a/external/vulkancts/framework/vulkan/vkDeviceFeaturesForContextDefs.inl b/external/vulkancts/framework/vulkan/vkDeviceFeaturesForContextDefs.inl
index 9ff3919..52a678d 100644
--- a/external/vulkancts/framework/vulkan/vkDeviceFeaturesForContextDefs.inl
+++ b/external/vulkancts/framework/vulkan/vkDeviceFeaturesForContextDefs.inl
@@ -13,11 +13,16 @@
 const vk::VkPhysicalDeviceCooperativeMatrixFeaturesNV&					Context::getCooperativeMatrixFeatures					(void) const { return m_device->getCooperativeMatrixFeatures();					}
 const vk::VkPhysicalDeviceCornerSampledImageFeaturesNV&					Context::getCornerSampledImageFeatures					(void) const { return m_device->getCornerSampledImageFeatures();				}
 const vk::VkPhysicalDeviceCoverageReductionModeFeaturesNV&				Context::getCoverageReductionModeFeatures				(void) const { return m_device->getCoverageReductionModeFeatures();				}
+const vk::VkPhysicalDeviceCustomBorderColorFeaturesEXT&					Context::getCustomBorderColorFeaturesEXT				(void) const { return m_device->getCustomBorderColorFeaturesEXT();				}
 const vk::VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV&	Context::getDedicatedAllocationImageAliasingFeatures	(void) const { return m_device->getDedicatedAllocationImageAliasingFeatures();	}
 const vk::VkPhysicalDeviceDepthClipEnableFeaturesEXT&					Context::getDepthClipEnableFeaturesEXT					(void) const { return m_device->getDepthClipEnableFeaturesEXT();				}
 const vk::VkPhysicalDeviceDescriptorIndexingFeatures&					Context::getDescriptorIndexingFeatures					(void) const { return m_device->getDescriptorIndexingFeatures();				}
+const vk::VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV&			Context::getDeviceGeneratedCommandsFeatures				(void) const { return m_device->getDeviceGeneratedCommandsFeatures();			}
+const vk::VkPhysicalDeviceDiagnosticsConfigFeaturesNV&					Context::getDiagnosticsConfigFeatures					(void) const { return m_device->getDiagnosticsConfigFeatures();					}
 const vk::VkPhysicalDeviceExclusiveScissorFeaturesNV&					Context::getExclusiveScissorFeatures					(void) const { return m_device->getExclusiveScissorFeatures();					}
+const vk::VkPhysicalDeviceExtendedDynamicStateFeaturesEXT&				Context::getExtendedDynamicStateFeaturesEXT				(void) const { return m_device->getExtendedDynamicStateFeaturesEXT();			}
 const vk::VkPhysicalDeviceFragmentDensityMapFeaturesEXT&				Context::getFragmentDensityMapFeaturesEXT				(void) const { return m_device->getFragmentDensityMapFeaturesEXT();				}
+const vk::VkPhysicalDeviceFragmentDensityMap2FeaturesEXT&				Context::getFragmentDensityMap2FeaturesEXT				(void) const { return m_device->getFragmentDensityMap2FeaturesEXT();			}
 const vk::VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV&			Context::getFragmentShaderBarycentricFeatures			(void) const { return m_device->getFragmentShaderBarycentricFeatures();			}
 const vk::VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT&			Context::getFragmentShaderInterlockFeaturesEXT			(void) const { return m_device->getFragmentShaderInterlockFeaturesEXT();		}
 const vk::VkPhysicalDeviceHostQueryResetFeatures&						Context::getHostQueryResetFeatures						(void) const { return m_device->getHostQueryResetFeatures();					}
@@ -29,9 +34,13 @@
 const vk::VkPhysicalDeviceMeshShaderFeaturesNV&							Context::getMeshShaderFeatures							(void) const { return m_device->getMeshShaderFeatures();						}
 const vk::VkPhysicalDeviceMultiviewFeatures&							Context::getMultiviewFeatures							(void) const { return m_device->getMultiviewFeatures();							}
 const vk::VkPhysicalDevicePerformanceQueryFeaturesKHR&					Context::getPerformanceQueryFeatures					(void) const { return m_device->getPerformanceQueryFeatures();					}
+const vk::VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT&		Context::getPipelineCreationCacheControlFeaturesEXT		(void) const { return m_device->getPipelineCreationCacheControlFeaturesEXT();	}
 const vk::VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&		Context::getPipelineExecutablePropertiesFeatures		(void) const { return m_device->getPipelineExecutablePropertiesFeatures();		}
+const vk::VkPhysicalDevicePrivateDataFeaturesEXT&						Context::getPrivateDataFeaturesEXT						(void) const { return m_device->getPrivateDataFeaturesEXT();					}
 const vk::VkPhysicalDeviceProtectedMemoryFeatures&						Context::getProtectedMemoryFeatures						(void) const { return m_device->getProtectedMemoryFeatures();					}
+const vk::VkPhysicalDeviceRayTracingFeaturesKHR&						Context::getRayTracingFeatures							(void) const { return m_device->getRayTracingFeatures();						}
 const vk::VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV&			Context::getRepresentativeFragmentTestFeatures			(void) const { return m_device->getRepresentativeFragmentTestFeatures();		}
+const vk::VkPhysicalDeviceRobustness2FeaturesEXT&						Context::getRobustness2FeaturesEXT						(void) const { return m_device->getRobustness2FeaturesEXT();					}
 const vk::VkPhysicalDeviceSamplerYcbcrConversionFeatures&				Context::getSamplerYcbcrConversionFeatures				(void) const { return m_device->getSamplerYcbcrConversionFeatures();			}
 const vk::VkPhysicalDeviceScalarBlockLayoutFeatures&					Context::getScalarBlockLayoutFeatures					(void) const { return m_device->getScalarBlockLayoutFeatures();					}
 const vk::VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures&			Context::getSeparateDepthStencilLayoutsFeatures			(void) const { return m_device->getSeparateDepthStencilLayoutsFeatures();		}
@@ -47,6 +56,7 @@
 const vk::VkPhysicalDeviceShadingRateImageFeaturesNV&					Context::getShadingRateImageFeatures					(void) const { return m_device->getShadingRateImageFeatures();					}
 const vk::VkPhysicalDeviceSubgroupSizeControlFeaturesEXT&				Context::getSubgroupSizeControlFeaturesEXT				(void) const { return m_device->getSubgroupSizeControlFeaturesEXT();			}
 const vk::VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT&				Context::getTexelBufferAlignmentFeaturesEXT				(void) const { return m_device->getTexelBufferAlignmentFeaturesEXT();			}
+const vk::VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT&			Context::getTextureCompressionASTCHDRFeaturesEXT		(void) const { return m_device->getTextureCompressionASTCHDRFeaturesEXT();		}
 const vk::VkPhysicalDeviceTimelineSemaphoreFeatures&					Context::getTimelineSemaphoreFeatures					(void) const { return m_device->getTimelineSemaphoreFeatures();					}
 const vk::VkPhysicalDeviceTransformFeedbackFeaturesEXT&					Context::getTransformFeedbackFeaturesEXT				(void) const { return m_device->getTransformFeedbackFeaturesEXT();				}
 const vk::VkPhysicalDeviceUniformBufferStandardLayoutFeatures&			Context::getUniformBufferStandardLayoutFeatures			(void) const { return m_device->getUniformBufferStandardLayoutFeatures();		}
diff --git a/external/vulkancts/framework/vulkan/vkDeviceFeaturesForDefaultDeviceDefs.inl b/external/vulkancts/framework/vulkan/vkDeviceFeaturesForDefaultDeviceDefs.inl
index a374c52..01493ae 100644
--- a/external/vulkancts/framework/vulkan/vkDeviceFeaturesForDefaultDeviceDefs.inl
+++ b/external/vulkancts/framework/vulkan/vkDeviceFeaturesForDefaultDeviceDefs.inl
@@ -13,11 +13,16 @@
 const VkPhysicalDeviceCooperativeMatrixFeaturesNV&					getCooperativeMatrixFeatures					(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceCooperativeMatrixFeaturesNV>();					}
 const VkPhysicalDeviceCornerSampledImageFeaturesNV&					getCornerSampledImageFeatures					(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceCornerSampledImageFeaturesNV>();					}
 const VkPhysicalDeviceCoverageReductionModeFeaturesNV&				getCoverageReductionModeFeatures				(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceCoverageReductionModeFeaturesNV>();				}
+const VkPhysicalDeviceCustomBorderColorFeaturesEXT&					getCustomBorderColorFeaturesEXT					(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceCustomBorderColorFeaturesEXT>();					}
 const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV&	getDedicatedAllocationImageAliasingFeatures		(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>();	}
 const VkPhysicalDeviceDepthClipEnableFeaturesEXT&					getDepthClipEnableFeaturesEXT					(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDepthClipEnableFeaturesEXT>();					}
 const VkPhysicalDeviceDescriptorIndexingFeatures&					getDescriptorIndexingFeatures					(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDescriptorIndexingFeatures>();					}
+const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV&			getDeviceGeneratedCommandsFeatures				(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV>();				}
+const VkPhysicalDeviceDiagnosticsConfigFeaturesNV&					getDiagnosticsConfigFeatures					(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDiagnosticsConfigFeaturesNV>();					}
 const VkPhysicalDeviceExclusiveScissorFeaturesNV&					getExclusiveScissorFeatures						(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceExclusiveScissorFeaturesNV>();					}
+const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT&				getExtendedDynamicStateFeaturesEXT				(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT>();				}
 const VkPhysicalDeviceFragmentDensityMapFeaturesEXT&				getFragmentDensityMapFeaturesEXT				(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>();					}
+const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT&				getFragmentDensityMap2FeaturesEXT				(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT>();				}
 const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV&			getFragmentShaderBarycentricFeatures			(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV>();			}
 const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT&			getFragmentShaderInterlockFeaturesEXT			(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT>();			}
 const VkPhysicalDeviceHostQueryResetFeatures&						getHostQueryResetFeatures						(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceHostQueryResetFeatures>();						}
@@ -29,9 +34,13 @@
 const VkPhysicalDeviceMeshShaderFeaturesNV&							getMeshShaderFeatures							(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceMeshShaderFeaturesNV>();							}
 const VkPhysicalDeviceMultiviewFeatures&							getMultiviewFeatures							(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceMultiviewFeatures>();								}
 const VkPhysicalDevicePerformanceQueryFeaturesKHR&					getPerformanceQueryFeatures						(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePerformanceQueryFeaturesKHR>();					}
+const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT&		getPipelineCreationCacheControlFeaturesEXT		(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT>();		}
 const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&		getPipelineExecutablePropertiesFeatures			(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR>();		}
+const VkPhysicalDevicePrivateDataFeaturesEXT&						getPrivateDataFeaturesEXT						(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePrivateDataFeaturesEXT>();						}
 const VkPhysicalDeviceProtectedMemoryFeatures&						getProtectedMemoryFeatures						(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceProtectedMemoryFeatures>();						}
+const VkPhysicalDeviceRayTracingFeaturesKHR&						getRayTracingFeatures							(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceRayTracingFeaturesKHR>();							}
 const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV&			getRepresentativeFragmentTestFeatures			(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV>();			}
+const VkPhysicalDeviceRobustness2FeaturesEXT&						getRobustness2FeaturesEXT						(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceRobustness2FeaturesEXT>();						}
 const VkPhysicalDeviceSamplerYcbcrConversionFeatures&				getSamplerYcbcrConversionFeatures				(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceSamplerYcbcrConversionFeatures>();				}
 const VkPhysicalDeviceScalarBlockLayoutFeatures&					getScalarBlockLayoutFeatures					(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceScalarBlockLayoutFeatures>();						}
 const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures&			getSeparateDepthStencilLayoutsFeatures			(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures>();			}
@@ -47,6 +56,7 @@
 const VkPhysicalDeviceShadingRateImageFeaturesNV&					getShadingRateImageFeatures						(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShadingRateImageFeaturesNV>();					}
 const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT&				getSubgroupSizeControlFeaturesEXT				(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceSubgroupSizeControlFeaturesEXT>();				}
 const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT&				getTexelBufferAlignmentFeaturesEXT				(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT>();				}
+const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT&			getTextureCompressionASTCHDRFeaturesEXT			(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT>();			}
 const VkPhysicalDeviceTimelineSemaphoreFeatures&					getTimelineSemaphoreFeatures					(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceTimelineSemaphoreFeatures>();						}
 const VkPhysicalDeviceTransformFeedbackFeaturesEXT&					getTransformFeedbackFeaturesEXT					(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceTransformFeedbackFeaturesEXT>();					}
 const VkPhysicalDeviceUniformBufferStandardLayoutFeatures&			getUniformBufferStandardLayoutFeatures			(void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceUniformBufferStandardLayoutFeatures>();			}
diff --git a/external/vulkancts/framework/vulkan/vkDeviceFunctionPointers.inl b/external/vulkancts/framework/vulkan/vkDeviceFunctionPointers.inl
index c3acddd..60c7eb6 100644
--- a/external/vulkancts/framework/vulkan/vkDeviceFunctionPointers.inl
+++ b/external/vulkancts/framework/vulkan/vkDeviceFunctionPointers.inl
@@ -186,19 +186,12 @@
 CmdEndQueryIndexedEXTFunc							cmdEndQueryIndexedEXT;
 CmdDrawIndirectByteCountEXTFunc						cmdDrawIndirectByteCountEXT;
 GetImageViewHandleNVXFunc							getImageViewHandleNVX;
+GetImageViewAddressNVXFunc							getImageViewAddressNVX;
 CmdDrawIndirectCountAMDFunc							cmdDrawIndirectCountAMD;
 CmdDrawIndexedIndirectCountAMDFunc					cmdDrawIndexedIndirectCountAMD;
 GetShaderInfoAMDFunc								getShaderInfoAMD;
 CmdBeginConditionalRenderingEXTFunc					cmdBeginConditionalRenderingEXT;
 CmdEndConditionalRenderingEXTFunc					cmdEndConditionalRenderingEXT;
-CmdProcessCommandsNVXFunc							cmdProcessCommandsNVX;
-CmdReserveSpaceForCommandsNVXFunc					cmdReserveSpaceForCommandsNVX;
-CreateIndirectCommandsLayoutNVXFunc					createIndirectCommandsLayoutNVX;
-DestroyIndirectCommandsLayoutNVXFunc				destroyIndirectCommandsLayoutNVX;
-CreateObjectTableNVXFunc							createObjectTableNVX;
-DestroyObjectTableNVXFunc							destroyObjectTableNVX;
-RegisterObjectsNVXFunc								registerObjectsNVX;
-UnregisterObjectsNVXFunc							unregisterObjectsNVX;
 CmdSetViewportWScalingNVFunc						cmdSetViewportWScalingNV;
 DisplayPowerControlEXTFunc							displayPowerControlEXT;
 RegisterDeviceEventEXTFunc							registerDeviceEventEXT;
@@ -226,15 +219,19 @@
 CmdSetViewportShadingRatePaletteNVFunc				cmdSetViewportShadingRatePaletteNV;
 CmdSetCoarseSampleOrderNVFunc						cmdSetCoarseSampleOrderNV;
 CreateAccelerationStructureNVFunc					createAccelerationStructureNV;
+DestroyAccelerationStructureKHRFunc					destroyAccelerationStructureKHR;
 DestroyAccelerationStructureNVFunc					destroyAccelerationStructureNV;
 GetAccelerationStructureMemoryRequirementsNVFunc	getAccelerationStructureMemoryRequirementsNV;
+BindAccelerationStructureMemoryKHRFunc				bindAccelerationStructureMemoryKHR;
 BindAccelerationStructureMemoryNVFunc				bindAccelerationStructureMemoryNV;
 CmdBuildAccelerationStructureNVFunc					cmdBuildAccelerationStructureNV;
 CmdCopyAccelerationStructureNVFunc					cmdCopyAccelerationStructureNV;
 CmdTraceRaysNVFunc									cmdTraceRaysNV;
 CreateRayTracingPipelinesNVFunc						createRayTracingPipelinesNV;
+GetRayTracingShaderGroupHandlesKHRFunc				getRayTracingShaderGroupHandlesKHR;
 GetRayTracingShaderGroupHandlesNVFunc				getRayTracingShaderGroupHandlesNV;
 GetAccelerationStructureHandleNVFunc				getAccelerationStructureHandleNV;
+CmdWriteAccelerationStructuresPropertiesKHRFunc		cmdWriteAccelerationStructuresPropertiesKHR;
 CmdWriteAccelerationStructuresPropertiesNVFunc		cmdWriteAccelerationStructuresPropertiesNV;
 CompileDeferredNVFunc								compileDeferredNV;
 GetMemoryHostPointerPropertiesEXTFunc				getMemoryHostPointerPropertiesEXT;
@@ -258,8 +255,53 @@
 SetLocalDimmingAMDFunc								setLocalDimmingAMD;
 GetBufferDeviceAddressEXTFunc						getBufferDeviceAddressEXT;
 CmdSetLineStippleEXTFunc							cmdSetLineStippleEXT;
+CmdSetCullModeEXTFunc								cmdSetCullModeEXT;
+CmdSetFrontFaceEXTFunc								cmdSetFrontFaceEXT;
+CmdSetPrimitiveTopologyEXTFunc						cmdSetPrimitiveTopologyEXT;
+CmdSetViewportWithCountEXTFunc						cmdSetViewportWithCountEXT;
+CmdSetScissorWithCountEXTFunc						cmdSetScissorWithCountEXT;
+CmdBindVertexBuffers2EXTFunc						cmdBindVertexBuffers2EXT;
+CmdSetDepthTestEnableEXTFunc						cmdSetDepthTestEnableEXT;
+CmdSetDepthWriteEnableEXTFunc						cmdSetDepthWriteEnableEXT;
+CmdSetDepthCompareOpEXTFunc							cmdSetDepthCompareOpEXT;
+CmdSetDepthBoundsTestEnableEXTFunc					cmdSetDepthBoundsTestEnableEXT;
+CmdSetStencilTestEnableEXTFunc						cmdSetStencilTestEnableEXT;
+CmdSetStencilOpEXTFunc								cmdSetStencilOpEXT;
+GetGeneratedCommandsMemoryRequirementsNVFunc		getGeneratedCommandsMemoryRequirementsNV;
+CmdPreprocessGeneratedCommandsNVFunc				cmdPreprocessGeneratedCommandsNV;
+CmdExecuteGeneratedCommandsNVFunc					cmdExecuteGeneratedCommandsNV;
+CmdBindPipelineShaderGroupNVFunc					cmdBindPipelineShaderGroupNV;
+CreateIndirectCommandsLayoutNVFunc					createIndirectCommandsLayoutNV;
+DestroyIndirectCommandsLayoutNVFunc					destroyIndirectCommandsLayoutNV;
+CreatePrivateDataSlotEXTFunc						createPrivateDataSlotEXT;
+DestroyPrivateDataSlotEXTFunc						destroyPrivateDataSlotEXT;
+SetPrivateDataEXTFunc								setPrivateDataEXT;
+GetPrivateDataEXTFunc								getPrivateDataEXT;
 GetAndroidHardwareBufferPropertiesANDROIDFunc		getAndroidHardwareBufferPropertiesANDROID;
 GetMemoryAndroidHardwareBufferANDROIDFunc			getMemoryAndroidHardwareBufferANDROID;
+CreateDeferredOperationKHRFunc						createDeferredOperationKHR;
+DestroyDeferredOperationKHRFunc						destroyDeferredOperationKHR;
+GetDeferredOperationMaxConcurrencyKHRFunc			getDeferredOperationMaxConcurrencyKHR;
+GetDeferredOperationResultKHRFunc					getDeferredOperationResultKHR;
+DeferredOperationJoinKHRFunc						deferredOperationJoinKHR;
+CreateAccelerationStructureKHRFunc					createAccelerationStructureKHR;
+GetAccelerationStructureMemoryRequirementsKHRFunc	getAccelerationStructureMemoryRequirementsKHR;
+CmdBuildAccelerationStructureKHRFunc				cmdBuildAccelerationStructureKHR;
+CmdBuildAccelerationStructureIndirectKHRFunc		cmdBuildAccelerationStructureIndirectKHR;
+BuildAccelerationStructureKHRFunc					buildAccelerationStructureKHR;
+CopyAccelerationStructureKHRFunc					copyAccelerationStructureKHR;
+CopyAccelerationStructureToMemoryKHRFunc			copyAccelerationStructureToMemoryKHR;
+CopyMemoryToAccelerationStructureKHRFunc			copyMemoryToAccelerationStructureKHR;
+WriteAccelerationStructuresPropertiesKHRFunc		writeAccelerationStructuresPropertiesKHR;
+CmdCopyAccelerationStructureKHRFunc					cmdCopyAccelerationStructureKHR;
+CmdCopyAccelerationStructureToMemoryKHRFunc			cmdCopyAccelerationStructureToMemoryKHR;
+CmdCopyMemoryToAccelerationStructureKHRFunc			cmdCopyMemoryToAccelerationStructureKHR;
+CmdTraceRaysKHRFunc									cmdTraceRaysKHR;
+CreateRayTracingPipelinesKHRFunc					createRayTracingPipelinesKHR;
+GetAccelerationStructureDeviceAddressKHRFunc		getAccelerationStructureDeviceAddressKHR;
+GetRayTracingCaptureReplayShaderGroupHandlesKHRFunc	getRayTracingCaptureReplayShaderGroupHandlesKHR;
+CmdTraceRaysIndirectKHRFunc							cmdTraceRaysIndirectKHR;
+GetDeviceAccelerationStructureCompatibilityKHRFunc	getDeviceAccelerationStructureCompatibilityKHR;
 GetMemoryWin32HandleKHRFunc							getMemoryWin32HandleKHR;
 GetMemoryWin32HandlePropertiesKHRFunc				getMemoryWin32HandlePropertiesKHR;
 ImportSemaphoreWin32HandleKHRFunc					importSemaphoreWin32HandleKHR;
diff --git a/external/vulkancts/framework/vulkan/vkDeviceProperties.inl b/external/vulkancts/framework/vulkan/vkDeviceProperties.inl
index 98ab7d5..b397e08 100644
--- a/external/vulkancts/framework/vulkan/vkDeviceProperties.inl
+++ b/external/vulkancts/framework/vulkan/vkDeviceProperties.inl
@@ -8,18 +8,20 @@
 #define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
 #define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
 #define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
+#define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color"
 #define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve"
 #define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
+#define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands"
 #define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
 #define DECL_DRIVER_EXTENSION_NAME "not_existent_property"
 #define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
 #define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls"
 #define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
+#define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
 #define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
 #define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization"
 #define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3"
 #define DECL_2_MEMORY_EXTENSION_NAME "not_existent_property"
-#define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget"
 #define VK_NV_MESH_SHADER_EXTENSION_NAME  "VK_NV_mesh_shader"
 #define VK_KHR_MULTIVIEW_EXTENSION_NAME   "VK_KHR_multiview"
 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
@@ -27,10 +29,13 @@
 #define DECL_POINT_CLIPPING_EXTENSION_NAME "not_existent_property"
 #define DECL_PROTECTED_MEMORY_EXTENSION_NAME "not_existent_property"
 #define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
+#define VK_KHR_RAY_TRACING_EXTENSION_NAME "VK_KHR_ray_tracing"
 #define VK_NV_RAY_TRACING_EXTENSION_NAME  "VK_NV_ray_tracing"
+#define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2"
 #define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
 #define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
-#define DECL_AMD_SHADER_CORE_EXTENSION_NAME "not_existent_property"
+#define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
+#define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2"
 #define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
 #define DECL_SUBGROUP_EXTENSION_NAME "not_existent_property"
 #define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
@@ -41,32 +46,37 @@
 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
 
 
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT, VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME, VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION, 34); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceConservativeRasterizationPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT, VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME, VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION, 33); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceCooperativeMatrixPropertiesNV>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV, VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION, 32); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDepthStencilResolveProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES, VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME, VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION, 31); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDescriptorIndexingProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION, 30); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDiscardRectanglePropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT, VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME, VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION, 29); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDriverProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES, DECL_DRIVER_EXTENSION_NAME, 0, 28); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceExternalMemoryHostPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT, VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME, VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION, 27); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceFloatControlsProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES, VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME, VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION, 26); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceFragmentDensityMapPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION, 25); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceInlineUniformBlockPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT, VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME, VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION, 24); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceLineRasterizationPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT, VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME, VK_EXT_LINE_RASTERIZATION_SPEC_VERSION, 23); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMaintenance3Properties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES, VK_KHR_MAINTENANCE3_EXTENSION_NAME, VK_KHR_MAINTENANCE3_SPEC_VERSION, 22); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMemoryProperties2>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2, DECL_2_MEMORY_EXTENSION_NAME, 0, 21); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMemoryBudgetPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT, VK_EXT_MEMORY_BUDGET_EXTENSION_NAME, VK_EXT_MEMORY_BUDGET_SPEC_VERSION, 20); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMeshShaderPropertiesNV>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV, VK_NV_MESH_SHADER_EXTENSION_NAME, VK_NV_MESH_SHADER_SPEC_VERSION, 19); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMultiviewProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION, 18); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX, VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME, VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION, 17); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDevicePerformanceQueryPropertiesKHR>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR, VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME, VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION, 16); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDevicePointClippingProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES, DECL_POINT_CLIPPING_EXTENSION_NAME, 0, 15); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceProtectedMemoryProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0, 14); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDevicePushDescriptorPropertiesKHR>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR, VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME, VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION, 13); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceRayTracingPropertiesNV>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV, VK_NV_RAY_TRACING_EXTENSION_NAME, VK_NV_RAY_TRACING_SPEC_VERSION, 12); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceSamplerFilterMinmaxProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES, VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME, VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION, 11); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceSampleLocationsPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT, VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME, VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION, 10); }
-template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceShaderCorePropertiesAMD>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD, DECL_AMD_SHADER_CORE_EXTENSION_NAME, 0, 9); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT, VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME, VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION, 39); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceConservativeRasterizationPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT, VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME, VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION, 38); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceCooperativeMatrixPropertiesNV>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV, VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION, 37); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceCustomBorderColorPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT, VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION, 36); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDepthStencilResolveProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES, VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME, VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION, 35); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDescriptorIndexingProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION, 34); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV, VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME, VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION, 33); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDiscardRectanglePropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT, VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME, VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION, 32); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDriverProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES, DECL_DRIVER_EXTENSION_NAME, 0, 31); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceExternalMemoryHostPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT, VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME, VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION, 30); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceFloatControlsProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES, VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME, VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION, 29); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceFragmentDensityMapPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION, 28); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION, 27); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceInlineUniformBlockPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT, VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME, VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION, 26); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceLineRasterizationPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT, VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME, VK_EXT_LINE_RASTERIZATION_SPEC_VERSION, 25); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMaintenance3Properties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES, VK_KHR_MAINTENANCE3_EXTENSION_NAME, VK_KHR_MAINTENANCE3_SPEC_VERSION, 24); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMemoryProperties2>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2, DECL_2_MEMORY_EXTENSION_NAME, 0, 23); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMeshShaderPropertiesNV>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV, VK_NV_MESH_SHADER_EXTENSION_NAME, VK_NV_MESH_SHADER_SPEC_VERSION, 22); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMultiviewProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION, 21); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX, VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME, VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION, 20); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDevicePerformanceQueryPropertiesKHR>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR, VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME, VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION, 19); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDevicePointClippingProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES, DECL_POINT_CLIPPING_EXTENSION_NAME, 0, 18); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceProtectedMemoryProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0, 17); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDevicePushDescriptorPropertiesKHR>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR, VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME, VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION, 16); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceRayTracingPropertiesKHR>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_KHR, VK_KHR_RAY_TRACING_EXTENSION_NAME, VK_KHR_RAY_TRACING_SPEC_VERSION, 15); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceRayTracingPropertiesNV>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV, VK_NV_RAY_TRACING_EXTENSION_NAME, VK_NV_RAY_TRACING_SPEC_VERSION, 14); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceRobustness2PropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT, VK_EXT_ROBUSTNESS_2_EXTENSION_NAME, VK_EXT_ROBUSTNESS_2_SPEC_VERSION, 13); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceSamplerFilterMinmaxProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES, VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME, VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION, 12); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceSampleLocationsPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT, VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME, VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION, 11); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceShaderCorePropertiesAMD>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD, VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME, VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION, 10); }
+template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceShaderCoreProperties2AMD>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD, VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME, VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION, 9); }
 template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceShadingRateImagePropertiesNV>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV, VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME, VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION, 8); }
 template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceSubgroupProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES, DECL_SUBGROUP_EXTENSION_NAME, 0, 7); }
 template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceSubgroupSizeControlPropertiesEXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT, VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME, VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION, 6); }
@@ -82,18 +92,20 @@
 	{ createPropertyStructWrapper<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT>, VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME, VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION },
 	{ createPropertyStructWrapper<VkPhysicalDeviceConservativeRasterizationPropertiesEXT>, VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME, VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION },
 	{ createPropertyStructWrapper<VkPhysicalDeviceCooperativeMatrixPropertiesNV>, VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION },
+	{ createPropertyStructWrapper<VkPhysicalDeviceCustomBorderColorPropertiesEXT>, VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION },
 	{ createPropertyStructWrapper<VkPhysicalDeviceDepthStencilResolveProperties>, VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME, VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION },
 	{ createPropertyStructWrapper<VkPhysicalDeviceDescriptorIndexingProperties>, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION },
+	{ createPropertyStructWrapper<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV>, VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME, VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION },
 	{ createPropertyStructWrapper<VkPhysicalDeviceDiscardRectanglePropertiesEXT>, VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME, VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION },
 	{ createPropertyStructWrapper<VkPhysicalDeviceDriverProperties>, DECL_DRIVER_EXTENSION_NAME, 0 },
 	{ createPropertyStructWrapper<VkPhysicalDeviceExternalMemoryHostPropertiesEXT>, VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME, VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION },
 	{ createPropertyStructWrapper<VkPhysicalDeviceFloatControlsProperties>, VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME, VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION },
 	{ createPropertyStructWrapper<VkPhysicalDeviceFragmentDensityMapPropertiesEXT>, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION },
+	{ createPropertyStructWrapper<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT>, VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION },
 	{ createPropertyStructWrapper<VkPhysicalDeviceInlineUniformBlockPropertiesEXT>, VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME, VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION },
 	{ createPropertyStructWrapper<VkPhysicalDeviceLineRasterizationPropertiesEXT>, VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME, VK_EXT_LINE_RASTERIZATION_SPEC_VERSION },
 	{ createPropertyStructWrapper<VkPhysicalDeviceMaintenance3Properties>, VK_KHR_MAINTENANCE3_EXTENSION_NAME, VK_KHR_MAINTENANCE3_SPEC_VERSION },
 	{ createPropertyStructWrapper<VkPhysicalDeviceMemoryProperties2>, DECL_2_MEMORY_EXTENSION_NAME, 0 },
-	{ createPropertyStructWrapper<VkPhysicalDeviceMemoryBudgetPropertiesEXT>, VK_EXT_MEMORY_BUDGET_EXTENSION_NAME, VK_EXT_MEMORY_BUDGET_SPEC_VERSION },
 	{ createPropertyStructWrapper<VkPhysicalDeviceMeshShaderPropertiesNV>, VK_NV_MESH_SHADER_EXTENSION_NAME, VK_NV_MESH_SHADER_SPEC_VERSION },
 	{ createPropertyStructWrapper<VkPhysicalDeviceMultiviewProperties>, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION },
 	{ createPropertyStructWrapper<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>, VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME, VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION },
@@ -101,10 +113,13 @@
 	{ createPropertyStructWrapper<VkPhysicalDevicePointClippingProperties>, DECL_POINT_CLIPPING_EXTENSION_NAME, 0 },
 	{ createPropertyStructWrapper<VkPhysicalDeviceProtectedMemoryProperties>, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0 },
 	{ createPropertyStructWrapper<VkPhysicalDevicePushDescriptorPropertiesKHR>, VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME, VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION },
+	{ createPropertyStructWrapper<VkPhysicalDeviceRayTracingPropertiesKHR>, VK_KHR_RAY_TRACING_EXTENSION_NAME, VK_KHR_RAY_TRACING_SPEC_VERSION },
 	{ createPropertyStructWrapper<VkPhysicalDeviceRayTracingPropertiesNV>, VK_NV_RAY_TRACING_EXTENSION_NAME, VK_NV_RAY_TRACING_SPEC_VERSION },
+	{ createPropertyStructWrapper<VkPhysicalDeviceRobustness2PropertiesEXT>, VK_EXT_ROBUSTNESS_2_EXTENSION_NAME, VK_EXT_ROBUSTNESS_2_SPEC_VERSION },
 	{ createPropertyStructWrapper<VkPhysicalDeviceSamplerFilterMinmaxProperties>, VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME, VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION },
 	{ createPropertyStructWrapper<VkPhysicalDeviceSampleLocationsPropertiesEXT>, VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME, VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION },
-	{ createPropertyStructWrapper<VkPhysicalDeviceShaderCorePropertiesAMD>, DECL_AMD_SHADER_CORE_EXTENSION_NAME, 0 },
+	{ createPropertyStructWrapper<VkPhysicalDeviceShaderCorePropertiesAMD>, VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME, VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION },
+	{ createPropertyStructWrapper<VkPhysicalDeviceShaderCoreProperties2AMD>, VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME, VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION },
 	{ createPropertyStructWrapper<VkPhysicalDeviceShadingRateImagePropertiesNV>, VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME, VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION },
 	{ createPropertyStructWrapper<VkPhysicalDeviceSubgroupProperties>, DECL_SUBGROUP_EXTENSION_NAME, 0 },
 	{ createPropertyStructWrapper<VkPhysicalDeviceSubgroupSizeControlPropertiesEXT>, VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME, VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION },
diff --git a/external/vulkancts/framework/vulkan/vkDevicePropertiesForContextDecl.inl b/external/vulkancts/framework/vulkan/vkDevicePropertiesForContextDecl.inl
index 237dca0..4727238 100644
--- a/external/vulkancts/framework/vulkan/vkDevicePropertiesForContextDecl.inl
+++ b/external/vulkancts/framework/vulkan/vkDevicePropertiesForContextDecl.inl
@@ -4,18 +4,20 @@
 const vk::VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT&		getBlendOperationAdvancedPropertiesEXT		(void) const;
 const vk::VkPhysicalDeviceConservativeRasterizationPropertiesEXT&	getConservativeRasterizationPropertiesEXT	(void) const;
 const vk::VkPhysicalDeviceCooperativeMatrixPropertiesNV&			getCooperativeMatrixProperties				(void) const;
+const vk::VkPhysicalDeviceCustomBorderColorPropertiesEXT&			getCustomBorderColorPropertiesEXT			(void) const;
 const vk::VkPhysicalDeviceDepthStencilResolveProperties&			getDepthStencilResolveProperties			(void) const;
 const vk::VkPhysicalDeviceDescriptorIndexingProperties&				getDescriptorIndexingProperties				(void) const;
+const vk::VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV&		getDeviceGeneratedCommandsProperties		(void) const;
 const vk::VkPhysicalDeviceDiscardRectanglePropertiesEXT&			getDiscardRectanglePropertiesEXT			(void) const;
 const vk::VkPhysicalDeviceDriverProperties&							getDriverProperties							(void) const;
 const vk::VkPhysicalDeviceExternalMemoryHostPropertiesEXT&			getExternalMemoryHostPropertiesEXT			(void) const;
 const vk::VkPhysicalDeviceFloatControlsProperties&					getFloatControlsProperties					(void) const;
 const vk::VkPhysicalDeviceFragmentDensityMapPropertiesEXT&			getFragmentDensityMapPropertiesEXT			(void) const;
+const vk::VkPhysicalDeviceFragmentDensityMap2PropertiesEXT&			getFragmentDensityMap2PropertiesEXT			(void) const;
 const vk::VkPhysicalDeviceInlineUniformBlockPropertiesEXT&			getInlineUniformBlockPropertiesEXT			(void) const;
 const vk::VkPhysicalDeviceLineRasterizationPropertiesEXT&			getLineRasterizationPropertiesEXT			(void) const;
 const vk::VkPhysicalDeviceMaintenance3Properties&					getMaintenance3Properties					(void) const;
 const vk::VkPhysicalDeviceMemoryProperties2&						getMemoryProperties2						(void) const;
-const vk::VkPhysicalDeviceMemoryBudgetPropertiesEXT&				getMemoryBudgetPropertiesEXT				(void) const;
 const vk::VkPhysicalDeviceMeshShaderPropertiesNV&					getMeshShaderProperties						(void) const;
 const vk::VkPhysicalDeviceMultiviewProperties&						getMultiviewProperties						(void) const;
 const vk::VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX&	getMultiviewPerViewAttributesPropertiesX	(void) const;
@@ -23,10 +25,13 @@
 const vk::VkPhysicalDevicePointClippingProperties&					getPointClippingProperties					(void) const;
 const vk::VkPhysicalDeviceProtectedMemoryProperties&				getProtectedMemoryProperties				(void) const;
 const vk::VkPhysicalDevicePushDescriptorPropertiesKHR&				getPushDescriptorProperties					(void) const;
-const vk::VkPhysicalDeviceRayTracingPropertiesNV&					getRayTracingProperties						(void) const;
+const vk::VkPhysicalDeviceRayTracingPropertiesKHR&					getRayTracingProperties						(void) const;
+const vk::VkPhysicalDeviceRayTracingPropertiesNV&					getRayTracingPropertiesNV					(void) const;
+const vk::VkPhysicalDeviceRobustness2PropertiesEXT&					getRobustness2PropertiesEXT					(void) const;
 const vk::VkPhysicalDeviceSamplerFilterMinmaxProperties&			getSamplerFilterMinmaxProperties			(void) const;
 const vk::VkPhysicalDeviceSampleLocationsPropertiesEXT&				getSampleLocationsPropertiesEXT				(void) const;
 const vk::VkPhysicalDeviceShaderCorePropertiesAMD&					getShaderCorePropertiesAMD					(void) const;
+const vk::VkPhysicalDeviceShaderCoreProperties2AMD&					getShaderCoreProperties2AMD					(void) const;
 const vk::VkPhysicalDeviceShadingRateImagePropertiesNV&				getShadingRateImageProperties				(void) const;
 const vk::VkPhysicalDeviceSubgroupProperties&						getSubgroupProperties						(void) const;
 const vk::VkPhysicalDeviceSubgroupSizeControlPropertiesEXT&			getSubgroupSizeControlPropertiesEXT			(void) const;
diff --git a/external/vulkancts/framework/vulkan/vkDevicePropertiesForContextDefs.inl b/external/vulkancts/framework/vulkan/vkDevicePropertiesForContextDefs.inl
index 0f048b8..d6d233e 100644
--- a/external/vulkancts/framework/vulkan/vkDevicePropertiesForContextDefs.inl
+++ b/external/vulkancts/framework/vulkan/vkDevicePropertiesForContextDefs.inl
@@ -4,18 +4,20 @@
 const vk::VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT&		Context::getBlendOperationAdvancedPropertiesEXT		(void) const { return m_device->getBlendOperationAdvancedPropertiesEXT();		}
 const vk::VkPhysicalDeviceConservativeRasterizationPropertiesEXT&	Context::getConservativeRasterizationPropertiesEXT	(void) const { return m_device->getConservativeRasterizationPropertiesEXT();	}
 const vk::VkPhysicalDeviceCooperativeMatrixPropertiesNV&			Context::getCooperativeMatrixProperties				(void) const { return m_device->getCooperativeMatrixProperties();				}
+const vk::VkPhysicalDeviceCustomBorderColorPropertiesEXT&			Context::getCustomBorderColorPropertiesEXT			(void) const { return m_device->getCustomBorderColorPropertiesEXT();			}
 const vk::VkPhysicalDeviceDepthStencilResolveProperties&			Context::getDepthStencilResolveProperties			(void) const { return m_device->getDepthStencilResolveProperties();				}
 const vk::VkPhysicalDeviceDescriptorIndexingProperties&				Context::getDescriptorIndexingProperties			(void) const { return m_device->getDescriptorIndexingProperties();				}
+const vk::VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV&		Context::getDeviceGeneratedCommandsProperties		(void) const { return m_device->getDeviceGeneratedCommandsProperties();			}
 const vk::VkPhysicalDeviceDiscardRectanglePropertiesEXT&			Context::getDiscardRectanglePropertiesEXT			(void) const { return m_device->getDiscardRectanglePropertiesEXT();				}
 const vk::VkPhysicalDeviceDriverProperties&							Context::getDriverProperties						(void) const { return m_device->getDriverProperties();							}
 const vk::VkPhysicalDeviceExternalMemoryHostPropertiesEXT&			Context::getExternalMemoryHostPropertiesEXT			(void) const { return m_device->getExternalMemoryHostPropertiesEXT();			}
 const vk::VkPhysicalDeviceFloatControlsProperties&					Context::getFloatControlsProperties					(void) const { return m_device->getFloatControlsProperties();					}
 const vk::VkPhysicalDeviceFragmentDensityMapPropertiesEXT&			Context::getFragmentDensityMapPropertiesEXT			(void) const { return m_device->getFragmentDensityMapPropertiesEXT();			}
+const vk::VkPhysicalDeviceFragmentDensityMap2PropertiesEXT&			Context::getFragmentDensityMap2PropertiesEXT		(void) const { return m_device->getFragmentDensityMap2PropertiesEXT();			}
 const vk::VkPhysicalDeviceInlineUniformBlockPropertiesEXT&			Context::getInlineUniformBlockPropertiesEXT			(void) const { return m_device->getInlineUniformBlockPropertiesEXT();			}
 const vk::VkPhysicalDeviceLineRasterizationPropertiesEXT&			Context::getLineRasterizationPropertiesEXT			(void) const { return m_device->getLineRasterizationPropertiesEXT();			}
 const vk::VkPhysicalDeviceMaintenance3Properties&					Context::getMaintenance3Properties					(void) const { return m_device->getMaintenance3Properties();					}
 const vk::VkPhysicalDeviceMemoryProperties2&						Context::getMemoryProperties2						(void) const { return m_device->getMemoryProperties2();							}
-const vk::VkPhysicalDeviceMemoryBudgetPropertiesEXT&				Context::getMemoryBudgetPropertiesEXT				(void) const { return m_device->getMemoryBudgetPropertiesEXT();					}
 const vk::VkPhysicalDeviceMeshShaderPropertiesNV&					Context::getMeshShaderProperties					(void) const { return m_device->getMeshShaderProperties();						}
 const vk::VkPhysicalDeviceMultiviewProperties&						Context::getMultiviewProperties						(void) const { return m_device->getMultiviewProperties();						}
 const vk::VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX&	Context::getMultiviewPerViewAttributesPropertiesX	(void) const { return m_device->getMultiviewPerViewAttributesPropertiesX();		}
@@ -23,10 +25,13 @@
 const vk::VkPhysicalDevicePointClippingProperties&					Context::getPointClippingProperties					(void) const { return m_device->getPointClippingProperties();					}
 const vk::VkPhysicalDeviceProtectedMemoryProperties&				Context::getProtectedMemoryProperties				(void) const { return m_device->getProtectedMemoryProperties();					}
 const vk::VkPhysicalDevicePushDescriptorPropertiesKHR&				Context::getPushDescriptorProperties				(void) const { return m_device->getPushDescriptorProperties();					}
-const vk::VkPhysicalDeviceRayTracingPropertiesNV&					Context::getRayTracingProperties					(void) const { return m_device->getRayTracingProperties();						}
+const vk::VkPhysicalDeviceRayTracingPropertiesKHR&					Context::getRayTracingProperties					(void) const { return m_device->getRayTracingProperties();						}
+const vk::VkPhysicalDeviceRayTracingPropertiesNV&					Context::getRayTracingPropertiesNV					(void) const { return m_device->getRayTracingPropertiesNV();					}
+const vk::VkPhysicalDeviceRobustness2PropertiesEXT&					Context::getRobustness2PropertiesEXT				(void) const { return m_device->getRobustness2PropertiesEXT();					}
 const vk::VkPhysicalDeviceSamplerFilterMinmaxProperties&			Context::getSamplerFilterMinmaxProperties			(void) const { return m_device->getSamplerFilterMinmaxProperties();				}
 const vk::VkPhysicalDeviceSampleLocationsPropertiesEXT&				Context::getSampleLocationsPropertiesEXT			(void) const { return m_device->getSampleLocationsPropertiesEXT();				}
 const vk::VkPhysicalDeviceShaderCorePropertiesAMD&					Context::getShaderCorePropertiesAMD					(void) const { return m_device->getShaderCorePropertiesAMD();					}
+const vk::VkPhysicalDeviceShaderCoreProperties2AMD&					Context::getShaderCoreProperties2AMD				(void) const { return m_device->getShaderCoreProperties2AMD();					}
 const vk::VkPhysicalDeviceShadingRateImagePropertiesNV&				Context::getShadingRateImageProperties				(void) const { return m_device->getShadingRateImageProperties();				}
 const vk::VkPhysicalDeviceSubgroupProperties&						Context::getSubgroupProperties						(void) const { return m_device->getSubgroupProperties();						}
 const vk::VkPhysicalDeviceSubgroupSizeControlPropertiesEXT&			Context::getSubgroupSizeControlPropertiesEXT		(void) const { return m_device->getSubgroupSizeControlPropertiesEXT();			}
diff --git a/external/vulkancts/framework/vulkan/vkDevicePropertiesForDefaultDeviceDefs.inl b/external/vulkancts/framework/vulkan/vkDevicePropertiesForDefaultDeviceDefs.inl
index 21c8a39..c5c9d1e 100644
--- a/external/vulkancts/framework/vulkan/vkDevicePropertiesForDefaultDeviceDefs.inl
+++ b/external/vulkancts/framework/vulkan/vkDevicePropertiesForDefaultDeviceDefs.inl
@@ -4,18 +4,20 @@
 const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT&		getBlendOperationAdvancedPropertiesEXT		(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT>();		}
 const VkPhysicalDeviceConservativeRasterizationPropertiesEXT&	getConservativeRasterizationPropertiesEXT	(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceConservativeRasterizationPropertiesEXT>();		}
 const VkPhysicalDeviceCooperativeMatrixPropertiesNV&			getCooperativeMatrixProperties				(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceCooperativeMatrixPropertiesNV>();				}
+const VkPhysicalDeviceCustomBorderColorPropertiesEXT&			getCustomBorderColorPropertiesEXT			(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceCustomBorderColorPropertiesEXT>();				}
 const VkPhysicalDeviceDepthStencilResolveProperties&			getDepthStencilResolveProperties			(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceDepthStencilResolveProperties>();				}
 const VkPhysicalDeviceDescriptorIndexingProperties&				getDescriptorIndexingProperties				(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceDescriptorIndexingProperties>();				}
+const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV&		getDeviceGeneratedCommandsProperties		(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV>();		}
 const VkPhysicalDeviceDiscardRectanglePropertiesEXT&			getDiscardRectanglePropertiesEXT			(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceDiscardRectanglePropertiesEXT>();				}
 const VkPhysicalDeviceDriverProperties&							getDriverProperties							(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceDriverProperties>();							}
 const VkPhysicalDeviceExternalMemoryHostPropertiesEXT&			getExternalMemoryHostPropertiesEXT			(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceExternalMemoryHostPropertiesEXT>();			}
 const VkPhysicalDeviceFloatControlsProperties&					getFloatControlsProperties					(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceFloatControlsProperties>();					}
 const VkPhysicalDeviceFragmentDensityMapPropertiesEXT&			getFragmentDensityMapPropertiesEXT			(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceFragmentDensityMapPropertiesEXT>();			}
+const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT&			getFragmentDensityMap2PropertiesEXT			(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT>();			}
 const VkPhysicalDeviceInlineUniformBlockPropertiesEXT&			getInlineUniformBlockPropertiesEXT			(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceInlineUniformBlockPropertiesEXT>();			}
 const VkPhysicalDeviceLineRasterizationPropertiesEXT&			getLineRasterizationPropertiesEXT			(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceLineRasterizationPropertiesEXT>();				}
 const VkPhysicalDeviceMaintenance3Properties&					getMaintenance3Properties					(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceMaintenance3Properties>();						}
 const VkPhysicalDeviceMemoryProperties2&						getMemoryProperties2						(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceMemoryProperties2>();							}
-const VkPhysicalDeviceMemoryBudgetPropertiesEXT&				getMemoryBudgetPropertiesEXT				(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceMemoryBudgetPropertiesEXT>();					}
 const VkPhysicalDeviceMeshShaderPropertiesNV&					getMeshShaderProperties						(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceMeshShaderPropertiesNV>();						}
 const VkPhysicalDeviceMultiviewProperties&						getMultiviewProperties						(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceMultiviewProperties>();						}
 const VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX&	getMultiviewPerViewAttributesPropertiesX	(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>();	}
@@ -23,10 +25,13 @@
 const VkPhysicalDevicePointClippingProperties&					getPointClippingProperties					(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDevicePointClippingProperties>();					}
 const VkPhysicalDeviceProtectedMemoryProperties&				getProtectedMemoryProperties				(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceProtectedMemoryProperties>();					}
 const VkPhysicalDevicePushDescriptorPropertiesKHR&				getPushDescriptorProperties					(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDevicePushDescriptorPropertiesKHR>();				}
-const VkPhysicalDeviceRayTracingPropertiesNV&					getRayTracingProperties						(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceRayTracingPropertiesNV>();						}
+const VkPhysicalDeviceRayTracingPropertiesKHR&					getRayTracingProperties						(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceRayTracingPropertiesKHR>();					}
+const VkPhysicalDeviceRayTracingPropertiesNV&					getRayTracingPropertiesNV					(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceRayTracingPropertiesNV>();						}
+const VkPhysicalDeviceRobustness2PropertiesEXT&					getRobustness2PropertiesEXT					(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceRobustness2PropertiesEXT>();					}
 const VkPhysicalDeviceSamplerFilterMinmaxProperties&			getSamplerFilterMinmaxProperties			(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceSamplerFilterMinmaxProperties>();				}
 const VkPhysicalDeviceSampleLocationsPropertiesEXT&				getSampleLocationsPropertiesEXT				(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceSampleLocationsPropertiesEXT>();				}
 const VkPhysicalDeviceShaderCorePropertiesAMD&					getShaderCorePropertiesAMD					(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceShaderCorePropertiesAMD>();					}
+const VkPhysicalDeviceShaderCoreProperties2AMD&					getShaderCoreProperties2AMD					(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceShaderCoreProperties2AMD>();					}
 const VkPhysicalDeviceShadingRateImagePropertiesNV&				getShadingRateImageProperties				(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceShadingRateImagePropertiesNV>();				}
 const VkPhysicalDeviceSubgroupProperties&						getSubgroupProperties						(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceSubgroupProperties>();							}
 const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT&			getSubgroupSizeControlPropertiesEXT			(void) const { return m_devicePropertiesFull.getPropertyType<VkPhysicalDeviceSubgroupSizeControlPropertiesEXT>();			}
diff --git a/external/vulkancts/framework/vulkan/vkExtensionFunctions.inl b/external/vulkancts/framework/vulkan/vkExtensionFunctions.inl
index ebbd5ec..42589ea 100644
--- a/external/vulkancts/framework/vulkan/vkExtensionFunctions.inl
+++ b/external/vulkancts/framework/vulkan/vkExtensionFunctions.inl
@@ -269,6 +269,10 @@
 	{
 		return;
 	}
+	if (extName == "VK_KHR_shader_non_semantic_info")
+	{
+		return;
+	}
 	if (extName == "VK_EXT_debug_report")
 	{
 		functions.push_back("vkCreateDebugReportCallbackEXT");
@@ -389,11 +393,6 @@
 	{
 		return;
 	}
-	if (extName == "VK_NVX_device_generated_commands")
-	{
-		functions.push_back("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX");
-		return;
-	}
 	if (extName == "VK_NV_clip_space_w_scaling")
 	{
 		return;
@@ -556,6 +555,10 @@
 	{
 		return;
 	}
+	if (extName == "VK_QCOM_render_pass_shader_resolve")
+	{
+		return;
+	}
 	if (extName == "VK_EXT_global_priority")
 	{
 		return;
@@ -729,18 +732,54 @@
 	{
 		return;
 	}
+	if (extName == "VK_EXT_extended_dynamic_state")
+	{
+		return;
+	}
 	if (extName == "VK_EXT_shader_demote_to_helper_invocation")
 	{
 		return;
 	}
+	if (extName == "VK_NV_device_generated_commands")
+	{
+		return;
+	}
 	if (extName == "VK_EXT_texel_buffer_alignment")
 	{
 		return;
 	}
+	if (extName == "VK_QCOM_render_pass_transform")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_robustness2")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_custom_border_color")
+	{
+		return;
+	}
 	if (extName == "VK_GOOGLE_user_type")
 	{
 		return;
 	}
+	if (extName == "VK_EXT_private_data")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_pipeline_creation_cache_control")
+	{
+		return;
+	}
+	if (extName == "VK_NV_device_diagnostics_config")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_fragment_density_map2")
+	{
+		return;
+	}
 	if (extName == "VK_KHR_android_surface")
 	{
 		functions.push_back("vkCreateAndroidSurfaceKHR");
@@ -750,6 +789,18 @@
 	{
 		return;
 	}
+	if (extName == "VK_KHR_deferred_host_operations")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_pipeline_library")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_ray_tracing")
+	{
+		return;
+	}
 	if (extName == "VK_FUCHSIA_imagepipe_surface")
 	{
 		functions.push_back("vkCreateImagePipeSurfaceFUCHSIA");
@@ -1133,6 +1184,10 @@
 		functions.push_back("vkGetPipelineExecutableInternalRepresentationsKHR");
 		return;
 	}
+	if (extName == "VK_KHR_shader_non_semantic_info")
+	{
+		return;
+	}
 	if (extName == "VK_EXT_debug_report")
 	{
 		return;
@@ -1191,6 +1246,7 @@
 	if (extName == "VK_NVX_image_view_handle")
 	{
 		functions.push_back("vkGetImageViewHandleNVX");
+		functions.push_back("vkGetImageViewAddressNVX");
 		return;
 	}
 	if (extName == "VK_AMD_draw_indirect_count")
@@ -1266,18 +1322,6 @@
 		functions.push_back("vkCmdEndConditionalRenderingEXT");
 		return;
 	}
-	if (extName == "VK_NVX_device_generated_commands")
-	{
-		functions.push_back("vkCmdProcessCommandsNVX");
-		functions.push_back("vkCmdReserveSpaceForCommandsNVX");
-		functions.push_back("vkCreateIndirectCommandsLayoutNVX");
-		functions.push_back("vkDestroyIndirectCommandsLayoutNVX");
-		functions.push_back("vkCreateObjectTableNVX");
-		functions.push_back("vkDestroyObjectTableNVX");
-		functions.push_back("vkRegisterObjectsNVX");
-		functions.push_back("vkUnregisterObjectsNVX");
-		return;
-	}
 	if (extName == "VK_NV_clip_space_w_scaling")
 	{
 		functions.push_back("vkCmdSetViewportWScalingNV");
@@ -1451,15 +1495,19 @@
 	if (extName == "VK_NV_ray_tracing")
 	{
 		functions.push_back("vkCreateAccelerationStructureNV");
+		functions.push_back("vkDestroyAccelerationStructureKHR");
 		functions.push_back("vkDestroyAccelerationStructureNV");
 		functions.push_back("vkGetAccelerationStructureMemoryRequirementsNV");
+		functions.push_back("vkBindAccelerationStructureMemoryKHR");
 		functions.push_back("vkBindAccelerationStructureMemoryNV");
 		functions.push_back("vkCmdBuildAccelerationStructureNV");
 		functions.push_back("vkCmdCopyAccelerationStructureNV");
 		functions.push_back("vkCmdTraceRaysNV");
 		functions.push_back("vkCreateRayTracingPipelinesNV");
+		functions.push_back("vkGetRayTracingShaderGroupHandlesKHR");
 		functions.push_back("vkGetRayTracingShaderGroupHandlesNV");
 		functions.push_back("vkGetAccelerationStructureHandleNV");
+		functions.push_back("vkCmdWriteAccelerationStructuresPropertiesKHR");
 		functions.push_back("vkCmdWriteAccelerationStructuresPropertiesNV");
 		functions.push_back("vkCompileDeferredNV");
 		return;
@@ -1472,6 +1520,10 @@
 	{
 		return;
 	}
+	if (extName == "VK_QCOM_render_pass_shader_resolve")
+	{
+		return;
+	}
 	if (extName == "VK_EXT_global_priority")
 	{
 		return;
@@ -1662,18 +1714,76 @@
 	{
 		return;
 	}
+	if (extName == "VK_EXT_extended_dynamic_state")
+	{
+		functions.push_back("vkCmdSetCullModeEXT");
+		functions.push_back("vkCmdSetFrontFaceEXT");
+		functions.push_back("vkCmdSetPrimitiveTopologyEXT");
+		functions.push_back("vkCmdSetViewportWithCountEXT");
+		functions.push_back("vkCmdSetScissorWithCountEXT");
+		functions.push_back("vkCmdBindVertexBuffers2EXT");
+		functions.push_back("vkCmdSetDepthTestEnableEXT");
+		functions.push_back("vkCmdSetDepthWriteEnableEXT");
+		functions.push_back("vkCmdSetDepthCompareOpEXT");
+		functions.push_back("vkCmdSetDepthBoundsTestEnableEXT");
+		functions.push_back("vkCmdSetStencilTestEnableEXT");
+		functions.push_back("vkCmdSetStencilOpEXT");
+		return;
+	}
 	if (extName == "VK_EXT_shader_demote_to_helper_invocation")
 	{
 		return;
 	}
+	if (extName == "VK_NV_device_generated_commands")
+	{
+		functions.push_back("vkGetGeneratedCommandsMemoryRequirementsNV");
+		functions.push_back("vkCmdPreprocessGeneratedCommandsNV");
+		functions.push_back("vkCmdExecuteGeneratedCommandsNV");
+		functions.push_back("vkCmdBindPipelineShaderGroupNV");
+		functions.push_back("vkCreateIndirectCommandsLayoutNV");
+		functions.push_back("vkDestroyIndirectCommandsLayoutNV");
+		return;
+	}
 	if (extName == "VK_EXT_texel_buffer_alignment")
 	{
 		return;
 	}
+	if (extName == "VK_QCOM_render_pass_transform")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_robustness2")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_custom_border_color")
+	{
+		return;
+	}
 	if (extName == "VK_GOOGLE_user_type")
 	{
 		return;
 	}
+	if (extName == "VK_EXT_private_data")
+	{
+		functions.push_back("vkCreatePrivateDataSlotEXT");
+		functions.push_back("vkDestroyPrivateDataSlotEXT");
+		functions.push_back("vkSetPrivateDataEXT");
+		functions.push_back("vkGetPrivateDataEXT");
+		return;
+	}
+	if (extName == "VK_EXT_pipeline_creation_cache_control")
+	{
+		return;
+	}
+	if (extName == "VK_NV_device_diagnostics_config")
+	{
+		return;
+	}
+	if (extName == "VK_EXT_fragment_density_map2")
+	{
+		return;
+	}
 	if (extName == "VK_KHR_android_surface")
 	{
 		return;
@@ -1684,6 +1794,41 @@
 		functions.push_back("vkGetMemoryAndroidHardwareBufferANDROID");
 		return;
 	}
+	if (extName == "VK_KHR_deferred_host_operations")
+	{
+		functions.push_back("vkCreateDeferredOperationKHR");
+		functions.push_back("vkDestroyDeferredOperationKHR");
+		functions.push_back("vkGetDeferredOperationMaxConcurrencyKHR");
+		functions.push_back("vkGetDeferredOperationResultKHR");
+		functions.push_back("vkDeferredOperationJoinKHR");
+		return;
+	}
+	if (extName == "VK_KHR_pipeline_library")
+	{
+		return;
+	}
+	if (extName == "VK_KHR_ray_tracing")
+	{
+		functions.push_back("vkCreateAccelerationStructureKHR");
+		functions.push_back("vkGetAccelerationStructureMemoryRequirementsKHR");
+		functions.push_back("vkCmdBuildAccelerationStructureKHR");
+		functions.push_back("vkCmdBuildAccelerationStructureIndirectKHR");
+		functions.push_back("vkBuildAccelerationStructureKHR");
+		functions.push_back("vkCopyAccelerationStructureKHR");
+		functions.push_back("vkCopyAccelerationStructureToMemoryKHR");
+		functions.push_back("vkCopyMemoryToAccelerationStructureKHR");
+		functions.push_back("vkWriteAccelerationStructuresPropertiesKHR");
+		functions.push_back("vkCmdCopyAccelerationStructureKHR");
+		functions.push_back("vkCmdCopyAccelerationStructureToMemoryKHR");
+		functions.push_back("vkCmdCopyMemoryToAccelerationStructureKHR");
+		functions.push_back("vkCmdTraceRaysKHR");
+		functions.push_back("vkCreateRayTracingPipelinesKHR");
+		functions.push_back("vkGetAccelerationStructureDeviceAddressKHR");
+		functions.push_back("vkGetRayTracingCaptureReplayShaderGroupHandlesKHR");
+		functions.push_back("vkCmdTraceRaysIndirectKHR");
+		functions.push_back("vkGetDeviceAccelerationStructureCompatibilityKHR");
+		return;
+	}
 	if (extName == "VK_FUCHSIA_imagepipe_surface")
 	{
 		return;
@@ -1836,7 +1981,6 @@
 	"VK_AMD_draw_indirect_count",
 	"VK_AMD_shader_info",
 	"VK_EXT_conditional_rendering",
-	"VK_NVX_device_generated_commands",
 	"VK_NV_clip_space_w_scaling",
 	"VK_EXT_display_control",
 	"VK_GOOGLE_display_timing",
@@ -1858,7 +2002,12 @@
 	"VK_EXT_buffer_device_address",
 	"VK_EXT_line_rasterization",
 	"VK_EXT_host_query_reset",
+	"VK_EXT_extended_dynamic_state",
+	"VK_NV_device_generated_commands",
+	"VK_EXT_private_data",
 	"VK_ANDROID_external_memory_android_hardware_buffer",
+	"VK_KHR_deferred_host_operations",
+	"VK_KHR_ray_tracing",
 	"VK_KHR_external_memory_win32",
 	"VK_KHR_external_semaphore_win32",
 	"VK_KHR_external_fence_win32",
diff --git a/external/vulkancts/framework/vulkan/vkFunctionPointerTypes.inl b/external/vulkancts/framework/vulkan/vkFunctionPointerTypes.inl
index ab0894b..0bf9ea5 100644
--- a/external/vulkancts/framework/vulkan/vkFunctionPointerTypes.inl
+++ b/external/vulkancts/framework/vulkan/vkFunctionPointerTypes.inl
@@ -276,21 +276,13 @@
 typedef VKAPI_ATTR void					(VKAPI_CALL* CmdEndQueryIndexedEXTFunc)												(VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, deUint32 index);
 typedef VKAPI_ATTR void					(VKAPI_CALL* CmdDrawIndirectByteCountEXTFunc)										(VkCommandBuffer commandBuffer, deUint32 instanceCount, deUint32 firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, deUint32 counterOffset, deUint32 vertexStride);
 typedef VKAPI_ATTR uint32_t				(VKAPI_CALL* GetImageViewHandleNVXFunc)												(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
+typedef VKAPI_ATTR VkResult				(VKAPI_CALL* GetImageViewAddressNVXFunc)											(VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties);
 typedef VKAPI_ATTR void					(VKAPI_CALL* CmdDrawIndirectCountAMDFunc)											(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride);
 typedef VKAPI_ATTR void					(VKAPI_CALL* CmdDrawIndexedIndirectCountAMDFunc)									(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride);
 typedef VKAPI_ATTR VkResult				(VKAPI_CALL* GetShaderInfoAMDFunc)													(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, deUintptr* pInfoSize, void* pInfo);
 typedef VKAPI_ATTR VkResult				(VKAPI_CALL* GetPhysicalDeviceExternalImageFormatPropertiesNVFunc)					(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
 typedef VKAPI_ATTR void					(VKAPI_CALL* CmdBeginConditionalRenderingEXTFunc)									(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
 typedef VKAPI_ATTR void					(VKAPI_CALL* CmdEndConditionalRenderingEXTFunc)										(VkCommandBuffer commandBuffer);
-typedef VKAPI_ATTR void					(VKAPI_CALL* CmdProcessCommandsNVXFunc)												(VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo);
-typedef VKAPI_ATTR void					(VKAPI_CALL* CmdReserveSpaceForCommandsNVXFunc)										(VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo);
-typedef VKAPI_ATTR VkResult				(VKAPI_CALL* CreateIndirectCommandsLayoutNVXFunc)									(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout);
-typedef VKAPI_ATTR void					(VKAPI_CALL* DestroyIndirectCommandsLayoutNVXFunc)									(VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult				(VKAPI_CALL* CreateObjectTableNVXFunc)												(VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable);
-typedef VKAPI_ATTR void					(VKAPI_CALL* DestroyObjectTableNVXFunc)												(VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator);
-typedef VKAPI_ATTR VkResult				(VKAPI_CALL* RegisterObjectsNVXFunc)												(VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectTableEntryNVX* const* ppObjectTableEntries, const deUint32* pObjectIndices);
-typedef VKAPI_ATTR VkResult				(VKAPI_CALL* UnregisterObjectsNVXFunc)												(VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const deUint32* pObjectIndices);
-typedef VKAPI_ATTR void					(VKAPI_CALL* GetPhysicalDeviceGeneratedCommandsPropertiesNVXFunc)					(VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits);
 typedef VKAPI_ATTR void					(VKAPI_CALL* CmdSetViewportWScalingNVFunc)											(VkCommandBuffer commandBuffer, deUint32 firstViewport, deUint32 viewportCount, const VkViewportWScalingNV* pViewportWScalings);
 typedef VKAPI_ATTR VkResult				(VKAPI_CALL* ReleaseDisplayEXTFunc)													(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
 typedef VKAPI_ATTR VkResult				(VKAPI_CALL* GetPhysicalDeviceSurfaceCapabilities2EXTFunc)							(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
@@ -324,16 +316,20 @@
 typedef VKAPI_ATTR void					(VKAPI_CALL* CmdSetViewportShadingRatePaletteNVFunc)								(VkCommandBuffer commandBuffer, deUint32 firstViewport, deUint32 viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes);
 typedef VKAPI_ATTR void					(VKAPI_CALL* CmdSetCoarseSampleOrderNVFunc)											(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, deUint32 customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
 typedef VKAPI_ATTR VkResult				(VKAPI_CALL* CreateAccelerationStructureNVFunc)										(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure);
+typedef VKAPI_ATTR void					(VKAPI_CALL* DestroyAccelerationStructureKHRFunc)									(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator);
 typedef VKAPI_ATTR void					(VKAPI_CALL* DestroyAccelerationStructureNVFunc)									(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator);
 typedef VKAPI_ATTR void					(VKAPI_CALL* GetAccelerationStructureMemoryRequirementsNVFunc)						(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements);
-typedef VKAPI_ATTR VkResult				(VKAPI_CALL* BindAccelerationStructureMemoryNVFunc)									(VkDevice device, deUint32 bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
-typedef VKAPI_ATTR void					(VKAPI_CALL* CmdBuildAccelerationStructureNVFunc)									(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset);
-typedef VKAPI_ATTR void					(VKAPI_CALL* CmdCopyAccelerationStructureNVFunc)									(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeNV mode);
+typedef VKAPI_ATTR VkResult				(VKAPI_CALL* BindAccelerationStructureMemoryKHRFunc)								(VkDevice device, deUint32 bindInfoCount, const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos);
+typedef VKAPI_ATTR VkResult				(VKAPI_CALL* BindAccelerationStructureMemoryNVFunc)									(VkDevice device, deUint32 bindInfoCount, const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos);
+typedef VKAPI_ATTR void					(VKAPI_CALL* CmdBuildAccelerationStructureNVFunc)									(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureKHR dst, VkAccelerationStructureKHR src, VkBuffer scratch, VkDeviceSize scratchOffset);
+typedef VKAPI_ATTR void					(VKAPI_CALL* CmdCopyAccelerationStructureNVFunc)									(VkCommandBuffer commandBuffer, VkAccelerationStructureKHR dst, VkAccelerationStructureKHR src, VkCopyAccelerationStructureModeKHR mode);
 typedef VKAPI_ATTR void					(VKAPI_CALL* CmdTraceRaysNVFunc)													(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, deUint32 width, deUint32 height, deUint32 depth);
 typedef VKAPI_ATTR VkResult				(VKAPI_CALL* CreateRayTracingPipelinesNVFunc)										(VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
+typedef VKAPI_ATTR VkResult				(VKAPI_CALL* GetRayTracingShaderGroupHandlesKHRFunc)								(VkDevice device, VkPipeline pipeline, deUint32 firstGroup, deUint32 groupCount, deUintptr dataSize, void* pData);
 typedef VKAPI_ATTR VkResult				(VKAPI_CALL* GetRayTracingShaderGroupHandlesNVFunc)									(VkDevice device, VkPipeline pipeline, deUint32 firstGroup, deUint32 groupCount, deUintptr dataSize, void* pData);
-typedef VKAPI_ATTR VkResult				(VKAPI_CALL* GetAccelerationStructureHandleNVFunc)									(VkDevice device, VkAccelerationStructureNV accelerationStructure, deUintptr dataSize, void* pData);
-typedef VKAPI_ATTR void					(VKAPI_CALL* CmdWriteAccelerationStructuresPropertiesNVFunc)						(VkCommandBuffer commandBuffer, deUint32 accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, deUint32 firstQuery);
+typedef VKAPI_ATTR VkResult				(VKAPI_CALL* GetAccelerationStructureHandleNVFunc)									(VkDevice device, VkAccelerationStructureKHR accelerationStructure, deUintptr dataSize, void* pData);
+typedef VKAPI_ATTR void					(VKAPI_CALL* CmdWriteAccelerationStructuresPropertiesKHRFunc)						(VkCommandBuffer commandBuffer, deUint32 accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, deUint32 firstQuery);
+typedef VKAPI_ATTR void					(VKAPI_CALL* CmdWriteAccelerationStructuresPropertiesNVFunc)						(VkCommandBuffer commandBuffer, deUint32 accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, deUint32 firstQuery);
 typedef VKAPI_ATTR VkResult				(VKAPI_CALL* CompileDeferredNVFunc)													(VkDevice device, VkPipeline pipeline, deUint32 shader);
 typedef VKAPI_ATTR VkResult				(VKAPI_CALL* GetMemoryHostPointerPropertiesEXTFunc)									(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
 typedef VKAPI_ATTR void					(VKAPI_CALL* CmdWriteBufferMarkerAMDFunc)											(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, deUint32 marker);
@@ -362,9 +358,54 @@
 typedef VKAPI_ATTR VkResult				(VKAPI_CALL* CreateHeadlessSurfaceEXTFunc)											(VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
 typedef VKAPI_ATTR void					(VKAPI_CALL* CmdSetLineStippleEXTFunc)												(VkCommandBuffer commandBuffer, deUint32 lineStippleFactor, deUint16 lineStipplePattern);
 typedef VKAPI_ATTR void					(VKAPI_CALL* ResetQueryPoolEXTFunc)													(VkDevice device, VkQueryPool queryPool, deUint32 firstQuery, deUint32 queryCount);
+typedef VKAPI_ATTR void					(VKAPI_CALL* CmdSetCullModeEXTFunc)													(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
+typedef VKAPI_ATTR void					(VKAPI_CALL* CmdSetFrontFaceEXTFunc)												(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
+typedef VKAPI_ATTR void					(VKAPI_CALL* CmdSetPrimitiveTopologyEXTFunc)										(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
+typedef VKAPI_ATTR void					(VKAPI_CALL* CmdSetViewportWithCountEXTFunc)										(VkCommandBuffer commandBuffer, deUint32 viewportCount, const VkViewport* pViewports);
+typedef VKAPI_ATTR void					(VKAPI_CALL* CmdSetScissorWithCountEXTFunc)											(VkCommandBuffer commandBuffer, deUint32 scissorCount, const VkRect2D* pScissors);
+typedef VKAPI_ATTR void					(VKAPI_CALL* CmdBindVertexBuffers2EXTFunc)											(VkCommandBuffer commandBuffer, deUint32 firstBinding, deUint32 bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides);
+typedef VKAPI_ATTR void					(VKAPI_CALL* CmdSetDepthTestEnableEXTFunc)											(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
+typedef VKAPI_ATTR void					(VKAPI_CALL* CmdSetDepthWriteEnableEXTFunc)											(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
+typedef VKAPI_ATTR void					(VKAPI_CALL* CmdSetDepthCompareOpEXTFunc)											(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
+typedef VKAPI_ATTR void					(VKAPI_CALL* CmdSetDepthBoundsTestEnableEXTFunc)									(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
+typedef VKAPI_ATTR void					(VKAPI_CALL* CmdSetStencilTestEnableEXTFunc)										(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
+typedef VKAPI_ATTR void					(VKAPI_CALL* CmdSetStencilOpEXTFunc)												(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
+typedef VKAPI_ATTR void					(VKAPI_CALL* GetGeneratedCommandsMemoryRequirementsNVFunc)							(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements);
+typedef VKAPI_ATTR void					(VKAPI_CALL* CmdPreprocessGeneratedCommandsNVFunc)									(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
+typedef VKAPI_ATTR void					(VKAPI_CALL* CmdExecuteGeneratedCommandsNVFunc)										(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
+typedef VKAPI_ATTR void					(VKAPI_CALL* CmdBindPipelineShaderGroupNVFunc)										(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, deUint32 groupIndex);
+typedef VKAPI_ATTR VkResult				(VKAPI_CALL* CreateIndirectCommandsLayoutNVFunc)									(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout);
+typedef VKAPI_ATTR void					(VKAPI_CALL* DestroyIndirectCommandsLayoutNVFunc)									(VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult				(VKAPI_CALL* CreatePrivateDataSlotEXTFunc)											(VkDevice device, const VkPrivateDataSlotCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlotEXT* pPrivateDataSlot);
+typedef VKAPI_ATTR void					(VKAPI_CALL* DestroyPrivateDataSlotEXTFunc)											(VkDevice device, VkPrivateDataSlotEXT privateDataSlot, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR VkResult				(VKAPI_CALL* SetPrivateDataEXTFunc)													(VkDevice device, VkObjectType objectType, deUint64 objectHandle, VkPrivateDataSlotEXT privateDataSlot, deUint64 data);
+typedef VKAPI_ATTR void					(VKAPI_CALL* GetPrivateDataEXTFunc)													(VkDevice device, VkObjectType objectType, deUint64 objectHandle, VkPrivateDataSlotEXT privateDataSlot, deUint64* pData);
 typedef VKAPI_ATTR VkResult				(VKAPI_CALL* CreateAndroidSurfaceKHRFunc)											(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
 typedef VKAPI_ATTR VkResult				(VKAPI_CALL* GetAndroidHardwareBufferPropertiesANDROIDFunc)							(VkDevice device, const struct pt::AndroidHardwareBufferPtr buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties);
 typedef VKAPI_ATTR VkResult				(VKAPI_CALL* GetMemoryAndroidHardwareBufferANDROIDFunc)								(VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct pt::AndroidHardwareBufferPtr* pBuffer);
+typedef VKAPI_ATTR VkResult				(VKAPI_CALL* CreateDeferredOperationKHRFunc)										(VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation);
+typedef VKAPI_ATTR void					(VKAPI_CALL* DestroyDeferredOperationKHRFunc)										(VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator);
+typedef VKAPI_ATTR uint32_t				(VKAPI_CALL* GetDeferredOperationMaxConcurrencyKHRFunc)								(VkDevice device, VkDeferredOperationKHR operation);
+typedef VKAPI_ATTR VkResult				(VKAPI_CALL* GetDeferredOperationResultKHRFunc)										(VkDevice device, VkDeferredOperationKHR operation);
+typedef VKAPI_ATTR VkResult				(VKAPI_CALL* DeferredOperationJoinKHRFunc)											(VkDevice device, VkDeferredOperationKHR operation);
+typedef VKAPI_ATTR VkResult				(VKAPI_CALL* CreateAccelerationStructureKHRFunc)									(VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure);
+typedef VKAPI_ATTR void					(VKAPI_CALL* GetAccelerationStructureMemoryRequirementsKHRFunc)						(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoKHR* pInfo, VkMemoryRequirements2* pMemoryRequirements);
+typedef VKAPI_ATTR void					(VKAPI_CALL* CmdBuildAccelerationStructureKHRFunc)									(VkCommandBuffer commandBuffer, deUint32 infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildOffsetInfoKHR* const* ppOffsetInfos);
+typedef VKAPI_ATTR void					(VKAPI_CALL* CmdBuildAccelerationStructureIndirectKHRFunc)							(VkCommandBuffer commandBuffer, const VkAccelerationStructureBuildGeometryInfoKHR* pInfo, VkBuffer indirectBuffer, VkDeviceSize indirectOffset, deUint32 indirectStride);
+typedef VKAPI_ATTR VkResult				(VKAPI_CALL* BuildAccelerationStructureKHRFunc)										(VkDevice device, deUint32 infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildOffsetInfoKHR* const* ppOffsetInfos);
+typedef VKAPI_ATTR VkResult				(VKAPI_CALL* CopyAccelerationStructureKHRFunc)										(VkDevice device, const VkCopyAccelerationStructureInfoKHR* pInfo);
+typedef VKAPI_ATTR VkResult				(VKAPI_CALL* CopyAccelerationStructureToMemoryKHRFunc)								(VkDevice device, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
+typedef VKAPI_ATTR VkResult				(VKAPI_CALL* CopyMemoryToAccelerationStructureKHRFunc)								(VkDevice device, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
+typedef VKAPI_ATTR VkResult				(VKAPI_CALL* WriteAccelerationStructuresPropertiesKHRFunc)							(VkDevice device, deUint32 accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, deUintptr dataSize, void* pData, deUintptr stride);
+typedef VKAPI_ATTR void					(VKAPI_CALL* CmdCopyAccelerationStructureKHRFunc)									(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo);
+typedef VKAPI_ATTR void					(VKAPI_CALL* CmdCopyAccelerationStructureToMemoryKHRFunc)							(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
+typedef VKAPI_ATTR void					(VKAPI_CALL* CmdCopyMemoryToAccelerationStructureKHRFunc)							(VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
+typedef VKAPI_ATTR void					(VKAPI_CALL* CmdTraceRaysKHRFunc)													(VkCommandBuffer commandBuffer, const VkStridedBufferRegionKHR* pRaygenShaderBindingTable, const VkStridedBufferRegionKHR* pMissShaderBindingTable, const VkStridedBufferRegionKHR* pHitShaderBindingTable, const VkStridedBufferRegionKHR* pCallableShaderBindingTable, deUint32 width, deUint32 height, deUint32 depth);
+typedef VKAPI_ATTR VkResult				(VKAPI_CALL* CreateRayTracingPipelinesKHRFunc)										(VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
+typedef VKAPI_ATTR VkDeviceAddress		(VKAPI_CALL* GetAccelerationStructureDeviceAddressKHRFunc)							(VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
+typedef VKAPI_ATTR VkResult				(VKAPI_CALL* GetRayTracingCaptureReplayShaderGroupHandlesKHRFunc)					(VkDevice device, VkPipeline pipeline, deUint32 firstGroup, deUint32 groupCount, deUintptr dataSize, void* pData);
+typedef VKAPI_ATTR void					(VKAPI_CALL* CmdTraceRaysIndirectKHRFunc)											(VkCommandBuffer commandBuffer, const VkStridedBufferRegionKHR* pRaygenShaderBindingTable, const VkStridedBufferRegionKHR* pMissShaderBindingTable, const VkStridedBufferRegionKHR* pHitShaderBindingTable, const VkStridedBufferRegionKHR* pCallableShaderBindingTable, VkBuffer buffer, VkDeviceSize offset);
+typedef VKAPI_ATTR VkResult				(VKAPI_CALL* GetDeviceAccelerationStructureCompatibilityKHRFunc)					(VkDevice device, const VkAccelerationStructureVersionKHR* version);
 typedef VKAPI_ATTR VkResult				(VKAPI_CALL* CreateImagePipeSurfaceFUCHSIAFunc)										(VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
 typedef VKAPI_ATTR VkResult				(VKAPI_CALL* CreateStreamDescriptorSurfaceGGPFunc)									(VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
 typedef VKAPI_ATTR VkResult				(VKAPI_CALL* CreateIOSSurfaceMVKFunc)												(VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
diff --git a/external/vulkancts/framework/vulkan/vkGetStructureTypeImpl.inl b/external/vulkancts/framework/vulkan/vkGetStructureTypeImpl.inl
index deb36cf..8e2e482 100644
--- a/external/vulkancts/framework/vulkan/vkGetStructureTypeImpl.inl
+++ b/external/vulkancts/framework/vulkan/vkGetStructureTypeImpl.inl
@@ -1,6 +1,21 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  */
+template<> VkStructureType getStructureType<VkBufferMemoryBarrier> (void)
+{
+	return VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER;
+}
+
+template<> VkStructureType getStructureType<VkImageMemoryBarrier> (void)
+{
+	return VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
+}
+
+template<> VkStructureType getStructureType<VkMemoryBarrier> (void)
+{
+	return VK_STRUCTURE_TYPE_MEMORY_BARRIER;
+}
+
 template<> VkStructureType getStructureType<VkApplicationInfo> (void)
 {
 	return VK_STRUCTURE_TYPE_APPLICATION_INFO;
@@ -26,16 +41,16 @@
 	return VK_STRUCTURE_TYPE_SUBMIT_INFO;
 }
 
-template<> VkStructureType getStructureType<VkMemoryAllocateInfo> (void)
-{
-	return VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO;
-}
-
 template<> VkStructureType getStructureType<VkMappedMemoryRange> (void)
 {
 	return VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE;
 }
 
+template<> VkStructureType getStructureType<VkMemoryAllocateInfo> (void)
+{
+	return VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO;
+}
+
 template<> VkStructureType getStructureType<VkBindSparseInfo> (void)
 {
 	return VK_STRUCTURE_TYPE_BIND_SPARSE_INFO;
@@ -96,6 +111,11 @@
 	return VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;
 }
 
+template<> VkStructureType getStructureType<VkComputePipelineCreateInfo> (void)
+{
+	return VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO;
+}
+
 template<> VkStructureType getStructureType<VkPipelineVertexInputStateCreateInfo> (void)
 {
 	return VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO;
@@ -146,11 +166,6 @@
 	return VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkComputePipelineCreateInfo> (void)
-{
-	return VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO;
-}
-
 template<> VkStructureType getStructureType<VkPipelineLayoutCreateInfo> (void)
 {
 	return VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO;
@@ -161,9 +176,9 @@
 	return VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO;
 }
 
-template<> VkStructureType getStructureType<VkDescriptorSetLayoutCreateInfo> (void)
+template<> VkStructureType getStructureType<VkCopyDescriptorSet> (void)
 {
-	return VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
+	return VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET;
 }
 
 template<> VkStructureType getStructureType<VkDescriptorPoolCreateInfo> (void)
@@ -176,16 +191,16 @@
 	return VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO;
 }
 
+template<> VkStructureType getStructureType<VkDescriptorSetLayoutCreateInfo> (void)
+{
+	return VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
+}
+
 template<> VkStructureType getStructureType<VkWriteDescriptorSet> (void)
 {
 	return VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
 }
 
-template<> VkStructureType getStructureType<VkCopyDescriptorSet> (void)
-{
-	return VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET;
-}
-
 template<> VkStructureType getStructureType<VkFramebufferCreateInfo> (void)
 {
 	return VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO;
@@ -216,21 +231,6 @@
 	return VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
 }
 
-template<> VkStructureType getStructureType<VkMemoryBarrier> (void)
-{
-	return VK_STRUCTURE_TYPE_MEMORY_BARRIER;
-}
-
-template<> VkStructureType getStructureType<VkBufferMemoryBarrier> (void)
-{
-	return VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER;
-}
-
-template<> VkStructureType getStructureType<VkImageMemoryBarrier> (void)
-{
-	return VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
-}
-
 template<> VkStructureType getStructureType<VkRenderPassBeginInfo> (void)
 {
 	return VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO;
@@ -1091,6 +1091,11 @@
 	return VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX;
 }
 
+template<> VkStructureType getStructureType<VkImageViewAddressPropertiesNVX> (void)
+{
+	return VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX;
+}
+
 template<> VkStructureType getStructureType<VkTextureLODGatherFormatPropertiesAMD> (void)
 {
 	return VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD;
@@ -1146,36 +1151,6 @@
 	return VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT;
 }
 
-template<> VkStructureType getStructureType<VkDeviceGeneratedCommandsFeaturesNVX> (void)
-{
-	return VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX;
-}
-
-template<> VkStructureType getStructureType<VkDeviceGeneratedCommandsLimitsNVX> (void)
-{
-	return VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX;
-}
-
-template<> VkStructureType getStructureType<VkIndirectCommandsLayoutCreateInfoNVX> (void)
-{
-	return VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX;
-}
-
-template<> VkStructureType getStructureType<VkCmdProcessCommandsInfoNVX> (void)
-{
-	return VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX;
-}
-
-template<> VkStructureType getStructureType<VkCmdReserveSpaceForCommandsInfoNVX> (void)
-{
-	return VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX;
-}
-
-template<> VkStructureType getStructureType<VkObjectTableCreateInfoNVX> (void)
-{
-	return VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX;
-}
-
 template<> VkStructureType getStructureType<VkPipelineViewportWScalingStateCreateInfoNV> (void)
 {
 	return VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV;
@@ -1256,21 +1231,16 @@
 	return VK_STRUCTURE_TYPE_HDR_METADATA_EXT;
 }
 
-template<> VkStructureType getStructureType<VkDebugUtilsObjectNameInfoEXT> (void)
-{
-	return VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT;
-}
-
-template<> VkStructureType getStructureType<VkDebugUtilsObjectTagInfoEXT> (void)
-{
-	return VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT;
-}
-
 template<> VkStructureType getStructureType<VkDebugUtilsLabelEXT> (void)
 {
 	return VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT;
 }
 
+template<> VkStructureType getStructureType<VkDebugUtilsObjectNameInfoEXT> (void)
+{
+	return VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT;
+}
+
 template<> VkStructureType getStructureType<VkDebugUtilsMessengerCallbackDataEXT> (void)
 {
 	return VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT;
@@ -1281,6 +1251,11 @@
 	return VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT;
 }
 
+template<> VkStructureType getStructureType<VkDebugUtilsObjectTagInfoEXT> (void)
+{
+	return VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT;
+}
+
 template<> VkStructureType getStructureType<VkPhysicalDeviceInlineUniformBlockFeaturesEXT> (void)
 {
 	return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT;
@@ -1451,14 +1426,14 @@
 	return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV;
 }
 
-template<> VkStructureType getStructureType<VkBindAccelerationStructureMemoryInfoNV> (void)
+template<> VkStructureType getStructureType<VkBindAccelerationStructureMemoryInfoKHR> (void)
 {
-	return VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV;
+	return VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR;
 }
 
-template<> VkStructureType getStructureType<VkWriteDescriptorSetAccelerationStructureNV> (void)
+template<> VkStructureType getStructureType<VkWriteDescriptorSetAccelerationStructureKHR> (void)
 {
-	return VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV;
+	return VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR;
 }
 
 template<> VkStructureType getStructureType<VkAccelerationStructureMemoryRequirementsInfoNV> (void)
@@ -1606,9 +1581,9 @@
 	return VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL;
 }
 
-template<> VkStructureType getStructureType<VkQueryPoolCreateInfoINTEL> (void)
+template<> VkStructureType getStructureType<VkQueryPoolPerformanceQueryCreateInfoINTEL> (void)
 {
-	return VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL;
+	return VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL;
 }
 
 template<> VkStructureType getStructureType<VkPerformanceMarkerInfoINTEL> (void)
@@ -1791,11 +1766,56 @@
 	return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT;
 }
 
+template<> VkStructureType getStructureType<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT> (void)
+{
+	return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT;
+}
+
 template<> VkStructureType getStructureType<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT> (void)
 {
 	return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT;
 }
 
+template<> VkStructureType getStructureType<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV> (void)
+{
+	return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV> (void)
+{
+	return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV;
+}
+
+template<> VkStructureType getStructureType<VkGraphicsShaderGroupCreateInfoNV> (void)
+{
+	return VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV;
+}
+
+template<> VkStructureType getStructureType<VkGraphicsPipelineShaderGroupsCreateInfoNV> (void)
+{
+	return VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV;
+}
+
+template<> VkStructureType getStructureType<VkIndirectCommandsLayoutTokenNV> (void)
+{
+	return VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV;
+}
+
+template<> VkStructureType getStructureType<VkIndirectCommandsLayoutCreateInfoNV> (void)
+{
+	return VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV;
+}
+
+template<> VkStructureType getStructureType<VkGeneratedCommandsInfoNV> (void)
+{
+	return VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV;
+}
+
+template<> VkStructureType getStructureType<VkGeneratedCommandsMemoryRequirementsInfoNV> (void)
+{
+	return VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV;
+}
+
 template<> VkStructureType getStructureType<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT> (void)
 {
 	return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT;
@@ -1806,6 +1826,81 @@
 	return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT;
 }
 
+template<> VkStructureType getStructureType<VkRenderPassTransformBeginInfoQCOM> (void)
+{
+	return VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM;
+}
+
+template<> VkStructureType getStructureType<VkCommandBufferInheritanceRenderPassTransformInfoQCOM> (void)
+{
+	return VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceRobustness2FeaturesEXT> (void)
+{
+	return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceRobustness2PropertiesEXT> (void)
+{
+	return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT;
+}
+
+template<> VkStructureType getStructureType<VkSamplerCustomBorderColorCreateInfoEXT> (void)
+{
+	return VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceCustomBorderColorPropertiesEXT> (void)
+{
+	return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceCustomBorderColorFeaturesEXT> (void)
+{
+	return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDevicePrivateDataFeaturesEXT> (void)
+{
+	return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT;
+}
+
+template<> VkStructureType getStructureType<VkDevicePrivateDataCreateInfoEXT> (void)
+{
+	return VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT;
+}
+
+template<> VkStructureType getStructureType<VkPrivateDataSlotCreateInfoEXT> (void)
+{
+	return VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT> (void)
+{
+	return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceDiagnosticsConfigFeaturesNV> (void)
+{
+	return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV;
+}
+
+template<> VkStructureType getStructureType<VkDeviceDiagnosticsConfigCreateInfoNV> (void)
+{
+	return VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT> (void)
+{
+	return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT> (void)
+{
+	return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT;
+}
+
 template<> VkStructureType getStructureType<VkAndroidSurfaceCreateInfoKHR> (void)
 {
 	return VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR;
@@ -1841,6 +1936,106 @@
 	return VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID;
 }
 
+template<> VkStructureType getStructureType<VkDeferredOperationInfoKHR> (void)
+{
+	return VK_STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkPipelineLibraryCreateInfoKHR> (void)
+{
+	return VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkRayTracingShaderGroupCreateInfoKHR> (void)
+{
+	return VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkRayTracingPipelineInterfaceCreateInfoKHR> (void)
+{
+	return VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkRayTracingPipelineCreateInfoKHR> (void)
+{
+	return VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkAccelerationStructureGeometryTrianglesDataKHR> (void)
+{
+	return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR;
+}
+
+template<> VkStructureType getStructureType<VkAccelerationStructureGeometryAabbsDataKHR> (void)
+{
+	return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR;
+}
+
+template<> VkStructureType getStructureType<VkAccelerationStructureGeometryInstancesDataKHR> (void)
+{
+	return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR;
+}
+
+template<> VkStructureType getStructureType<VkAccelerationStructureGeometryKHR> (void)
+{
+	return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR;
+}
+
+template<> VkStructureType getStructureType<VkAccelerationStructureBuildGeometryInfoKHR> (void)
+{
+	return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkAccelerationStructureCreateGeometryTypeInfoKHR> (void)
+{
+	return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_GEOMETRY_TYPE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkAccelerationStructureCreateInfoKHR> (void)
+{
+	return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkAccelerationStructureMemoryRequirementsInfoKHR> (void)
+{
+	return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceRayTracingFeaturesKHR> (void)
+{
+	return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_FEATURES_KHR;
+}
+
+template<> VkStructureType getStructureType<VkPhysicalDeviceRayTracingPropertiesKHR> (void)
+{
+	return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_KHR;
+}
+
+template<> VkStructureType getStructureType<VkAccelerationStructureDeviceAddressInfoKHR> (void)
+{
+	return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkAccelerationStructureVersionKHR> (void)
+{
+	return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_KHR;
+}
+
+template<> VkStructureType getStructureType<VkCopyAccelerationStructureToMemoryInfoKHR> (void)
+{
+	return VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkCopyMemoryToAccelerationStructureInfoKHR> (void)
+{
+	return VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR;
+}
+
+template<> VkStructureType getStructureType<VkCopyAccelerationStructureInfoKHR> (void)
+{
+	return VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR;
+}
+
 template<> VkStructureType getStructureType<VkImagePipeSurfaceCreateInfoFUCHSIA> (void)
 {
 	return VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA;
diff --git a/external/vulkancts/framework/vulkan/vkHandleType.inl b/external/vulkancts/framework/vulkan/vkHandleType.inl
index 3075693..2233537 100644
--- a/external/vulkancts/framework/vulkan/vkHandleType.inl
+++ b/external/vulkancts/framework/vulkan/vkHandleType.inl
@@ -3,7 +3,9 @@
  */
 enum HandleType
 {
-	HANDLE_TYPE_INSTANCE							= 0,
+	HANDLE_TYPE_BUFFER								= 0,
+	HANDLE_TYPE_IMAGE,
+	HANDLE_TYPE_INSTANCE,
 	HANDLE_TYPE_PHYSICAL_DEVICE,
 	HANDLE_TYPE_DEVICE,
 	HANDLE_TYPE_QUEUE,
@@ -11,8 +13,6 @@
 	HANDLE_TYPE_COMMAND_BUFFER,
 	HANDLE_TYPE_FENCE,
 	HANDLE_TYPE_DEVICE_MEMORY,
-	HANDLE_TYPE_BUFFER,
-	HANDLE_TYPE_IMAGE,
 	HANDLE_TYPE_EVENT,
 	HANDLE_TYPE_QUERY_POOL,
 	HANDLE_TYPE_BUFFER_VIEW,
@@ -20,12 +20,12 @@
 	HANDLE_TYPE_SHADER_MODULE,
 	HANDLE_TYPE_PIPELINE_CACHE,
 	HANDLE_TYPE_PIPELINE_LAYOUT,
-	HANDLE_TYPE_RENDER_PASS,
 	HANDLE_TYPE_PIPELINE,
+	HANDLE_TYPE_RENDER_PASS,
 	HANDLE_TYPE_DESCRIPTOR_SET_LAYOUT,
 	HANDLE_TYPE_SAMPLER,
-	HANDLE_TYPE_DESCRIPTOR_POOL,
 	HANDLE_TYPE_DESCRIPTOR_SET,
+	HANDLE_TYPE_DESCRIPTOR_POOL,
 	HANDLE_TYPE_FRAMEBUFFER,
 	HANDLE_TYPE_COMMAND_POOL,
 	HANDLE_TYPE_SAMPLER_YCBCR_CONVERSION,
@@ -35,12 +35,16 @@
 	HANDLE_TYPE_DISPLAY_KHR,
 	HANDLE_TYPE_DISPLAY_MODE_KHR,
 	HANDLE_TYPE_DEBUG_REPORT_CALLBACK_EXT,
-	HANDLE_TYPE_OBJECT_TABLE_NVX,
-	HANDLE_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX,
 	HANDLE_TYPE_DEBUG_UTILS_MESSENGER_EXT,
 	HANDLE_TYPE_VALIDATION_CACHE_EXT,
-	HANDLE_TYPE_ACCELERATION_STRUCTURE_NV,
+	HANDLE_TYPE_ACCELERATION_STRUCTURE_KHR,
 	HANDLE_TYPE_PERFORMANCE_CONFIGURATION_INTEL,
-	HANDLE_TYPE_LAST								= HANDLE_TYPE_PERFORMANCE_CONFIGURATION_INTEL + 1
+	HANDLE_TYPE_INDIRECT_COMMANDS_LAYOUT_NV,
+	HANDLE_TYPE_PRIVATE_DATA_SLOT_EXT,
+	HANDLE_TYPE_DEFERRED_OPERATION_KHR,
+	HANDLE_TYPE_ACCELERATION_STRUCTURE_NV,
+	HANDLE_TYPE_SAMPLER_YCBCR_CONVERSION_KHR		= HANDLE_TYPE_SAMPLER_YCBCR_CONVERSION,
+	HANDLE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR		= HANDLE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
+	HANDLE_TYPE_LAST								= HANDLE_TYPE_ACCELERATION_STRUCTURE_NV + 1
 };
 
diff --git a/external/vulkancts/framework/vulkan/vkImageUtil.cpp b/external/vulkancts/framework/vulkan/vkImageUtil.cpp
index ad3b767..f7f38d3 100644
--- a/external/vulkancts/framework/vulkan/vkImageUtil.cpp
+++ b/external/vulkancts/framework/vulkan/vkImageUtil.cpp
@@ -3392,16 +3392,19 @@
 
 VkFilter mapFilterMode (tcu::Sampler::FilterMode filterMode)
 {
-	DE_STATIC_ASSERT(tcu::Sampler::FILTERMODE_LAST == 6);
+	DE_STATIC_ASSERT(tcu::Sampler::FILTERMODE_LAST == 9);
 
 	switch (filterMode)
 	{
 		case tcu::Sampler::NEAREST:					return VK_FILTER_NEAREST;
 		case tcu::Sampler::LINEAR:					return VK_FILTER_LINEAR;
+		case tcu::Sampler::CUBIC:					return VK_FILTER_CUBIC_EXT;
 		case tcu::Sampler::NEAREST_MIPMAP_NEAREST:	return VK_FILTER_NEAREST;
 		case tcu::Sampler::NEAREST_MIPMAP_LINEAR:	return VK_FILTER_NEAREST;
 		case tcu::Sampler::LINEAR_MIPMAP_NEAREST:	return VK_FILTER_LINEAR;
 		case tcu::Sampler::LINEAR_MIPMAP_LINEAR:	return VK_FILTER_LINEAR;
+		case tcu::Sampler::CUBIC_MIPMAP_NEAREST:	return VK_FILTER_CUBIC_EXT;
+		case tcu::Sampler::CUBIC_MIPMAP_LINEAR:		return VK_FILTER_CUBIC_EXT;
 		default:
 			DE_FATAL("Illegal filter mode");
 			return (VkFilter)0;
@@ -3410,7 +3413,7 @@
 
 VkSamplerMipmapMode mapMipmapMode (tcu::Sampler::FilterMode filterMode)
 {
-	DE_STATIC_ASSERT(tcu::Sampler::FILTERMODE_LAST == 6);
+	DE_STATIC_ASSERT(tcu::Sampler::FILTERMODE_LAST == 9);
 
 	// \note VkSamplerCreateInfo doesn't have a flag for disabling mipmapping. Instead
 	//		 minLod = 0 and maxLod = 0.25 should be used to match OpenGL NEAREST and LINEAR
@@ -3420,10 +3423,13 @@
 	{
 		case tcu::Sampler::NEAREST:					return VK_SAMPLER_MIPMAP_MODE_NEAREST;
 		case tcu::Sampler::LINEAR:					return VK_SAMPLER_MIPMAP_MODE_NEAREST;
+		case tcu::Sampler::CUBIC:					return VK_SAMPLER_MIPMAP_MODE_NEAREST;
 		case tcu::Sampler::NEAREST_MIPMAP_NEAREST:	return VK_SAMPLER_MIPMAP_MODE_NEAREST;
 		case tcu::Sampler::NEAREST_MIPMAP_LINEAR:	return VK_SAMPLER_MIPMAP_MODE_LINEAR;
 		case tcu::Sampler::LINEAR_MIPMAP_NEAREST:	return VK_SAMPLER_MIPMAP_MODE_NEAREST;
 		case tcu::Sampler::LINEAR_MIPMAP_LINEAR:	return VK_SAMPLER_MIPMAP_MODE_LINEAR;
+		case tcu::Sampler::CUBIC_MIPMAP_NEAREST:	return VK_SAMPLER_MIPMAP_MODE_NEAREST;
+		case tcu::Sampler::CUBIC_MIPMAP_LINEAR:		return VK_SAMPLER_MIPMAP_MODE_LINEAR;
 		default:
 			DE_FATAL("Illegal filter mode");
 			return (VkSamplerMipmapMode)0;
@@ -3492,7 +3498,7 @@
 	}
 
 	DE_FATAL("Unsupported border color");
-	return VK_BORDER_COLOR_LAST;
+	return VK_BORDER_COLOR_MAX_ENUM;
 }
 
 VkSamplerCreateInfo mapSampler (const tcu::Sampler& sampler, const tcu::TextureFormat& format, float minLod, float maxLod, bool unnormal)
@@ -3679,6 +3685,15 @@
 					break;
 			}
 			break;
+		case VK_FILTER_CUBIC_EXT:
+			switch (mipMode)
+			{
+			case VK_SAMPLER_MIPMAP_MODE_LINEAR:		return tcu::Sampler::CUBIC_MIPMAP_LINEAR;
+			case VK_SAMPLER_MIPMAP_MODE_NEAREST:	return tcu::Sampler::CUBIC_MIPMAP_NEAREST;
+			default:
+				break;
+			}
+			break;
 
 		default:
 			break;
@@ -3694,6 +3709,7 @@
 	{
 		case VK_FILTER_LINEAR:		return tcu::Sampler::LINEAR;
 		case VK_FILTER_NEAREST:		return tcu::Sampler::NEAREST;
+		case VK_FILTER_CUBIC_EXT:	return tcu::Sampler::CUBIC;
 		default:
 			break;
 	}
diff --git a/external/vulkancts/framework/vulkan/vkInitDeviceFunctionPointers.inl b/external/vulkancts/framework/vulkan/vkInitDeviceFunctionPointers.inl
index cf1c172..70dee4f 100644
--- a/external/vulkancts/framework/vulkan/vkInitDeviceFunctionPointers.inl
+++ b/external/vulkancts/framework/vulkan/vkInitDeviceFunctionPointers.inl
@@ -242,19 +242,12 @@
 m_vk.cmdEndQueryIndexedEXT								= (CmdEndQueryIndexedEXTFunc)							GET_PROC_ADDR("vkCmdEndQueryIndexedEXT");
 m_vk.cmdDrawIndirectByteCountEXT						= (CmdDrawIndirectByteCountEXTFunc)						GET_PROC_ADDR("vkCmdDrawIndirectByteCountEXT");
 m_vk.getImageViewHandleNVX								= (GetImageViewHandleNVXFunc)							GET_PROC_ADDR("vkGetImageViewHandleNVX");
+m_vk.getImageViewAddressNVX								= (GetImageViewAddressNVXFunc)							GET_PROC_ADDR("vkGetImageViewAddressNVX");
 m_vk.cmdDrawIndirectCountAMD							= (CmdDrawIndirectCountAMDFunc)							GET_PROC_ADDR("vkCmdDrawIndirectCountAMD");
 m_vk.cmdDrawIndexedIndirectCountAMD						= (CmdDrawIndexedIndirectCountAMDFunc)					GET_PROC_ADDR("vkCmdDrawIndexedIndirectCountAMD");
 m_vk.getShaderInfoAMD									= (GetShaderInfoAMDFunc)								GET_PROC_ADDR("vkGetShaderInfoAMD");
 m_vk.cmdBeginConditionalRenderingEXT					= (CmdBeginConditionalRenderingEXTFunc)					GET_PROC_ADDR("vkCmdBeginConditionalRenderingEXT");
 m_vk.cmdEndConditionalRenderingEXT						= (CmdEndConditionalRenderingEXTFunc)					GET_PROC_ADDR("vkCmdEndConditionalRenderingEXT");
-m_vk.cmdProcessCommandsNVX								= (CmdProcessCommandsNVXFunc)							GET_PROC_ADDR("vkCmdProcessCommandsNVX");
-m_vk.cmdReserveSpaceForCommandsNVX						= (CmdReserveSpaceForCommandsNVXFunc)					GET_PROC_ADDR("vkCmdReserveSpaceForCommandsNVX");
-m_vk.createIndirectCommandsLayoutNVX					= (CreateIndirectCommandsLayoutNVXFunc)					GET_PROC_ADDR("vkCreateIndirectCommandsLayoutNVX");
-m_vk.destroyIndirectCommandsLayoutNVX					= (DestroyIndirectCommandsLayoutNVXFunc)				GET_PROC_ADDR("vkDestroyIndirectCommandsLayoutNVX");
-m_vk.createObjectTableNVX								= (CreateObjectTableNVXFunc)							GET_PROC_ADDR("vkCreateObjectTableNVX");
-m_vk.destroyObjectTableNVX								= (DestroyObjectTableNVXFunc)							GET_PROC_ADDR("vkDestroyObjectTableNVX");
-m_vk.registerObjectsNVX									= (RegisterObjectsNVXFunc)								GET_PROC_ADDR("vkRegisterObjectsNVX");
-m_vk.unregisterObjectsNVX								= (UnregisterObjectsNVXFunc)							GET_PROC_ADDR("vkUnregisterObjectsNVX");
 m_vk.cmdSetViewportWScalingNV							= (CmdSetViewportWScalingNVFunc)						GET_PROC_ADDR("vkCmdSetViewportWScalingNV");
 m_vk.displayPowerControlEXT								= (DisplayPowerControlEXTFunc)							GET_PROC_ADDR("vkDisplayPowerControlEXT");
 m_vk.registerDeviceEventEXT								= (RegisterDeviceEventEXTFunc)							GET_PROC_ADDR("vkRegisterDeviceEventEXT");
@@ -282,15 +275,19 @@
 m_vk.cmdSetViewportShadingRatePaletteNV					= (CmdSetViewportShadingRatePaletteNVFunc)				GET_PROC_ADDR("vkCmdSetViewportShadingRatePaletteNV");
 m_vk.cmdSetCoarseSampleOrderNV							= (CmdSetCoarseSampleOrderNVFunc)						GET_PROC_ADDR("vkCmdSetCoarseSampleOrderNV");
 m_vk.createAccelerationStructureNV						= (CreateAccelerationStructureNVFunc)					GET_PROC_ADDR("vkCreateAccelerationStructureNV");
+m_vk.destroyAccelerationStructureKHR					= (DestroyAccelerationStructureKHRFunc)					GET_PROC_ADDR("vkDestroyAccelerationStructureKHR");
 m_vk.destroyAccelerationStructureNV						= (DestroyAccelerationStructureNVFunc)					GET_PROC_ADDR("vkDestroyAccelerationStructureNV");
 m_vk.getAccelerationStructureMemoryRequirementsNV		= (GetAccelerationStructureMemoryRequirementsNVFunc)	GET_PROC_ADDR("vkGetAccelerationStructureMemoryRequirementsNV");
+m_vk.bindAccelerationStructureMemoryKHR					= (BindAccelerationStructureMemoryKHRFunc)				GET_PROC_ADDR("vkBindAccelerationStructureMemoryKHR");
 m_vk.bindAccelerationStructureMemoryNV					= (BindAccelerationStructureMemoryNVFunc)				GET_PROC_ADDR("vkBindAccelerationStructureMemoryNV");
 m_vk.cmdBuildAccelerationStructureNV					= (CmdBuildAccelerationStructureNVFunc)					GET_PROC_ADDR("vkCmdBuildAccelerationStructureNV");
 m_vk.cmdCopyAccelerationStructureNV						= (CmdCopyAccelerationStructureNVFunc)					GET_PROC_ADDR("vkCmdCopyAccelerationStructureNV");
 m_vk.cmdTraceRaysNV										= (CmdTraceRaysNVFunc)									GET_PROC_ADDR("vkCmdTraceRaysNV");
 m_vk.createRayTracingPipelinesNV						= (CreateRayTracingPipelinesNVFunc)						GET_PROC_ADDR("vkCreateRayTracingPipelinesNV");
+m_vk.getRayTracingShaderGroupHandlesKHR					= (GetRayTracingShaderGroupHandlesKHRFunc)				GET_PROC_ADDR("vkGetRayTracingShaderGroupHandlesKHR");
 m_vk.getRayTracingShaderGroupHandlesNV					= (GetRayTracingShaderGroupHandlesNVFunc)				GET_PROC_ADDR("vkGetRayTracingShaderGroupHandlesNV");
 m_vk.getAccelerationStructureHandleNV					= (GetAccelerationStructureHandleNVFunc)				GET_PROC_ADDR("vkGetAccelerationStructureHandleNV");
+m_vk.cmdWriteAccelerationStructuresPropertiesKHR		= (CmdWriteAccelerationStructuresPropertiesKHRFunc)		GET_PROC_ADDR("vkCmdWriteAccelerationStructuresPropertiesKHR");
 m_vk.cmdWriteAccelerationStructuresPropertiesNV			= (CmdWriteAccelerationStructuresPropertiesNVFunc)		GET_PROC_ADDR("vkCmdWriteAccelerationStructuresPropertiesNV");
 m_vk.compileDeferredNV									= (CompileDeferredNVFunc)								GET_PROC_ADDR("vkCompileDeferredNV");
 m_vk.getMemoryHostPointerPropertiesEXT					= (GetMemoryHostPointerPropertiesEXTFunc)				GET_PROC_ADDR("vkGetMemoryHostPointerPropertiesEXT");
@@ -314,8 +311,53 @@
 m_vk.setLocalDimmingAMD									= (SetLocalDimmingAMDFunc)								GET_PROC_ADDR("vkSetLocalDimmingAMD");
 m_vk.getBufferDeviceAddressEXT							= (GetBufferDeviceAddressEXTFunc)						GET_PROC_ADDR("vkGetBufferDeviceAddressEXT");
 m_vk.cmdSetLineStippleEXT								= (CmdSetLineStippleEXTFunc)							GET_PROC_ADDR("vkCmdSetLineStippleEXT");
+m_vk.cmdSetCullModeEXT									= (CmdSetCullModeEXTFunc)								GET_PROC_ADDR("vkCmdSetCullModeEXT");
+m_vk.cmdSetFrontFaceEXT									= (CmdSetFrontFaceEXTFunc)								GET_PROC_ADDR("vkCmdSetFrontFaceEXT");
+m_vk.cmdSetPrimitiveTopologyEXT							= (CmdSetPrimitiveTopologyEXTFunc)						GET_PROC_ADDR("vkCmdSetPrimitiveTopologyEXT");
+m_vk.cmdSetViewportWithCountEXT							= (CmdSetViewportWithCountEXTFunc)						GET_PROC_ADDR("vkCmdSetViewportWithCountEXT");
+m_vk.cmdSetScissorWithCountEXT							= (CmdSetScissorWithCountEXTFunc)						GET_PROC_ADDR("vkCmdSetScissorWithCountEXT");
+m_vk.cmdBindVertexBuffers2EXT							= (CmdBindVertexBuffers2EXTFunc)						GET_PROC_ADDR("vkCmdBindVertexBuffers2EXT");
+m_vk.cmdSetDepthTestEnableEXT							= (CmdSetDepthTestEnableEXTFunc)						GET_PROC_ADDR("vkCmdSetDepthTestEnableEXT");
+m_vk.cmdSetDepthWriteEnableEXT							= (CmdSetDepthWriteEnableEXTFunc)						GET_PROC_ADDR("vkCmdSetDepthWriteEnableEXT");
+m_vk.cmdSetDepthCompareOpEXT							= (CmdSetDepthCompareOpEXTFunc)							GET_PROC_ADDR("vkCmdSetDepthCompareOpEXT");
+m_vk.cmdSetDepthBoundsTestEnableEXT						= (CmdSetDepthBoundsTestEnableEXTFunc)					GET_PROC_ADDR("vkCmdSetDepthBoundsTestEnableEXT");
+m_vk.cmdSetStencilTestEnableEXT							= (CmdSetStencilTestEnableEXTFunc)						GET_PROC_ADDR("vkCmdSetStencilTestEnableEXT");
+m_vk.cmdSetStencilOpEXT									= (CmdSetStencilOpEXTFunc)								GET_PROC_ADDR("vkCmdSetStencilOpEXT");
+m_vk.getGeneratedCommandsMemoryRequirementsNV			= (GetGeneratedCommandsMemoryRequirementsNVFunc)		GET_PROC_ADDR("vkGetGeneratedCommandsMemoryRequirementsNV");
+m_vk.cmdPreprocessGeneratedCommandsNV					= (CmdPreprocessGeneratedCommandsNVFunc)				GET_PROC_ADDR("vkCmdPreprocessGeneratedCommandsNV");
+m_vk.cmdExecuteGeneratedCommandsNV						= (CmdExecuteGeneratedCommandsNVFunc)					GET_PROC_ADDR("vkCmdExecuteGeneratedCommandsNV");
+m_vk.cmdBindPipelineShaderGroupNV						= (CmdBindPipelineShaderGroupNVFunc)					GET_PROC_ADDR("vkCmdBindPipelineShaderGroupNV");
+m_vk.createIndirectCommandsLayoutNV						= (CreateIndirectCommandsLayoutNVFunc)					GET_PROC_ADDR("vkCreateIndirectCommandsLayoutNV");
+m_vk.destroyIndirectCommandsLayoutNV					= (DestroyIndirectCommandsLayoutNVFunc)					GET_PROC_ADDR("vkDestroyIndirectCommandsLayoutNV");
+m_vk.createPrivateDataSlotEXT							= (CreatePrivateDataSlotEXTFunc)						GET_PROC_ADDR("vkCreatePrivateDataSlotEXT");
+m_vk.destroyPrivateDataSlotEXT							= (DestroyPrivateDataSlotEXTFunc)						GET_PROC_ADDR("vkDestroyPrivateDataSlotEXT");
+m_vk.setPrivateDataEXT									= (SetPrivateDataEXTFunc)								GET_PROC_ADDR("vkSetPrivateDataEXT");
+m_vk.getPrivateDataEXT									= (GetPrivateDataEXTFunc)								GET_PROC_ADDR("vkGetPrivateDataEXT");
 m_vk.getAndroidHardwareBufferPropertiesANDROID			= (GetAndroidHardwareBufferPropertiesANDROIDFunc)		GET_PROC_ADDR("vkGetAndroidHardwareBufferPropertiesANDROID");
 m_vk.getMemoryAndroidHardwareBufferANDROID				= (GetMemoryAndroidHardwareBufferANDROIDFunc)			GET_PROC_ADDR("vkGetMemoryAndroidHardwareBufferANDROID");
+m_vk.createDeferredOperationKHR							= (CreateDeferredOperationKHRFunc)						GET_PROC_ADDR("vkCreateDeferredOperationKHR");
+m_vk.destroyDeferredOperationKHR						= (DestroyDeferredOperationKHRFunc)						GET_PROC_ADDR("vkDestroyDeferredOperationKHR");
+m_vk.getDeferredOperationMaxConcurrencyKHR				= (GetDeferredOperationMaxConcurrencyKHRFunc)			GET_PROC_ADDR("vkGetDeferredOperationMaxConcurrencyKHR");
+m_vk.getDeferredOperationResultKHR						= (GetDeferredOperationResultKHRFunc)					GET_PROC_ADDR("vkGetDeferredOperationResultKHR");
+m_vk.deferredOperationJoinKHR							= (DeferredOperationJoinKHRFunc)						GET_PROC_ADDR("vkDeferredOperationJoinKHR");
+m_vk.createAccelerationStructureKHR						= (CreateAccelerationStructureKHRFunc)					GET_PROC_ADDR("vkCreateAccelerationStructureKHR");
+m_vk.getAccelerationStructureMemoryRequirementsKHR		= (GetAccelerationStructureMemoryRequirementsKHRFunc)	GET_PROC_ADDR("vkGetAccelerationStructureMemoryRequirementsKHR");
+m_vk.cmdBuildAccelerationStructureKHR					= (CmdBuildAccelerationStructureKHRFunc)				GET_PROC_ADDR("vkCmdBuildAccelerationStructureKHR");
+m_vk.cmdBuildAccelerationStructureIndirectKHR			= (CmdBuildAccelerationStructureIndirectKHRFunc)		GET_PROC_ADDR("vkCmdBuildAccelerationStructureIndirectKHR");
+m_vk.buildAccelerationStructureKHR						= (BuildAccelerationStructureKHRFunc)					GET_PROC_ADDR("vkBuildAccelerationStructureKHR");
+m_vk.copyAccelerationStructureKHR						= (CopyAccelerationStructureKHRFunc)					GET_PROC_ADDR("vkCopyAccelerationStructureKHR");
+m_vk.copyAccelerationStructureToMemoryKHR				= (CopyAccelerationStructureToMemoryKHRFunc)			GET_PROC_ADDR("vkCopyAccelerationStructureToMemoryKHR");
+m_vk.copyMemoryToAccelerationStructureKHR				= (CopyMemoryToAccelerationStructureKHRFunc)			GET_PROC_ADDR("vkCopyMemoryToAccelerationStructureKHR");
+m_vk.writeAccelerationStructuresPropertiesKHR			= (WriteAccelerationStructuresPropertiesKHRFunc)		GET_PROC_ADDR("vkWriteAccelerationStructuresPropertiesKHR");
+m_vk.cmdCopyAccelerationStructureKHR					= (CmdCopyAccelerationStructureKHRFunc)					GET_PROC_ADDR("vkCmdCopyAccelerationStructureKHR");
+m_vk.cmdCopyAccelerationStructureToMemoryKHR			= (CmdCopyAccelerationStructureToMemoryKHRFunc)			GET_PROC_ADDR("vkCmdCopyAccelerationStructureToMemoryKHR");
+m_vk.cmdCopyMemoryToAccelerationStructureKHR			= (CmdCopyMemoryToAccelerationStructureKHRFunc)			GET_PROC_ADDR("vkCmdCopyMemoryToAccelerationStructureKHR");
+m_vk.cmdTraceRaysKHR									= (CmdTraceRaysKHRFunc)									GET_PROC_ADDR("vkCmdTraceRaysKHR");
+m_vk.createRayTracingPipelinesKHR						= (CreateRayTracingPipelinesKHRFunc)					GET_PROC_ADDR("vkCreateRayTracingPipelinesKHR");
+m_vk.getAccelerationStructureDeviceAddressKHR			= (GetAccelerationStructureDeviceAddressKHRFunc)		GET_PROC_ADDR("vkGetAccelerationStructureDeviceAddressKHR");
+m_vk.getRayTracingCaptureReplayShaderGroupHandlesKHR	= (GetRayTracingCaptureReplayShaderGroupHandlesKHRFunc)	GET_PROC_ADDR("vkGetRayTracingCaptureReplayShaderGroupHandlesKHR");
+m_vk.cmdTraceRaysIndirectKHR							= (CmdTraceRaysIndirectKHRFunc)							GET_PROC_ADDR("vkCmdTraceRaysIndirectKHR");
+m_vk.getDeviceAccelerationStructureCompatibilityKHR		= (GetDeviceAccelerationStructureCompatibilityKHRFunc)	GET_PROC_ADDR("vkGetDeviceAccelerationStructureCompatibilityKHR");
 m_vk.getMemoryWin32HandleKHR							= (GetMemoryWin32HandleKHRFunc)							GET_PROC_ADDR("vkGetMemoryWin32HandleKHR");
 m_vk.getMemoryWin32HandlePropertiesKHR					= (GetMemoryWin32HandlePropertiesKHRFunc)				GET_PROC_ADDR("vkGetMemoryWin32HandlePropertiesKHR");
 m_vk.importSemaphoreWin32HandleKHR						= (ImportSemaphoreWin32HandleKHRFunc)					GET_PROC_ADDR("vkImportSemaphoreWin32HandleKHR");
diff --git a/external/vulkancts/framework/vulkan/vkInitInstanceFunctionPointers.inl b/external/vulkancts/framework/vulkan/vkInitInstanceFunctionPointers.inl
index 41b9e29..dc1e66a 100644
--- a/external/vulkancts/framework/vulkan/vkInitInstanceFunctionPointers.inl
+++ b/external/vulkancts/framework/vulkan/vkInitInstanceFunctionPointers.inl
@@ -81,7 +81,6 @@
 m_vk.destroyDebugReportCallbackEXT										= (DestroyDebugReportCallbackEXTFunc)									GET_PROC_ADDR("vkDestroyDebugReportCallbackEXT");
 m_vk.debugReportMessageEXT												= (DebugReportMessageEXTFunc)											GET_PROC_ADDR("vkDebugReportMessageEXT");
 m_vk.getPhysicalDeviceExternalImageFormatPropertiesNV					= (GetPhysicalDeviceExternalImageFormatPropertiesNVFunc)				GET_PROC_ADDR("vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
-m_vk.getPhysicalDeviceGeneratedCommandsPropertiesNVX					= (GetPhysicalDeviceGeneratedCommandsPropertiesNVXFunc)					GET_PROC_ADDR("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX");
 m_vk.releaseDisplayEXT													= (ReleaseDisplayEXTFunc)												GET_PROC_ADDR("vkReleaseDisplayEXT");
 m_vk.getPhysicalDeviceSurfaceCapabilities2EXT							= (GetPhysicalDeviceSurfaceCapabilities2EXTFunc)						GET_PROC_ADDR("vkGetPhysicalDeviceSurfaceCapabilities2EXT");
 m_vk.createDebugUtilsMessengerEXT										= (CreateDebugUtilsMessengerEXTFunc)									GET_PROC_ADDR("vkCreateDebugUtilsMessengerEXT");
diff --git a/external/vulkancts/framework/vulkan/vkInstanceDriverImpl.inl b/external/vulkancts/framework/vulkan/vkInstanceDriverImpl.inl
index 1e5af6c..e2656c2 100644
--- a/external/vulkancts/framework/vulkan/vkInstanceDriverImpl.inl
+++ b/external/vulkancts/framework/vulkan/vkInstanceDriverImpl.inl
@@ -292,11 +292,6 @@
 	return m_vk.getPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties);
 }
 
-void InstanceDriver::getPhysicalDeviceGeneratedCommandsPropertiesNVX (VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits) const
-{
-	m_vk.getPhysicalDeviceGeneratedCommandsPropertiesNVX(physicalDevice, pFeatures, pLimits);
-}
-
 VkResult InstanceDriver::releaseDisplayEXT (VkPhysicalDevice physicalDevice, VkDisplayKHR display) const
 {
 	return m_vk.releaseDisplayEXT(physicalDevice, display);
diff --git a/external/vulkancts/framework/vulkan/vkInstanceFunctionPointers.inl b/external/vulkancts/framework/vulkan/vkInstanceFunctionPointers.inl
index 3c14f23..562668a 100644
--- a/external/vulkancts/framework/vulkan/vkInstanceFunctionPointers.inl
+++ b/external/vulkancts/framework/vulkan/vkInstanceFunctionPointers.inl
@@ -59,7 +59,6 @@
 DestroyDebugReportCallbackEXTFunc									destroyDebugReportCallbackEXT;
 DebugReportMessageEXTFunc											debugReportMessageEXT;
 GetPhysicalDeviceExternalImageFormatPropertiesNVFunc				getPhysicalDeviceExternalImageFormatPropertiesNV;
-GetPhysicalDeviceGeneratedCommandsPropertiesNVXFunc					getPhysicalDeviceGeneratedCommandsPropertiesNVX;
 ReleaseDisplayEXTFunc												releaseDisplayEXT;
 GetPhysicalDeviceSurfaceCapabilities2EXTFunc						getPhysicalDeviceSurfaceCapabilities2EXT;
 CreateDebugUtilsMessengerEXTFunc									createDebugUtilsMessengerEXT;
diff --git a/external/vulkancts/framework/vulkan/vkMandatoryFeatures.inl b/external/vulkancts/framework/vulkan/vkMandatoryFeatures.inl
index b2ac3f2..8f571e4 100644
--- a/external/vulkancts/framework/vulkan/vkMandatoryFeatures.inl
+++ b/external/vulkancts/framework/vulkan/vkMandatoryFeatures.inl
@@ -16,6 +16,16 @@
 	coreFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
 	void** nextPtr = &coreFeatures.pNext;
 
+	vk::VkPhysicalDevice16BitStorageFeaturesKHR physicalDevice16BitStorageFeaturesKHR;
+	deMemset(&physicalDevice16BitStorageFeaturesKHR, 0, sizeof(physicalDevice16BitStorageFeaturesKHR));
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_16bit_storage")) )
+	{
+		physicalDevice16BitStorageFeaturesKHR.sType = getStructureType<VkPhysicalDevice16BitStorageFeaturesKHR>();
+		*nextPtr = &physicalDevice16BitStorageFeaturesKHR;
+		nextPtr  = &physicalDevice16BitStorageFeaturesKHR.pNext;
+	}
+
 	vk::VkPhysicalDevice8BitStorageFeaturesKHR physicalDevice8BitStorageFeaturesKHR;
 	deMemset(&physicalDevice8BitStorageFeaturesKHR, 0, sizeof(physicalDevice8BitStorageFeaturesKHR));
 
@@ -26,6 +36,36 @@
 		nextPtr  = &physicalDevice8BitStorageFeaturesKHR.pNext;
 	}
 
+	vk::VkPhysicalDeviceBufferDeviceAddressFeaturesKHR physicalDeviceBufferDeviceAddressFeaturesKHR;
+	deMemset(&physicalDeviceBufferDeviceAddressFeaturesKHR, 0, sizeof(physicalDeviceBufferDeviceAddressFeaturesKHR));
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_buffer_device_address")) )
+	{
+		physicalDeviceBufferDeviceAddressFeaturesKHR.sType = getStructureType<VkPhysicalDeviceBufferDeviceAddressFeaturesKHR>();
+		*nextPtr = &physicalDeviceBufferDeviceAddressFeaturesKHR;
+		nextPtr  = &physicalDeviceBufferDeviceAddressFeaturesKHR.pNext;
+	}
+
+	vk::VkPhysicalDeviceConditionalRenderingFeaturesEXT physicalDeviceConditionalRenderingFeaturesEXT;
+	deMemset(&physicalDeviceConditionalRenderingFeaturesEXT, 0, sizeof(physicalDeviceConditionalRenderingFeaturesEXT));
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_conditional_rendering")) )
+	{
+		physicalDeviceConditionalRenderingFeaturesEXT.sType = getStructureType<VkPhysicalDeviceConditionalRenderingFeaturesEXT>();
+		*nextPtr = &physicalDeviceConditionalRenderingFeaturesEXT;
+		nextPtr  = &physicalDeviceConditionalRenderingFeaturesEXT.pNext;
+	}
+
+	vk::VkPhysicalDeviceDepthClipEnableFeaturesEXT physicalDeviceDepthClipEnableFeaturesEXT;
+	deMemset(&physicalDeviceDepthClipEnableFeaturesEXT, 0, sizeof(physicalDeviceDepthClipEnableFeaturesEXT));
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_depth_clip_enable")) )
+	{
+		physicalDeviceDepthClipEnableFeaturesEXT.sType = getStructureType<VkPhysicalDeviceDepthClipEnableFeaturesEXT>();
+		*nextPtr = &physicalDeviceDepthClipEnableFeaturesEXT;
+		nextPtr  = &physicalDeviceDepthClipEnableFeaturesEXT.pNext;
+	}
+
 	vk::VkPhysicalDeviceDescriptorIndexingFeaturesEXT physicalDeviceDescriptorIndexingFeaturesEXT;
 	deMemset(&physicalDeviceDescriptorIndexingFeaturesEXT, 0, sizeof(physicalDeviceDescriptorIndexingFeaturesEXT));
 
@@ -36,6 +76,56 @@
 		nextPtr  = &physicalDeviceDescriptorIndexingFeaturesEXT.pNext;
 	}
 
+	vk::VkPhysicalDeviceFragmentDensityMapFeaturesEXT physicalDeviceFragmentDensityMapFeaturesEXT;
+	deMemset(&physicalDeviceFragmentDensityMapFeaturesEXT, 0, sizeof(physicalDeviceFragmentDensityMapFeaturesEXT));
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_fragment_density_map")) )
+	{
+		physicalDeviceFragmentDensityMapFeaturesEXT.sType = getStructureType<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>();
+		*nextPtr = &physicalDeviceFragmentDensityMapFeaturesEXT;
+		nextPtr  = &physicalDeviceFragmentDensityMapFeaturesEXT.pNext;
+	}
+
+	vk::VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT physicalDeviceFragmentShaderInterlockFeaturesEXT;
+	deMemset(&physicalDeviceFragmentShaderInterlockFeaturesEXT, 0, sizeof(physicalDeviceFragmentShaderInterlockFeaturesEXT));
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_fragment_shader_interlock")) )
+	{
+		physicalDeviceFragmentShaderInterlockFeaturesEXT.sType = getStructureType<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT>();
+		*nextPtr = &physicalDeviceFragmentShaderInterlockFeaturesEXT;
+		nextPtr  = &physicalDeviceFragmentShaderInterlockFeaturesEXT.pNext;
+	}
+
+	vk::VkPhysicalDeviceHostQueryResetFeaturesEXT physicalDeviceHostQueryResetFeaturesEXT;
+	deMemset(&physicalDeviceHostQueryResetFeaturesEXT, 0, sizeof(physicalDeviceHostQueryResetFeaturesEXT));
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_host_query_reset")) )
+	{
+		physicalDeviceHostQueryResetFeaturesEXT.sType = getStructureType<VkPhysicalDeviceHostQueryResetFeaturesEXT>();
+		*nextPtr = &physicalDeviceHostQueryResetFeaturesEXT;
+		nextPtr  = &physicalDeviceHostQueryResetFeaturesEXT.pNext;
+	}
+
+	vk::VkPhysicalDeviceImagelessFramebufferFeaturesKHR physicalDeviceImagelessFramebufferFeaturesKHR;
+	deMemset(&physicalDeviceImagelessFramebufferFeaturesKHR, 0, sizeof(physicalDeviceImagelessFramebufferFeaturesKHR));
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_imageless_framebuffer")) )
+	{
+		physicalDeviceImagelessFramebufferFeaturesKHR.sType = getStructureType<VkPhysicalDeviceImagelessFramebufferFeaturesKHR>();
+		*nextPtr = &physicalDeviceImagelessFramebufferFeaturesKHR;
+		nextPtr  = &physicalDeviceImagelessFramebufferFeaturesKHR.pNext;
+	}
+
+	vk::VkPhysicalDeviceIndexTypeUint8FeaturesEXT physicalDeviceIndexTypeUint8FeaturesEXT;
+	deMemset(&physicalDeviceIndexTypeUint8FeaturesEXT, 0, sizeof(physicalDeviceIndexTypeUint8FeaturesEXT));
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_index_type_uint8")) )
+	{
+		physicalDeviceIndexTypeUint8FeaturesEXT.sType = getStructureType<VkPhysicalDeviceIndexTypeUint8FeaturesEXT>();
+		*nextPtr = &physicalDeviceIndexTypeUint8FeaturesEXT;
+		nextPtr  = &physicalDeviceIndexTypeUint8FeaturesEXT.pNext;
+	}
+
 	vk::VkPhysicalDeviceInlineUniformBlockFeaturesEXT physicalDeviceInlineUniformBlockFeaturesEXT;
 	deMemset(&physicalDeviceInlineUniformBlockFeaturesEXT, 0, sizeof(physicalDeviceInlineUniformBlockFeaturesEXT));
 
@@ -46,6 +136,26 @@
 		nextPtr  = &physicalDeviceInlineUniformBlockFeaturesEXT.pNext;
 	}
 
+	vk::VkPhysicalDeviceLineRasterizationFeaturesEXT physicalDeviceLineRasterizationFeaturesEXT;
+	deMemset(&physicalDeviceLineRasterizationFeaturesEXT, 0, sizeof(physicalDeviceLineRasterizationFeaturesEXT));
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_line_rasterization")) )
+	{
+		physicalDeviceLineRasterizationFeaturesEXT.sType = getStructureType<VkPhysicalDeviceLineRasterizationFeaturesEXT>();
+		*nextPtr = &physicalDeviceLineRasterizationFeaturesEXT;
+		nextPtr  = &physicalDeviceLineRasterizationFeaturesEXT.pNext;
+	}
+
+	vk::VkPhysicalDeviceMemoryPriorityFeaturesEXT physicalDeviceMemoryPriorityFeaturesEXT;
+	deMemset(&physicalDeviceMemoryPriorityFeaturesEXT, 0, sizeof(physicalDeviceMemoryPriorityFeaturesEXT));
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_memory_priority")) )
+	{
+		physicalDeviceMemoryPriorityFeaturesEXT.sType = getStructureType<VkPhysicalDeviceMemoryPriorityFeaturesEXT>();
+		*nextPtr = &physicalDeviceMemoryPriorityFeaturesEXT;
+		nextPtr  = &physicalDeviceMemoryPriorityFeaturesEXT.pNext;
+	}
+
 	vk::VkPhysicalDeviceMultiviewFeatures physicalDeviceMultiviewFeatures;
 	deMemset(&physicalDeviceMultiviewFeatures, 0, sizeof(physicalDeviceMultiviewFeatures));
 
@@ -56,6 +166,16 @@
 		nextPtr  = &physicalDeviceMultiviewFeatures.pNext;
 	}
 
+	vk::VkPhysicalDevicePerformanceQueryFeaturesKHR physicalDevicePerformanceQueryFeaturesKHR;
+	deMemset(&physicalDevicePerformanceQueryFeaturesKHR, 0, sizeof(physicalDevicePerformanceQueryFeaturesKHR));
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_performance_query")) )
+	{
+		physicalDevicePerformanceQueryFeaturesKHR.sType = getStructureType<VkPhysicalDevicePerformanceQueryFeaturesKHR>();
+		*nextPtr = &physicalDevicePerformanceQueryFeaturesKHR;
+		nextPtr  = &physicalDevicePerformanceQueryFeaturesKHR.pNext;
+	}
+
 	vk::VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR physicalDevicePipelineExecutablePropertiesFeaturesKHR;
 	deMemset(&physicalDevicePipelineExecutablePropertiesFeaturesKHR, 0, sizeof(physicalDevicePipelineExecutablePropertiesFeaturesKHR));
 
@@ -76,6 +196,66 @@
 		nextPtr  = &physicalDeviceScalarBlockLayoutFeaturesEXT.pNext;
 	}
 
+	vk::VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR physicalDeviceSeparateDepthStencilLayoutsFeaturesKHR;
+	deMemset(&physicalDeviceSeparateDepthStencilLayoutsFeaturesKHR, 0, sizeof(physicalDeviceSeparateDepthStencilLayoutsFeaturesKHR));
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_separate_depth_stencil_layouts")) )
+	{
+		physicalDeviceSeparateDepthStencilLayoutsFeaturesKHR.sType = getStructureType<VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR>();
+		*nextPtr = &physicalDeviceSeparateDepthStencilLayoutsFeaturesKHR;
+		nextPtr  = &physicalDeviceSeparateDepthStencilLayoutsFeaturesKHR.pNext;
+	}
+
+	vk::VkPhysicalDeviceShaderAtomicInt64FeaturesKHR physicalDeviceShaderAtomicInt64FeaturesKHR;
+	deMemset(&physicalDeviceShaderAtomicInt64FeaturesKHR, 0, sizeof(physicalDeviceShaderAtomicInt64FeaturesKHR));
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_shader_atomic_int64")) )
+	{
+		physicalDeviceShaderAtomicInt64FeaturesKHR.sType = getStructureType<VkPhysicalDeviceShaderAtomicInt64FeaturesKHR>();
+		*nextPtr = &physicalDeviceShaderAtomicInt64FeaturesKHR;
+		nextPtr  = &physicalDeviceShaderAtomicInt64FeaturesKHR.pNext;
+	}
+
+	vk::VkPhysicalDeviceShaderClockFeaturesKHR physicalDeviceShaderClockFeaturesKHR;
+	deMemset(&physicalDeviceShaderClockFeaturesKHR, 0, sizeof(physicalDeviceShaderClockFeaturesKHR));
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_shader_clock")) )
+	{
+		physicalDeviceShaderClockFeaturesKHR.sType = getStructureType<VkPhysicalDeviceShaderClockFeaturesKHR>();
+		*nextPtr = &physicalDeviceShaderClockFeaturesKHR;
+		nextPtr  = &physicalDeviceShaderClockFeaturesKHR.pNext;
+	}
+
+	vk::VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT physicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
+	deMemset(&physicalDeviceShaderDemoteToHelperInvocationFeaturesEXT, 0, sizeof(physicalDeviceShaderDemoteToHelperInvocationFeaturesEXT));
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_shader_demote_to_helper_invocation")) )
+	{
+		physicalDeviceShaderDemoteToHelperInvocationFeaturesEXT.sType = getStructureType<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT>();
+		*nextPtr = &physicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
+		nextPtr  = &physicalDeviceShaderDemoteToHelperInvocationFeaturesEXT.pNext;
+	}
+
+	vk::VkPhysicalDeviceShaderFloat16Int8Features physicalDeviceShaderFloat16Int8Features;
+	deMemset(&physicalDeviceShaderFloat16Int8Features, 0, sizeof(physicalDeviceShaderFloat16Int8Features));
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_shader_float16_int8")) )
+	{
+		physicalDeviceShaderFloat16Int8Features.sType = getStructureType<VkPhysicalDeviceShaderFloat16Int8Features>();
+		*nextPtr = &physicalDeviceShaderFloat16Int8Features;
+		nextPtr  = &physicalDeviceShaderFloat16Int8Features.pNext;
+	}
+
+	vk::VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR physicalDeviceShaderSubgroupExtendedTypesFeaturesKHR;
+	deMemset(&physicalDeviceShaderSubgroupExtendedTypesFeaturesKHR, 0, sizeof(physicalDeviceShaderSubgroupExtendedTypesFeaturesKHR));
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_shader_subgroup_extended_types")) )
+	{
+		physicalDeviceShaderSubgroupExtendedTypesFeaturesKHR.sType = getStructureType<VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR>();
+		*nextPtr = &physicalDeviceShaderSubgroupExtendedTypesFeaturesKHR;
+		nextPtr  = &physicalDeviceShaderSubgroupExtendedTypesFeaturesKHR.pNext;
+	}
+
 	vk::VkPhysicalDeviceSubgroupSizeControlFeaturesEXT physicalDeviceSubgroupSizeControlFeaturesEXT;
 	deMemset(&physicalDeviceSubgroupSizeControlFeaturesEXT, 0, sizeof(physicalDeviceSubgroupSizeControlFeaturesEXT));
 
@@ -86,6 +266,26 @@
 		nextPtr  = &physicalDeviceSubgroupSizeControlFeaturesEXT.pNext;
 	}
 
+	vk::VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT physicalDeviceTexelBufferAlignmentFeaturesEXT;
+	deMemset(&physicalDeviceTexelBufferAlignmentFeaturesEXT, 0, sizeof(physicalDeviceTexelBufferAlignmentFeaturesEXT));
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_texel_buffer_alignment")) )
+	{
+		physicalDeviceTexelBufferAlignmentFeaturesEXT.sType = getStructureType<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT>();
+		*nextPtr = &physicalDeviceTexelBufferAlignmentFeaturesEXT;
+		nextPtr  = &physicalDeviceTexelBufferAlignmentFeaturesEXT.pNext;
+	}
+
+	vk::VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT physicalDeviceTextureCompressionASTCHDRFeaturesEXT;
+	deMemset(&physicalDeviceTextureCompressionASTCHDRFeaturesEXT, 0, sizeof(physicalDeviceTextureCompressionASTCHDRFeaturesEXT));
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_texture_compression_astc_hdr")) )
+	{
+		physicalDeviceTextureCompressionASTCHDRFeaturesEXT.sType = getStructureType<VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT>();
+		*nextPtr = &physicalDeviceTextureCompressionASTCHDRFeaturesEXT;
+		nextPtr  = &physicalDeviceTextureCompressionASTCHDRFeaturesEXT.pNext;
+	}
+
 	vk::VkPhysicalDeviceTimelineSemaphoreFeaturesKHR physicalDeviceTimelineSemaphoreFeaturesKHR;
 	deMemset(&physicalDeviceTimelineSemaphoreFeaturesKHR, 0, sizeof(physicalDeviceTimelineSemaphoreFeaturesKHR));
 
@@ -96,6 +296,16 @@
 		nextPtr  = &physicalDeviceTimelineSemaphoreFeaturesKHR.pNext;
 	}
 
+	vk::VkPhysicalDeviceTransformFeedbackFeaturesEXT physicalDeviceTransformFeedbackFeaturesEXT;
+	deMemset(&physicalDeviceTransformFeedbackFeaturesEXT, 0, sizeof(physicalDeviceTransformFeedbackFeaturesEXT));
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_transform_feedback")) )
+	{
+		physicalDeviceTransformFeedbackFeaturesEXT.sType = getStructureType<VkPhysicalDeviceTransformFeedbackFeaturesEXT>();
+		*nextPtr = &physicalDeviceTransformFeedbackFeaturesEXT;
+		nextPtr  = &physicalDeviceTransformFeedbackFeaturesEXT.pNext;
+	}
+
 	vk::VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR physicalDeviceUniformBufferStandardLayoutFeaturesKHR;
 	deMemset(&physicalDeviceUniformBufferStandardLayoutFeaturesKHR, 0, sizeof(physicalDeviceUniformBufferStandardLayoutFeaturesKHR));
 
@@ -116,6 +326,16 @@
 		nextPtr  = &physicalDeviceVariablePointersFeatures.pNext;
 	}
 
+	vk::VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT physicalDeviceVertexAttributeDivisorFeaturesEXT;
+	deMemset(&physicalDeviceVertexAttributeDivisorFeaturesEXT, 0, sizeof(physicalDeviceVertexAttributeDivisorFeaturesEXT));
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_vertex_attribute_divisor")) )
+	{
+		physicalDeviceVertexAttributeDivisorFeaturesEXT.sType = getStructureType<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT>();
+		*nextPtr = &physicalDeviceVertexAttributeDivisorFeaturesEXT;
+		nextPtr  = &physicalDeviceVertexAttributeDivisorFeaturesEXT.pNext;
+	}
+
 	vk::VkPhysicalDeviceVulkan11Features physicalDeviceVulkan11Features;
 	deMemset(&physicalDeviceVulkan11Features, 0, sizeof(physicalDeviceVulkan11Features));
 
@@ -136,6 +356,26 @@
 		nextPtr  = &physicalDeviceVulkan12Features.pNext;
 	}
 
+	vk::VkPhysicalDeviceVulkanMemoryModelFeaturesKHR physicalDeviceVulkanMemoryModelFeaturesKHR;
+	deMemset(&physicalDeviceVulkanMemoryModelFeaturesKHR, 0, sizeof(physicalDeviceVulkanMemoryModelFeaturesKHR));
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_vulkan_memory_model")) )
+	{
+		physicalDeviceVulkanMemoryModelFeaturesKHR.sType = getStructureType<VkPhysicalDeviceVulkanMemoryModelFeaturesKHR>();
+		*nextPtr = &physicalDeviceVulkanMemoryModelFeaturesKHR;
+		nextPtr  = &physicalDeviceVulkanMemoryModelFeaturesKHR.pNext;
+	}
+
+	vk::VkPhysicalDeviceYcbcrImageArraysFeaturesEXT physicalDeviceYcbcrImageArraysFeaturesEXT;
+	deMemset(&physicalDeviceYcbcrImageArraysFeaturesEXT, 0, sizeof(physicalDeviceYcbcrImageArraysFeaturesEXT));
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_ycbcr_image_arrays")) )
+	{
+		physicalDeviceYcbcrImageArraysFeaturesEXT.sType = getStructureType<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT>();
+		*nextPtr = &physicalDeviceYcbcrImageArraysFeaturesEXT;
+		nextPtr  = &physicalDeviceYcbcrImageArraysFeaturesEXT.pNext;
+	}
+
 	context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &coreFeatures);
 	bool result = true;
 
@@ -399,6 +639,33 @@
 		}
 	}
 
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_shader_subgroup_extended_types")) )
+	{
+		if ( physicalDeviceShaderSubgroupExtendedTypesFeaturesKHR.shaderSubgroupExtendedTypes == VK_FALSE )
+		{
+			log << tcu::TestLog::Message << "Mandatory feature shaderSubgroupExtendedTypes not supported" << tcu::TestLog::EndMessage;
+			result = false;
+		}
+	}
+
+	if ( context.contextSupports(vk::ApiVersion(1, 2, 0)) )
+	{
+		if ( physicalDeviceVulkan12Features.shaderSubgroupExtendedTypes == VK_FALSE )
+		{
+			log << tcu::TestLog::Message << "Mandatory feature shaderSubgroupExtendedTypes not supported" << tcu::TestLog::EndMessage;
+			result = false;
+		}
+	}
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_imageless_framebuffer")) )
+	{
+		if ( physicalDeviceImagelessFramebufferFeaturesKHR.imagelessFramebuffer == VK_FALSE )
+		{
+			log << tcu::TestLog::Message << "Mandatory feature imagelessFramebuffer not supported" << tcu::TestLog::EndMessage;
+			result = false;
+		}
+	}
+
 	if ( context.contextSupports(vk::ApiVersion(1, 2, 0)) )
 	{
 		if ( physicalDeviceVulkan12Features.imagelessFramebuffer == VK_FALSE )
@@ -417,6 +684,15 @@
 		}
 	}
 
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_separate_depth_stencil_layouts")) )
+	{
+		if ( physicalDeviceSeparateDepthStencilLayoutsFeaturesKHR.separateDepthStencilLayouts == VK_FALSE )
+		{
+			log << tcu::TestLog::Message << "Mandatory feature separateDepthStencilLayouts not supported" << tcu::TestLog::EndMessage;
+			result = false;
+		}
+	}
+
 	if ( context.contextSupports(vk::ApiVersion(1, 2, 0)) )
 	{
 		if ( physicalDeviceVulkan12Features.separateDepthStencilLayouts == VK_FALSE )
@@ -426,6 +702,15 @@
 		}
 	}
 
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_host_query_reset")) )
+	{
+		if ( physicalDeviceHostQueryResetFeaturesEXT.hostQueryReset == VK_FALSE )
+		{
+			log << tcu::TestLog::Message << "Mandatory feature hostQueryReset not supported" << tcu::TestLog::EndMessage;
+			result = false;
+		}
+	}
+
 	if ( context.contextSupports(vk::ApiVersion(1, 2, 0)) )
 	{
 		if ( physicalDeviceVulkan12Features.hostQueryReset == VK_FALSE )
@@ -570,6 +855,186 @@
 		}
 	}
 
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_texture_compression_astc_hdr")) )
+	{
+		if ( physicalDeviceTextureCompressionASTCHDRFeaturesEXT.textureCompressionASTC_HDR == VK_FALSE )
+		{
+			log << tcu::TestLog::Message << "Mandatory feature textureCompressionASTC_HDR not supported" << tcu::TestLog::EndMessage;
+			result = false;
+		}
+	}
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_depth_clip_enable")) )
+	{
+		if ( physicalDeviceDepthClipEnableFeaturesEXT.depthClipEnable == VK_FALSE )
+		{
+			log << tcu::TestLog::Message << "Mandatory feature depthClipEnable not supported" << tcu::TestLog::EndMessage;
+			result = false;
+		}
+	}
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_memory_priority")) )
+	{
+		if ( physicalDeviceMemoryPriorityFeaturesEXT.memoryPriority == VK_FALSE )
+		{
+			log << tcu::TestLog::Message << "Mandatory feature memoryPriority not supported" << tcu::TestLog::EndMessage;
+			result = false;
+		}
+	}
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_ycbcr_image_arrays")) )
+	{
+		if ( physicalDeviceYcbcrImageArraysFeaturesEXT.ycbcrImageArrays == VK_FALSE )
+		{
+			log << tcu::TestLog::Message << "Mandatory feature ycbcrImageArrays not supported" << tcu::TestLog::EndMessage;
+			result = false;
+		}
+	}
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_index_type_uint8")) )
+	{
+		if ( physicalDeviceIndexTypeUint8FeaturesEXT.indexTypeUint8 == VK_FALSE )
+		{
+			log << tcu::TestLog::Message << "Mandatory feature indexTypeUint8 not supported" << tcu::TestLog::EndMessage;
+			result = false;
+		}
+	}
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_shader_demote_to_helper_invocation")) )
+	{
+		if ( physicalDeviceShaderDemoteToHelperInvocationFeaturesEXT.shaderDemoteToHelperInvocation == VK_FALSE )
+		{
+			log << tcu::TestLog::Message << "Mandatory feature shaderDemoteToHelperInvocation not supported" << tcu::TestLog::EndMessage;
+			result = false;
+		}
+	}
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_texel_buffer_alignment")) )
+	{
+		if ( physicalDeviceTexelBufferAlignmentFeaturesEXT.texelBufferAlignment == VK_FALSE )
+		{
+			log << tcu::TestLog::Message << "Mandatory feature texelBufferAlignment not supported" << tcu::TestLog::EndMessage;
+			result = false;
+		}
+	}
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_vulkan_memory_model")) )
+	{
+		if ( physicalDeviceVulkanMemoryModelFeaturesKHR.vulkanMemoryModel == VK_FALSE )
+		{
+			log << tcu::TestLog::Message << "Mandatory feature vulkanMemoryModel not supported" << tcu::TestLog::EndMessage;
+			result = false;
+		}
+	}
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_buffer_device_address")) )
+	{
+		if ( physicalDeviceBufferDeviceAddressFeaturesKHR.bufferDeviceAddress == VK_FALSE )
+		{
+			log << tcu::TestLog::Message << "Mandatory feature bufferDeviceAddress not supported" << tcu::TestLog::EndMessage;
+			result = false;
+		}
+	}
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_performance_query")) )
+	{
+		if ( physicalDevicePerformanceQueryFeaturesKHR.performanceCounterQueryPools == VK_FALSE )
+		{
+			log << tcu::TestLog::Message << "Mandatory feature performanceCounterQueryPools not supported" << tcu::TestLog::EndMessage;
+			result = false;
+		}
+	}
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_transform_feedback")) )
+	{
+		if ( physicalDeviceTransformFeedbackFeaturesEXT.transformFeedback == VK_FALSE )
+		{
+			log << tcu::TestLog::Message << "Mandatory feature transformFeedback not supported" << tcu::TestLog::EndMessage;
+			result = false;
+		}
+	}
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_conditional_rendering")) )
+	{
+		if ( physicalDeviceConditionalRenderingFeaturesEXT.conditionalRendering == VK_FALSE )
+		{
+			log << tcu::TestLog::Message << "Mandatory feature conditionalRendering not supported" << tcu::TestLog::EndMessage;
+			result = false;
+		}
+	}
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_vertex_attribute_divisor")) )
+	{
+		if ( physicalDeviceVertexAttributeDivisorFeaturesEXT.vertexAttributeInstanceRateDivisor == VK_FALSE )
+		{
+			log << tcu::TestLog::Message << "Mandatory feature vertexAttributeInstanceRateDivisor not supported" << tcu::TestLog::EndMessage;
+			result = false;
+		}
+	}
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_fragment_density_map")) )
+	{
+		if ( physicalDeviceFragmentDensityMapFeaturesEXT.fragmentDensityMap == VK_FALSE )
+		{
+			log << tcu::TestLog::Message << "Mandatory feature fragmentDensityMap not supported" << tcu::TestLog::EndMessage;
+			result = false;
+		}
+	}
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_shader_clock")) )
+	{
+		if ( physicalDeviceShaderClockFeaturesKHR.shaderSubgroupClock == VK_FALSE )
+		{
+			log << tcu::TestLog::Message << "Mandatory feature shaderSubgroupClock not supported" << tcu::TestLog::EndMessage;
+			result = false;
+		}
+	}
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_shader_atomic_int64")) )
+	{
+		if ( physicalDeviceShaderAtomicInt64FeaturesKHR.shaderBufferInt64Atomics == VK_FALSE )
+		{
+			log << tcu::TestLog::Message << "Mandatory feature shaderBufferInt64Atomics not supported" << tcu::TestLog::EndMessage;
+			result = false;
+		}
+	}
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_16bit_storage")) )
+	{
+		if ( physicalDevice16BitStorageFeaturesKHR.storageBuffer16BitAccess == VK_FALSE )
+		{
+			log << tcu::TestLog::Message << "Mandatory feature storageBuffer16BitAccess not supported" << tcu::TestLog::EndMessage;
+			result = false;
+		}
+	}
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_KHR_shader_float16_int8")) )
+	{
+		if ( ( physicalDeviceShaderFloat16Int8Features.shaderFloat16 == VK_FALSE ) && ( physicalDeviceShaderFloat16Int8Features.shaderInt8 == VK_FALSE ) )
+		{
+			log << tcu::TestLog::Message << "Mandatory feature shaderFloat16 or shaderInt8 not supported" << tcu::TestLog::EndMessage;
+			result = false;
+		}
+	}
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_fragment_shader_interlock")) )
+	{
+		if ( ( physicalDeviceFragmentShaderInterlockFeaturesEXT.fragmentShaderSampleInterlock == VK_FALSE ) && ( physicalDeviceFragmentShaderInterlockFeaturesEXT.fragmentShaderPixelInterlock == VK_FALSE ) && ( physicalDeviceFragmentShaderInterlockFeaturesEXT.fragmentShaderShadingRateInterlock == VK_FALSE ) )
+		{
+			log << tcu::TestLog::Message << "Mandatory feature fragmentShaderSampleInterlock or fragmentShaderPixelInterlock or fragmentShaderShadingRateInterlock not supported" << tcu::TestLog::EndMessage;
+			result = false;
+		}
+	}
+
+	if ( isExtensionSupported(deviceExtensions, RequiredExtension("VK_EXT_line_rasterization")) )
+	{
+		if ( ( physicalDeviceLineRasterizationFeaturesEXT.rectangularLines == VK_FALSE ) && ( physicalDeviceLineRasterizationFeaturesEXT.bresenhamLines == VK_FALSE ) && ( physicalDeviceLineRasterizationFeaturesEXT.smoothLines == VK_FALSE ) && ( physicalDeviceLineRasterizationFeaturesEXT.stippledRectangularLines == VK_FALSE ) && ( physicalDeviceLineRasterizationFeaturesEXT.stippledBresenhamLines == VK_FALSE ) && ( physicalDeviceLineRasterizationFeaturesEXT.stippledSmoothLines == VK_FALSE ) )
+		{
+			log << tcu::TestLog::Message << "Mandatory feature rectangularLines or bresenhamLines or smoothLines or stippledRectangularLines or stippledBresenhamLines or stippledSmoothLines not supported" << tcu::TestLog::EndMessage;
+			result = false;
+		}
+	}
+
 	return result;
 }
 
diff --git a/external/vulkancts/framework/vulkan/vkNullDriver.cpp b/external/vulkancts/framework/vulkan/vkNullDriver.cpp
index 8b6f6ee..e7b58d8 100644
--- a/external/vulkancts/framework/vulkan/vkNullDriver.cpp
+++ b/external/vulkancts/framework/vulkan/vkNullDriver.cpp
@@ -112,6 +112,31 @@
 	return reinterpret_cast<Handle>(obj);
 }
 
+template<typename Object, typename Handle, typename Parent>
+Handle allocateHandle (Parent parent, const VkAllocationCallbacks* pAllocator)
+{
+	Object* obj = DE_NULL;
+
+	if (pAllocator)
+	{
+		void* mem = allocateSystemMem<Object>(pAllocator, VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);
+		try
+		{
+			obj = new (mem) Object(parent);
+			DE_ASSERT(obj == mem);
+		}
+		catch (...)
+		{
+			pAllocator->pfnFree(pAllocator->pUserData, mem);
+			throw;
+		}
+	}
+	else
+		obj = new Object(parent);
+
+	return reinterpret_cast<Handle>(obj);
+}
+
 template<typename Object, typename Handle>
 void freeHandle (Handle handle, const VkAllocationCallbacks* pAllocator)
 {
@@ -139,6 +164,13 @@
 	return allocateNonDispHandle<Object, Object, Handle, Parent, CreateInfo>(parent, pCreateInfo, pAllocator);
 }
 
+template<typename Object, typename Handle, typename Parent>
+Handle allocateNonDispHandle (Parent parent, const VkAllocationCallbacks* pAllocator)
+{
+	Object* const	obj		= allocateHandle<Object, Object*>(parent, pAllocator);
+	return Handle((deUint64)(deUintptr)obj);
+}
+
 template<typename Object, typename Handle>
 void freeNonDispHandle (Handle handle, const VkAllocationCallbacks* pAllocator)
 {
@@ -244,6 +276,7 @@
 	Pipeline (VkDevice, const VkGraphicsPipelineCreateInfo*) {}
 	Pipeline (VkDevice, const VkComputePipelineCreateInfo*) {}
 	Pipeline (VkDevice, const VkRayTracingPipelineCreateInfoNV*) {}
+	Pipeline (VkDevice, const VkRayTracingPipelineCreateInfoKHR*) {}
 };
 
 class RenderPass
@@ -477,17 +510,10 @@
 };
 #endif // defined(USE_ANDROID_O_HARDWARE_BUFFER)
 
-class IndirectCommandsLayoutNVX
+class IndirectCommandsLayoutNV
 {
 public:
-						IndirectCommandsLayoutNVX	(VkDevice, const VkIndirectCommandsLayoutCreateInfoNVX*)
-						{}
-};
-
-class ObjectTableNVX
-{
-public:
-						ObjectTableNVX				(VkDevice, const VkObjectTableCreateInfoNVX*)
+						IndirectCommandsLayoutNV	(VkDevice, const VkIndirectCommandsLayoutCreateInfoNV*)
 						{}
 };
 
@@ -505,6 +531,20 @@
 						{}
 };
 
+class AccelerationStructureKHR
+{
+public:
+						AccelerationStructureKHR	(VkDevice, const VkAccelerationStructureCreateInfoKHR*)
+						{}
+};
+
+class DeferredOperationKHR
+{
+public:
+						DeferredOperationKHR		(VkDevice)
+						{}
+};
+
 class ValidationCacheEXT
 {
 public:
@@ -526,6 +566,12 @@
 						{}
 };
 
+class PrivateDataSlotEXT
+{
+public:
+						PrivateDataSlotEXT			(VkDevice, const VkPrivateDataSlotCreateInfoEXT*)
+						{}
+};
 
 class CommandPool
 {
@@ -722,7 +768,33 @@
 	}
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createRayTracingPipelinesNV (VkDevice device, VkPipelineCache, deUint32 count, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines)
+VKAPI_ATTR VkResult VKAPI_CALL createRayTracingPipelinesNV (VkDevice device, VkPipelineCache, deUint32 count, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines)
+{
+	deUint32 allocNdx;
+	try
+	{
+		for (allocNdx = 0; allocNdx < count; allocNdx++)
+			pPipelines[allocNdx] = allocateNonDispHandle<Pipeline, VkPipeline>(device, pCreateInfos+allocNdx, pAllocator);
+
+		return VK_SUCCESS;
+	}
+	catch (const std::bad_alloc&)
+	{
+		for (deUint32 freeNdx = 0; freeNdx < allocNdx; freeNdx++)
+			freeNonDispHandle<Pipeline, VkPipeline>(pPipelines[freeNdx], pAllocator);
+
+		return VK_ERROR_OUT_OF_HOST_MEMORY;
+	}
+	catch (VkResult err)
+	{
+		for (deUint32 freeNdx = 0; freeNdx < allocNdx; freeNdx++)
+			freeNonDispHandle<Pipeline, VkPipeline>(pPipelines[freeNdx], pAllocator);
+
+		return err;
+	}
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL createRayTracingPipelinesKHR (VkDevice device, VkPipelineCache, deUint32 count, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines)
 {
 	deUint32 allocNdx;
 	try
diff --git a/external/vulkancts/framework/vulkan/vkNullDriverImpl.inl b/external/vulkancts/framework/vulkan/vkNullDriverImpl.inl
index efb4765..751d5d2 100644
--- a/external/vulkancts/framework/vulkan/vkNullDriverImpl.inl
+++ b/external/vulkancts/framework/vulkan/vkNullDriverImpl.inl
@@ -151,18 +151,6 @@
 	VK_NULL_RETURN((*pCallback = allocateNonDispHandle<DebugReportCallbackEXT, VkDebugReportCallbackEXT>(instance, pCreateInfo, pAllocator)));
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL createIndirectCommandsLayoutNVX (VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout)
-{
-	DE_UNREF(pAllocator);
-	VK_NULL_RETURN((*pIndirectCommandsLayout = allocateNonDispHandle<IndirectCommandsLayoutNVX, VkIndirectCommandsLayoutNVX>(device, pCreateInfo, pAllocator)));
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL createObjectTableNVX (VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable)
-{
-	DE_UNREF(pAllocator);
-	VK_NULL_RETURN((*pObjectTable = allocateNonDispHandle<ObjectTableNVX, VkObjectTableNVX>(device, pCreateInfo, pAllocator)));
-}
-
 VKAPI_ATTR VkResult VKAPI_CALL createDebugUtilsMessengerEXT (VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger)
 {
 	DE_UNREF(pAllocator);
@@ -187,12 +175,36 @@
 	VK_NULL_RETURN((*pSurface = allocateNonDispHandle<SurfaceKHR, VkSurfaceKHR>(instance, pCreateInfo, pAllocator)));
 }
 
+VKAPI_ATTR VkResult VKAPI_CALL createIndirectCommandsLayoutNV (VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout)
+{
+	DE_UNREF(pAllocator);
+	VK_NULL_RETURN((*pIndirectCommandsLayout = allocateNonDispHandle<IndirectCommandsLayoutNV, VkIndirectCommandsLayoutNV>(device, pCreateInfo, pAllocator)));
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL createPrivateDataSlotEXT (VkDevice device, const VkPrivateDataSlotCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlotEXT* pPrivateDataSlot)
+{
+	DE_UNREF(pAllocator);
+	VK_NULL_RETURN((*pPrivateDataSlot = allocateNonDispHandle<PrivateDataSlotEXT, VkPrivateDataSlotEXT>(device, pCreateInfo, pAllocator)));
+}
+
 VKAPI_ATTR VkResult VKAPI_CALL createAndroidSurfaceKHR (VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface)
 {
 	DE_UNREF(pAllocator);
 	VK_NULL_RETURN((*pSurface = allocateNonDispHandle<SurfaceKHR, VkSurfaceKHR>(instance, pCreateInfo, pAllocator)));
 }
 
+VKAPI_ATTR VkResult VKAPI_CALL createDeferredOperationKHR (VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation)
+{
+	DE_UNREF(pAllocator);
+	VK_NULL_RETURN((*pDeferredOperation = allocateNonDispHandle<DeferredOperationKHR, VkDeferredOperationKHR>(device, pAllocator)));
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL createAccelerationStructureKHR (VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure)
+{
+	DE_UNREF(pAllocator);
+	VK_NULL_RETURN((*pAccelerationStructure = allocateNonDispHandle<AccelerationStructureKHR, VkAccelerationStructureKHR>(device, pCreateInfo, pAllocator)));
+}
+
 VKAPI_ATTR VkResult VKAPI_CALL createImagePipeSurfaceFUCHSIA (VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface)
 {
 	DE_UNREF(pAllocator);
@@ -407,18 +419,6 @@
 	freeNonDispHandle<DebugReportCallbackEXT, VkDebugReportCallbackEXT>(callback, pAllocator);
 }
 
-VKAPI_ATTR void VKAPI_CALL destroyIndirectCommandsLayoutNVX (VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator)
-{
-	DE_UNREF(device);
-	freeNonDispHandle<IndirectCommandsLayoutNVX, VkIndirectCommandsLayoutNVX>(indirectCommandsLayout, pAllocator);
-}
-
-VKAPI_ATTR void VKAPI_CALL destroyObjectTableNVX (VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator)
-{
-	DE_UNREF(device);
-	freeNonDispHandle<ObjectTableNVX, VkObjectTableNVX>(objectTable, pAllocator);
-}
-
 VKAPI_ATTR void VKAPI_CALL destroyDebugUtilsMessengerEXT (VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator)
 {
 	DE_UNREF(instance);
@@ -431,12 +431,36 @@
 	freeNonDispHandle<ValidationCacheEXT, VkValidationCacheEXT>(validationCache, pAllocator);
 }
 
+VKAPI_ATTR void VKAPI_CALL destroyAccelerationStructureKHR (VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator)
+{
+	DE_UNREF(device);
+	freeNonDispHandle<AccelerationStructureKHR, VkAccelerationStructureKHR>(accelerationStructure, pAllocator);
+}
+
 VKAPI_ATTR void VKAPI_CALL destroyAccelerationStructureNV (VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator)
 {
 	DE_UNREF(device);
 	freeNonDispHandle<AccelerationStructureNV, VkAccelerationStructureNV>(accelerationStructure, pAllocator);
 }
 
+VKAPI_ATTR void VKAPI_CALL destroyIndirectCommandsLayoutNV (VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator)
+{
+	DE_UNREF(device);
+	freeNonDispHandle<IndirectCommandsLayoutNV, VkIndirectCommandsLayoutNV>(indirectCommandsLayout, pAllocator);
+}
+
+VKAPI_ATTR void VKAPI_CALL destroyPrivateDataSlotEXT (VkDevice device, VkPrivateDataSlotEXT privateDataSlot, const VkAllocationCallbacks* pAllocator)
+{
+	DE_UNREF(device);
+	freeNonDispHandle<PrivateDataSlotEXT, VkPrivateDataSlotEXT>(privateDataSlot, pAllocator);
+}
+
+VKAPI_ATTR void VKAPI_CALL destroyDeferredOperationKHR (VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator)
+{
+	DE_UNREF(device);
+	freeNonDispHandle<DeferredOperationKHR, VkDeferredOperationKHR>(operation, pAllocator);
+}
+
 VKAPI_ATTR VkResult VKAPI_CALL enumerateInstanceLayerProperties (deUint32* pPropertyCount, VkLayerProperties* pProperties)
 {
 	DE_UNREF(pPropertyCount);
@@ -1747,6 +1771,14 @@
 	return VK_SUCCESS;
 }
 
+VKAPI_ATTR VkResult VKAPI_CALL getImageViewAddressNVX (VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties)
+{
+	DE_UNREF(device);
+	DE_UNREF(imageView);
+	DE_UNREF(pProperties);
+	return VK_SUCCESS;
+}
+
 VKAPI_ATTR void VKAPI_CALL cmdDrawIndirectCountAMD (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride)
 {
 	DE_UNREF(commandBuffer);
@@ -1804,45 +1836,6 @@
 	DE_UNREF(commandBuffer);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdProcessCommandsNVX (VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo)
-{
-	DE_UNREF(commandBuffer);
-	DE_UNREF(pProcessCommandsInfo);
-}
-
-VKAPI_ATTR void VKAPI_CALL cmdReserveSpaceForCommandsNVX (VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo)
-{
-	DE_UNREF(commandBuffer);
-	DE_UNREF(pReserveSpaceInfo);
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL registerObjectsNVX (VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectTableEntryNVX* const* ppObjectTableEntries, const deUint32* pObjectIndices)
-{
-	DE_UNREF(device);
-	DE_UNREF(objectTable);
-	DE_UNREF(objectCount);
-	DE_UNREF(ppObjectTableEntries);
-	DE_UNREF(pObjectIndices);
-	return VK_SUCCESS;
-}
-
-VKAPI_ATTR VkResult VKAPI_CALL unregisterObjectsNVX (VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const deUint32* pObjectIndices)
-{
-	DE_UNREF(device);
-	DE_UNREF(objectTable);
-	DE_UNREF(objectCount);
-	DE_UNREF(pObjectEntryTypes);
-	DE_UNREF(pObjectIndices);
-	return VK_SUCCESS;
-}
-
-VKAPI_ATTR void VKAPI_CALL getPhysicalDeviceGeneratedCommandsPropertiesNVX (VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits)
-{
-	DE_UNREF(physicalDevice);
-	DE_UNREF(pFeatures);
-	DE_UNREF(pLimits);
-}
-
 VKAPI_ATTR void VKAPI_CALL cmdSetViewportWScalingNV (VkCommandBuffer commandBuffer, deUint32 firstViewport, deUint32 viewportCount, const VkViewportWScalingNV* pViewportWScalings)
 {
 	DE_UNREF(commandBuffer);
@@ -2060,7 +2053,7 @@
 	DE_UNREF(pMemoryRequirements);
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL bindAccelerationStructureMemoryNV (VkDevice device, deUint32 bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos)
+VKAPI_ATTR VkResult VKAPI_CALL bindAccelerationStructureMemoryKHR (VkDevice device, deUint32 bindInfoCount, const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos)
 {
 	DE_UNREF(device);
 	DE_UNREF(bindInfoCount);
@@ -2068,7 +2061,15 @@
 	return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdBuildAccelerationStructureNV (VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset)
+VKAPI_ATTR VkResult VKAPI_CALL bindAccelerationStructureMemoryNV (VkDevice device, deUint32 bindInfoCount, const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos)
+{
+	DE_UNREF(device);
+	DE_UNREF(bindInfoCount);
+	DE_UNREF(pBindInfos);
+	return VK_SUCCESS;
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdBuildAccelerationStructureNV (VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureKHR dst, VkAccelerationStructureKHR src, VkBuffer scratch, VkDeviceSize scratchOffset)
 {
 	DE_UNREF(commandBuffer);
 	DE_UNREF(pInfo);
@@ -2081,7 +2082,7 @@
 	DE_UNREF(scratchOffset);
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdCopyAccelerationStructureNV (VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeNV mode)
+VKAPI_ATTR void VKAPI_CALL cmdCopyAccelerationStructureNV (VkCommandBuffer commandBuffer, VkAccelerationStructureKHR dst, VkAccelerationStructureKHR src, VkCopyAccelerationStructureModeKHR mode)
 {
 	DE_UNREF(commandBuffer);
 	DE_UNREF(dst);
@@ -2108,6 +2109,17 @@
 	DE_UNREF(depth);
 }
 
+VKAPI_ATTR VkResult VKAPI_CALL getRayTracingShaderGroupHandlesKHR (VkDevice device, VkPipeline pipeline, deUint32 firstGroup, deUint32 groupCount, deUintptr dataSize, void* pData)
+{
+	DE_UNREF(device);
+	DE_UNREF(pipeline);
+	DE_UNREF(firstGroup);
+	DE_UNREF(groupCount);
+	DE_UNREF(dataSize);
+	DE_UNREF(pData);
+	return VK_SUCCESS;
+}
+
 VKAPI_ATTR VkResult VKAPI_CALL getRayTracingShaderGroupHandlesNV (VkDevice device, VkPipeline pipeline, deUint32 firstGroup, deUint32 groupCount, deUintptr dataSize, void* pData)
 {
 	DE_UNREF(device);
@@ -2119,7 +2131,7 @@
 	return VK_SUCCESS;
 }
 
-VKAPI_ATTR VkResult VKAPI_CALL getAccelerationStructureHandleNV (VkDevice device, VkAccelerationStructureNV accelerationStructure, deUintptr dataSize, void* pData)
+VKAPI_ATTR VkResult VKAPI_CALL getAccelerationStructureHandleNV (VkDevice device, VkAccelerationStructureKHR accelerationStructure, deUintptr dataSize, void* pData)
 {
 	DE_UNREF(device);
 	DE_UNREF(accelerationStructure);
@@ -2128,7 +2140,17 @@
 	return VK_SUCCESS;
 }
 
-VKAPI_ATTR void VKAPI_CALL cmdWriteAccelerationStructuresPropertiesNV (VkCommandBuffer commandBuffer, deUint32 accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, deUint32 firstQuery)
+VKAPI_ATTR void VKAPI_CALL cmdWriteAccelerationStructuresPropertiesKHR (VkCommandBuffer commandBuffer, deUint32 accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, deUint32 firstQuery)
+{
+	DE_UNREF(commandBuffer);
+	DE_UNREF(accelerationStructureCount);
+	DE_UNREF(pAccelerationStructures);
+	DE_UNREF(queryType);
+	DE_UNREF(queryPool);
+	DE_UNREF(firstQuery);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdWriteAccelerationStructuresPropertiesNV (VkCommandBuffer commandBuffer, deUint32 accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, deUint32 firstQuery)
 {
 	DE_UNREF(commandBuffer);
 	DE_UNREF(accelerationStructureCount);
@@ -2338,6 +2360,136 @@
 	DE_UNREF(lineStipplePattern);
 }
 
+VKAPI_ATTR void VKAPI_CALL cmdSetCullModeEXT (VkCommandBuffer commandBuffer, VkCullModeFlags cullMode)
+{
+	DE_UNREF(commandBuffer);
+	DE_UNREF(cullMode);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdSetFrontFaceEXT (VkCommandBuffer commandBuffer, VkFrontFace frontFace)
+{
+	DE_UNREF(commandBuffer);
+	DE_UNREF(frontFace);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdSetPrimitiveTopologyEXT (VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology)
+{
+	DE_UNREF(commandBuffer);
+	DE_UNREF(primitiveTopology);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdSetViewportWithCountEXT (VkCommandBuffer commandBuffer, deUint32 viewportCount, const VkViewport* pViewports)
+{
+	DE_UNREF(commandBuffer);
+	DE_UNREF(viewportCount);
+	DE_UNREF(pViewports);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdSetScissorWithCountEXT (VkCommandBuffer commandBuffer, deUint32 scissorCount, const VkRect2D* pScissors)
+{
+	DE_UNREF(commandBuffer);
+	DE_UNREF(scissorCount);
+	DE_UNREF(pScissors);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdBindVertexBuffers2EXT (VkCommandBuffer commandBuffer, deUint32 firstBinding, deUint32 bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides)
+{
+	DE_UNREF(commandBuffer);
+	DE_UNREF(firstBinding);
+	DE_UNREF(bindingCount);
+	DE_UNREF(pBuffers);
+	DE_UNREF(pOffsets);
+	DE_UNREF(pSizes);
+	DE_UNREF(pStrides);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdSetDepthTestEnableEXT (VkCommandBuffer commandBuffer, VkBool32 depthTestEnable)
+{
+	DE_UNREF(commandBuffer);
+	DE_UNREF(depthTestEnable);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdSetDepthWriteEnableEXT (VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable)
+{
+	DE_UNREF(commandBuffer);
+	DE_UNREF(depthWriteEnable);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdSetDepthCompareOpEXT (VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp)
+{
+	DE_UNREF(commandBuffer);
+	DE_UNREF(depthCompareOp);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdSetDepthBoundsTestEnableEXT (VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable)
+{
+	DE_UNREF(commandBuffer);
+	DE_UNREF(depthBoundsTestEnable);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdSetStencilTestEnableEXT (VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable)
+{
+	DE_UNREF(commandBuffer);
+	DE_UNREF(stencilTestEnable);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdSetStencilOpEXT (VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp)
+{
+	DE_UNREF(commandBuffer);
+	DE_UNREF(faceMask);
+	DE_UNREF(failOp);
+	DE_UNREF(passOp);
+	DE_UNREF(depthFailOp);
+	DE_UNREF(compareOp);
+}
+
+VKAPI_ATTR void VKAPI_CALL getGeneratedCommandsMemoryRequirementsNV (VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements)
+{
+	DE_UNREF(device);
+	DE_UNREF(pInfo);
+	DE_UNREF(pMemoryRequirements);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdPreprocessGeneratedCommandsNV (VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo)
+{
+	DE_UNREF(commandBuffer);
+	DE_UNREF(pGeneratedCommandsInfo);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdExecuteGeneratedCommandsNV (VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo)
+{
+	DE_UNREF(commandBuffer);
+	DE_UNREF(isPreprocessed);
+	DE_UNREF(pGeneratedCommandsInfo);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdBindPipelineShaderGroupNV (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, deUint32 groupIndex)
+{
+	DE_UNREF(commandBuffer);
+	DE_UNREF(pipelineBindPoint);
+	DE_UNREF(pipeline);
+	DE_UNREF(groupIndex);
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL setPrivateDataEXT (VkDevice device, VkObjectType objectType, deUint64 objectHandle, VkPrivateDataSlotEXT privateDataSlot, deUint64 data)
+{
+	DE_UNREF(device);
+	DE_UNREF(objectType);
+	DE_UNREF(objectHandle);
+	DE_UNREF(privateDataSlot);
+	DE_UNREF(data);
+	return VK_SUCCESS;
+}
+
+VKAPI_ATTR void VKAPI_CALL getPrivateDataEXT (VkDevice device, VkObjectType objectType, deUint64 objectHandle, VkPrivateDataSlotEXT privateDataSlot, deUint64* pData)
+{
+	DE_UNREF(device);
+	DE_UNREF(objectType);
+	DE_UNREF(objectHandle);
+	DE_UNREF(privateDataSlot);
+	DE_UNREF(pData);
+}
+
 VKAPI_ATTR VkResult VKAPI_CALL getAndroidHardwareBufferPropertiesANDROID (VkDevice device, const struct pt::AndroidHardwareBufferPtr buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties)
 {
 	DE_UNREF(device);
@@ -2346,6 +2498,159 @@
 	return VK_SUCCESS;
 }
 
+VKAPI_ATTR uint32_t VKAPI_CALL getDeferredOperationMaxConcurrencyKHR (VkDevice device, VkDeferredOperationKHR operation)
+{
+	DE_UNREF(device);
+	DE_UNREF(operation);
+	return VK_SUCCESS;
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL getDeferredOperationResultKHR (VkDevice device, VkDeferredOperationKHR operation)
+{
+	DE_UNREF(device);
+	DE_UNREF(operation);
+	return VK_SUCCESS;
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL deferredOperationJoinKHR (VkDevice device, VkDeferredOperationKHR operation)
+{
+	DE_UNREF(device);
+	DE_UNREF(operation);
+	return VK_SUCCESS;
+}
+
+VKAPI_ATTR void VKAPI_CALL getAccelerationStructureMemoryRequirementsKHR (VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoKHR* pInfo, VkMemoryRequirements2* pMemoryRequirements)
+{
+	DE_UNREF(device);
+	DE_UNREF(pInfo);
+	DE_UNREF(pMemoryRequirements);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdBuildAccelerationStructureKHR (VkCommandBuffer commandBuffer, deUint32 infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildOffsetInfoKHR* const* ppOffsetInfos)
+{
+	DE_UNREF(commandBuffer);
+	DE_UNREF(infoCount);
+	DE_UNREF(pInfos);
+	DE_UNREF(ppOffsetInfos);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdBuildAccelerationStructureIndirectKHR (VkCommandBuffer commandBuffer, const VkAccelerationStructureBuildGeometryInfoKHR* pInfo, VkBuffer indirectBuffer, VkDeviceSize indirectOffset, deUint32 indirectStride)
+{
+	DE_UNREF(commandBuffer);
+	DE_UNREF(pInfo);
+	DE_UNREF(indirectBuffer);
+	DE_UNREF(indirectOffset);
+	DE_UNREF(indirectStride);
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL buildAccelerationStructureKHR (VkDevice device, deUint32 infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildOffsetInfoKHR* const* ppOffsetInfos)
+{
+	DE_UNREF(device);
+	DE_UNREF(infoCount);
+	DE_UNREF(pInfos);
+	DE_UNREF(ppOffsetInfos);
+	return VK_SUCCESS;
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL copyAccelerationStructureKHR (VkDevice device, const VkCopyAccelerationStructureInfoKHR* pInfo)
+{
+	DE_UNREF(device);
+	DE_UNREF(pInfo);
+	return VK_SUCCESS;
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL copyAccelerationStructureToMemoryKHR (VkDevice device, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo)
+{
+	DE_UNREF(device);
+	DE_UNREF(pInfo);
+	return VK_SUCCESS;
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL copyMemoryToAccelerationStructureKHR (VkDevice device, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo)
+{
+	DE_UNREF(device);
+	DE_UNREF(pInfo);
+	return VK_SUCCESS;
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL writeAccelerationStructuresPropertiesKHR (VkDevice device, deUint32 accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, deUintptr dataSize, void* pData, deUintptr stride)
+{
+	DE_UNREF(device);
+	DE_UNREF(accelerationStructureCount);
+	DE_UNREF(pAccelerationStructures);
+	DE_UNREF(queryType);
+	DE_UNREF(dataSize);
+	DE_UNREF(pData);
+	DE_UNREF(stride);
+	return VK_SUCCESS;
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdCopyAccelerationStructureKHR (VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo)
+{
+	DE_UNREF(commandBuffer);
+	DE_UNREF(pInfo);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdCopyAccelerationStructureToMemoryKHR (VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo)
+{
+	DE_UNREF(commandBuffer);
+	DE_UNREF(pInfo);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdCopyMemoryToAccelerationStructureKHR (VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo)
+{
+	DE_UNREF(commandBuffer);
+	DE_UNREF(pInfo);
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdTraceRaysKHR (VkCommandBuffer commandBuffer, const VkStridedBufferRegionKHR* pRaygenShaderBindingTable, const VkStridedBufferRegionKHR* pMissShaderBindingTable, const VkStridedBufferRegionKHR* pHitShaderBindingTable, const VkStridedBufferRegionKHR* pCallableShaderBindingTable, deUint32 width, deUint32 height, deUint32 depth)
+{
+	DE_UNREF(commandBuffer);
+	DE_UNREF(pRaygenShaderBindingTable);
+	DE_UNREF(pMissShaderBindingTable);
+	DE_UNREF(pHitShaderBindingTable);
+	DE_UNREF(pCallableShaderBindingTable);
+	DE_UNREF(width);
+	DE_UNREF(height);
+	DE_UNREF(depth);
+}
+
+VKAPI_ATTR VkDeviceAddress VKAPI_CALL getAccelerationStructureDeviceAddressKHR (VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo)
+{
+	DE_UNREF(device);
+	DE_UNREF(pInfo);
+	return VK_SUCCESS;
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL getRayTracingCaptureReplayShaderGroupHandlesKHR (VkDevice device, VkPipeline pipeline, deUint32 firstGroup, deUint32 groupCount, deUintptr dataSize, void* pData)
+{
+	DE_UNREF(device);
+	DE_UNREF(pipeline);
+	DE_UNREF(firstGroup);
+	DE_UNREF(groupCount);
+	DE_UNREF(dataSize);
+	DE_UNREF(pData);
+	return VK_SUCCESS;
+}
+
+VKAPI_ATTR void VKAPI_CALL cmdTraceRaysIndirectKHR (VkCommandBuffer commandBuffer, const VkStridedBufferRegionKHR* pRaygenShaderBindingTable, const VkStridedBufferRegionKHR* pMissShaderBindingTable, const VkStridedBufferRegionKHR* pHitShaderBindingTable, const VkStridedBufferRegionKHR* pCallableShaderBindingTable, VkBuffer buffer, VkDeviceSize offset)
+{
+	DE_UNREF(commandBuffer);
+	DE_UNREF(pRaygenShaderBindingTable);
+	DE_UNREF(pMissShaderBindingTable);
+	DE_UNREF(pHitShaderBindingTable);
+	DE_UNREF(pCallableShaderBindingTable);
+	DE_UNREF(buffer);
+	DE_UNREF(offset);
+}
+
+VKAPI_ATTR VkResult VKAPI_CALL getDeviceAccelerationStructureCompatibilityKHR (VkDevice device, const VkAccelerationStructureVersionKHR* version)
+{
+	DE_UNREF(device);
+	DE_UNREF(version);
+	return VK_SUCCESS;
+}
+
 VKAPI_ATTR VkBool32 VKAPI_CALL getPhysicalDeviceWaylandPresentationSupportKHR (VkPhysicalDevice physicalDevice, deUint32 queueFamilyIndex, pt::WaylandDisplayPtr display)
 {
 	DE_UNREF(physicalDevice);
@@ -2553,7 +2858,6 @@
 	VK_NULL_FUNC_ENTRY(vkDestroyDebugReportCallbackEXT,										destroyDebugReportCallbackEXT),
 	VK_NULL_FUNC_ENTRY(vkDebugReportMessageEXT,												debugReportMessageEXT),
 	VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceExternalImageFormatPropertiesNV,					getPhysicalDeviceExternalImageFormatPropertiesNV),
-	VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX,					getPhysicalDeviceGeneratedCommandsPropertiesNVX),
 	VK_NULL_FUNC_ENTRY(vkReleaseDisplayEXT,													releaseDisplayEXT),
 	VK_NULL_FUNC_ENTRY(vkGetPhysicalDeviceSurfaceCapabilities2EXT,							getPhysicalDeviceSurfaceCapabilities2EXT),
 	VK_NULL_FUNC_ENTRY(vkCreateDebugUtilsMessengerEXT,										createDebugUtilsMessengerEXT),
@@ -2799,19 +3103,12 @@
 	VK_NULL_FUNC_ENTRY(vkCmdEndQueryIndexedEXT,								cmdEndQueryIndexedEXT),
 	VK_NULL_FUNC_ENTRY(vkCmdDrawIndirectByteCountEXT,						cmdDrawIndirectByteCountEXT),
 	VK_NULL_FUNC_ENTRY(vkGetImageViewHandleNVX,								getImageViewHandleNVX),
+	VK_NULL_FUNC_ENTRY(vkGetImageViewAddressNVX,							getImageViewAddressNVX),
 	VK_NULL_FUNC_ENTRY(vkCmdDrawIndirectCountAMD,							cmdDrawIndirectCountAMD),
 	VK_NULL_FUNC_ENTRY(vkCmdDrawIndexedIndirectCountAMD,					cmdDrawIndexedIndirectCountAMD),
 	VK_NULL_FUNC_ENTRY(vkGetShaderInfoAMD,									getShaderInfoAMD),
 	VK_NULL_FUNC_ENTRY(vkCmdBeginConditionalRenderingEXT,					cmdBeginConditionalRenderingEXT),
 	VK_NULL_FUNC_ENTRY(vkCmdEndConditionalRenderingEXT,						cmdEndConditionalRenderingEXT),
-	VK_NULL_FUNC_ENTRY(vkCmdProcessCommandsNVX,								cmdProcessCommandsNVX),
-	VK_NULL_FUNC_ENTRY(vkCmdReserveSpaceForCommandsNVX,						cmdReserveSpaceForCommandsNVX),
-	VK_NULL_FUNC_ENTRY(vkCreateIndirectCommandsLayoutNVX,					createIndirectCommandsLayoutNVX),
-	VK_NULL_FUNC_ENTRY(vkDestroyIndirectCommandsLayoutNVX,					destroyIndirectCommandsLayoutNVX),
-	VK_NULL_FUNC_ENTRY(vkCreateObjectTableNVX,								createObjectTableNVX),
-	VK_NULL_FUNC_ENTRY(vkDestroyObjectTableNVX,								destroyObjectTableNVX),
-	VK_NULL_FUNC_ENTRY(vkRegisterObjectsNVX,								registerObjectsNVX),
-	VK_NULL_FUNC_ENTRY(vkUnregisterObjectsNVX,								unregisterObjectsNVX),
 	VK_NULL_FUNC_ENTRY(vkCmdSetViewportWScalingNV,							cmdSetViewportWScalingNV),
 	VK_NULL_FUNC_ENTRY(vkDisplayPowerControlEXT,							displayPowerControlEXT),
 	VK_NULL_FUNC_ENTRY(vkRegisterDeviceEventEXT,							registerDeviceEventEXT),
@@ -2839,15 +3136,19 @@
 	VK_NULL_FUNC_ENTRY(vkCmdSetViewportShadingRatePaletteNV,				cmdSetViewportShadingRatePaletteNV),
 	VK_NULL_FUNC_ENTRY(vkCmdSetCoarseSampleOrderNV,							cmdSetCoarseSampleOrderNV),
 	VK_NULL_FUNC_ENTRY(vkCreateAccelerationStructureNV,						createAccelerationStructureNV),
+	VK_NULL_FUNC_ENTRY(vkDestroyAccelerationStructureKHR,					destroyAccelerationStructureKHR),
 	VK_NULL_FUNC_ENTRY(vkDestroyAccelerationStructureNV,					destroyAccelerationStructureNV),
 	VK_NULL_FUNC_ENTRY(vkGetAccelerationStructureMemoryRequirementsNV,		getAccelerationStructureMemoryRequirementsNV),
+	VK_NULL_FUNC_ENTRY(vkBindAccelerationStructureMemoryKHR,				bindAccelerationStructureMemoryKHR),
 	VK_NULL_FUNC_ENTRY(vkBindAccelerationStructureMemoryNV,					bindAccelerationStructureMemoryNV),
 	VK_NULL_FUNC_ENTRY(vkCmdBuildAccelerationStructureNV,					cmdBuildAccelerationStructureNV),
 	VK_NULL_FUNC_ENTRY(vkCmdCopyAccelerationStructureNV,					cmdCopyAccelerationStructureNV),
 	VK_NULL_FUNC_ENTRY(vkCmdTraceRaysNV,									cmdTraceRaysNV),
 	VK_NULL_FUNC_ENTRY(vkCreateRayTracingPipelinesNV,						createRayTracingPipelinesNV),
+	VK_NULL_FUNC_ENTRY(vkGetRayTracingShaderGroupHandlesKHR,				getRayTracingShaderGroupHandlesKHR),
 	VK_NULL_FUNC_ENTRY(vkGetRayTracingShaderGroupHandlesNV,					getRayTracingShaderGroupHandlesNV),
 	VK_NULL_FUNC_ENTRY(vkGetAccelerationStructureHandleNV,					getAccelerationStructureHandleNV),
+	VK_NULL_FUNC_ENTRY(vkCmdWriteAccelerationStructuresPropertiesKHR,		cmdWriteAccelerationStructuresPropertiesKHR),
 	VK_NULL_FUNC_ENTRY(vkCmdWriteAccelerationStructuresPropertiesNV,		cmdWriteAccelerationStructuresPropertiesNV),
 	VK_NULL_FUNC_ENTRY(vkCompileDeferredNV,									compileDeferredNV),
 	VK_NULL_FUNC_ENTRY(vkGetMemoryHostPointerPropertiesEXT,					getMemoryHostPointerPropertiesEXT),
@@ -2872,8 +3173,53 @@
 	VK_NULL_FUNC_ENTRY(vkGetBufferDeviceAddressEXT,							getBufferDeviceAddressEXT),
 	VK_NULL_FUNC_ENTRY(vkCmdSetLineStippleEXT,								cmdSetLineStippleEXT),
 	VK_NULL_FUNC_ENTRY(vkResetQueryPoolEXT,									resetQueryPool),
+	VK_NULL_FUNC_ENTRY(vkCmdSetCullModeEXT,									cmdSetCullModeEXT),
+	VK_NULL_FUNC_ENTRY(vkCmdSetFrontFaceEXT,								cmdSetFrontFaceEXT),
+	VK_NULL_FUNC_ENTRY(vkCmdSetPrimitiveTopologyEXT,						cmdSetPrimitiveTopologyEXT),
+	VK_NULL_FUNC_ENTRY(vkCmdSetViewportWithCountEXT,						cmdSetViewportWithCountEXT),
+	VK_NULL_FUNC_ENTRY(vkCmdSetScissorWithCountEXT,							cmdSetScissorWithCountEXT),
+	VK_NULL_FUNC_ENTRY(vkCmdBindVertexBuffers2EXT,							cmdBindVertexBuffers2EXT),
+	VK_NULL_FUNC_ENTRY(vkCmdSetDepthTestEnableEXT,							cmdSetDepthTestEnableEXT),
+	VK_NULL_FUNC_ENTRY(vkCmdSetDepthWriteEnableEXT,							cmdSetDepthWriteEnableEXT),
+	VK_NULL_FUNC_ENTRY(vkCmdSetDepthCompareOpEXT,							cmdSetDepthCompareOpEXT),
+	VK_NULL_FUNC_ENTRY(vkCmdSetDepthBoundsTestEnableEXT,					cmdSetDepthBoundsTestEnableEXT),
+	VK_NULL_FUNC_ENTRY(vkCmdSetStencilTestEnableEXT,						cmdSetStencilTestEnableEXT),
+	VK_NULL_FUNC_ENTRY(vkCmdSetStencilOpEXT,								cmdSetStencilOpEXT),
+	VK_NULL_FUNC_ENTRY(vkGetGeneratedCommandsMemoryRequirementsNV,			getGeneratedCommandsMemoryRequirementsNV),
+	VK_NULL_FUNC_ENTRY(vkCmdPreprocessGeneratedCommandsNV,					cmdPreprocessGeneratedCommandsNV),
+	VK_NULL_FUNC_ENTRY(vkCmdExecuteGeneratedCommandsNV,						cmdExecuteGeneratedCommandsNV),
+	VK_NULL_FUNC_ENTRY(vkCmdBindPipelineShaderGroupNV,						cmdBindPipelineShaderGroupNV),
+	VK_NULL_FUNC_ENTRY(vkCreateIndirectCommandsLayoutNV,					createIndirectCommandsLayoutNV),
+	VK_NULL_FUNC_ENTRY(vkDestroyIndirectCommandsLayoutNV,					destroyIndirectCommandsLayoutNV),
+	VK_NULL_FUNC_ENTRY(vkCreatePrivateDataSlotEXT,							createPrivateDataSlotEXT),
+	VK_NULL_FUNC_ENTRY(vkDestroyPrivateDataSlotEXT,							destroyPrivateDataSlotEXT),
+	VK_NULL_FUNC_ENTRY(vkSetPrivateDataEXT,									setPrivateDataEXT),
+	VK_NULL_FUNC_ENTRY(vkGetPrivateDataEXT,									getPrivateDataEXT),
 	VK_NULL_FUNC_ENTRY(vkGetAndroidHardwareBufferPropertiesANDROID,			getAndroidHardwareBufferPropertiesANDROID),
 	VK_NULL_FUNC_ENTRY(vkGetMemoryAndroidHardwareBufferANDROID,				getMemoryAndroidHardwareBufferANDROID),
+	VK_NULL_FUNC_ENTRY(vkCreateDeferredOperationKHR,						createDeferredOperationKHR),
+	VK_NULL_FUNC_ENTRY(vkDestroyDeferredOperationKHR,						destroyDeferredOperationKHR),
+	VK_NULL_FUNC_ENTRY(vkGetDeferredOperationMaxConcurrencyKHR,				getDeferredOperationMaxConcurrencyKHR),
+	VK_NULL_FUNC_ENTRY(vkGetDeferredOperationResultKHR,						getDeferredOperationResultKHR),
+	VK_NULL_FUNC_ENTRY(vkDeferredOperationJoinKHR,							deferredOperationJoinKHR),
+	VK_NULL_FUNC_ENTRY(vkCreateAccelerationStructureKHR,					createAccelerationStructureKHR),
+	VK_NULL_FUNC_ENTRY(vkGetAccelerationStructureMemoryRequirementsKHR,		getAccelerationStructureMemoryRequirementsKHR),
+	VK_NULL_FUNC_ENTRY(vkCmdBuildAccelerationStructureKHR,					cmdBuildAccelerationStructureKHR),
+	VK_NULL_FUNC_ENTRY(vkCmdBuildAccelerationStructureIndirectKHR,			cmdBuildAccelerationStructureIndirectKHR),
+	VK_NULL_FUNC_ENTRY(vkBuildAccelerationStructureKHR,						buildAccelerationStructureKHR),
+	VK_NULL_FUNC_ENTRY(vkCopyAccelerationStructureKHR,						copyAccelerationStructureKHR),
+	VK_NULL_FUNC_ENTRY(vkCopyAccelerationStructureToMemoryKHR,				copyAccelerationStructureToMemoryKHR),
+	VK_NULL_FUNC_ENTRY(vkCopyMemoryToAccelerationStructureKHR,				copyMemoryToAccelerationStructureKHR),
+	VK_NULL_FUNC_ENTRY(vkWriteAccelerationStructuresPropertiesKHR,			writeAccelerationStructuresPropertiesKHR),
+	VK_NULL_FUNC_ENTRY(vkCmdCopyAccelerationStructureKHR,					cmdCopyAccelerationStructureKHR),
+	VK_NULL_FUNC_ENTRY(vkCmdCopyAccelerationStructureToMemoryKHR,			cmdCopyAccelerationStructureToMemoryKHR),
+	VK_NULL_FUNC_ENTRY(vkCmdCopyMemoryToAccelerationStructureKHR,			cmdCopyMemoryToAccelerationStructureKHR),
+	VK_NULL_FUNC_ENTRY(vkCmdTraceRaysKHR,									cmdTraceRaysKHR),
+	VK_NULL_FUNC_ENTRY(vkCreateRayTracingPipelinesKHR,						createRayTracingPipelinesKHR),
+	VK_NULL_FUNC_ENTRY(vkGetAccelerationStructureDeviceAddressKHR,			getAccelerationStructureDeviceAddressKHR),
+	VK_NULL_FUNC_ENTRY(vkGetRayTracingCaptureReplayShaderGroupHandlesKHR,	getRayTracingCaptureReplayShaderGroupHandlesKHR),
+	VK_NULL_FUNC_ENTRY(vkCmdTraceRaysIndirectKHR,							cmdTraceRaysIndirectKHR),
+	VK_NULL_FUNC_ENTRY(vkGetDeviceAccelerationStructureCompatibilityKHR,	getDeviceAccelerationStructureCompatibilityKHR),
 	VK_NULL_FUNC_ENTRY(vkGetMemoryWin32HandleKHR,							getMemoryWin32HandleKHR),
 	VK_NULL_FUNC_ENTRY(vkGetMemoryWin32HandlePropertiesKHR,					getMemoryWin32HandlePropertiesKHR),
 	VK_NULL_FUNC_ENTRY(vkImportSemaphoreWin32HandleKHR,						importSemaphoreWin32HandleKHR),
diff --git a/external/vulkancts/framework/vulkan/vkObjTypeImpl.inl b/external/vulkancts/framework/vulkan/vkObjTypeImpl.inl
new file mode 100644
index 0000000..a771db1
--- /dev/null
+++ b/external/vulkancts/framework/vulkan/vkObjTypeImpl.inl
@@ -0,0 +1,47 @@
+/* WARNING: This is auto-generated file. Do not modify, since changes will
+ * be lost! Modify the generating script instead.
+ */
+namespace vk
+{
+template<typename T> VkObjectType getObjectType	(void);
+template<> inline VkObjectType	getObjectType<VkBuffer>							(void) { return VK_OBJECT_TYPE_BUFFER;							}
+template<> inline VkObjectType	getObjectType<VkImage>							(void) { return VK_OBJECT_TYPE_IMAGE;							}
+template<> inline VkObjectType	getObjectType<VkInstance>						(void) { return VK_OBJECT_TYPE_INSTANCE;						}
+template<> inline VkObjectType	getObjectType<VkPhysicalDevice>					(void) { return VK_OBJECT_TYPE_PHYSICAL_DEVICE;					}
+template<> inline VkObjectType	getObjectType<VkDevice>							(void) { return VK_OBJECT_TYPE_DEVICE;							}
+template<> inline VkObjectType	getObjectType<VkQueue>							(void) { return VK_OBJECT_TYPE_QUEUE;							}
+template<> inline VkObjectType	getObjectType<VkSemaphore>						(void) { return VK_OBJECT_TYPE_SEMAPHORE;						}
+template<> inline VkObjectType	getObjectType<VkCommandBuffer>					(void) { return VK_OBJECT_TYPE_COMMAND_BUFFER;					}
+template<> inline VkObjectType	getObjectType<VkFence>							(void) { return VK_OBJECT_TYPE_FENCE;							}
+template<> inline VkObjectType	getObjectType<VkDeviceMemory>					(void) { return VK_OBJECT_TYPE_DEVICE_MEMORY;					}
+template<> inline VkObjectType	getObjectType<VkEvent>							(void) { return VK_OBJECT_TYPE_EVENT;							}
+template<> inline VkObjectType	getObjectType<VkQueryPool>						(void) { return VK_OBJECT_TYPE_QUERY_POOL;						}
+template<> inline VkObjectType	getObjectType<VkBufferView>						(void) { return VK_OBJECT_TYPE_BUFFER_VIEW;						}
+template<> inline VkObjectType	getObjectType<VkImageView>						(void) { return VK_OBJECT_TYPE_IMAGE_VIEW;						}
+template<> inline VkObjectType	getObjectType<VkShaderModule>					(void) { return VK_OBJECT_TYPE_SHADER_MODULE;					}
+template<> inline VkObjectType	getObjectType<VkPipelineCache>					(void) { return VK_OBJECT_TYPE_PIPELINE_CACHE;					}
+template<> inline VkObjectType	getObjectType<VkPipelineLayout>					(void) { return VK_OBJECT_TYPE_PIPELINE_LAYOUT;					}
+template<> inline VkObjectType	getObjectType<VkPipeline>						(void) { return VK_OBJECT_TYPE_PIPELINE;						}
+template<> inline VkObjectType	getObjectType<VkRenderPass>						(void) { return VK_OBJECT_TYPE_RENDER_PASS;						}
+template<> inline VkObjectType	getObjectType<VkDescriptorSetLayout>			(void) { return VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT;			}
+template<> inline VkObjectType	getObjectType<VkSampler>						(void) { return VK_OBJECT_TYPE_SAMPLER;							}
+template<> inline VkObjectType	getObjectType<VkDescriptorSet>					(void) { return VK_OBJECT_TYPE_DESCRIPTOR_SET;					}
+template<> inline VkObjectType	getObjectType<VkDescriptorPool>					(void) { return VK_OBJECT_TYPE_DESCRIPTOR_POOL;					}
+template<> inline VkObjectType	getObjectType<VkFramebuffer>					(void) { return VK_OBJECT_TYPE_FRAMEBUFFER;						}
+template<> inline VkObjectType	getObjectType<VkCommandPool>					(void) { return VK_OBJECT_TYPE_COMMAND_POOL;					}
+template<> inline VkObjectType	getObjectType<VkSamplerYcbcrConversion>			(void) { return VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION;		}
+template<> inline VkObjectType	getObjectType<VkDescriptorUpdateTemplate>		(void) { return VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE;		}
+template<> inline VkObjectType	getObjectType<VkSurfaceKHR>						(void) { return VK_OBJECT_TYPE_SURFACE_KHR;						}
+template<> inline VkObjectType	getObjectType<VkSwapchainKHR>					(void) { return VK_OBJECT_TYPE_SWAPCHAIN_KHR;					}
+template<> inline VkObjectType	getObjectType<VkDisplayKHR>						(void) { return VK_OBJECT_TYPE_DISPLAY_KHR;						}
+template<> inline VkObjectType	getObjectType<VkDisplayModeKHR>					(void) { return VK_OBJECT_TYPE_DISPLAY_MODE_KHR;				}
+template<> inline VkObjectType	getObjectType<VkDebugReportCallbackEXT>			(void) { return VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT;		}
+template<> inline VkObjectType	getObjectType<VkDebugUtilsMessengerEXT>			(void) { return VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT;		}
+template<> inline VkObjectType	getObjectType<VkValidationCacheEXT>				(void) { return VK_OBJECT_TYPE_VALIDATION_CACHE_EXT;			}
+template<> inline VkObjectType	getObjectType<VkAccelerationStructureKHR>		(void) { return VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR;		}
+template<> inline VkObjectType	getObjectType<VkPerformanceConfigurationINTEL>	(void) { return VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL;	}
+template<> inline VkObjectType	getObjectType<VkIndirectCommandsLayoutNV>		(void) { return VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV;		}
+template<> inline VkObjectType	getObjectType<VkPrivateDataSlotEXT>				(void) { return VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT;			}
+template<> inline VkObjectType	getObjectType<VkDeferredOperationKHR>			(void) { return VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR;			}
+template<> inline VkObjectType	getObjectType<VkAccelerationStructureNV>		(void) { return VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV;		}
+}
diff --git a/external/vulkancts/framework/vulkan/vkQueryUtil.cpp b/external/vulkancts/framework/vulkan/vkQueryUtil.cpp
index de83fab..957b6af 100644
--- a/external/vulkancts/framework/vulkan/vkQueryUtil.cpp
+++ b/external/vulkancts/framework/vulkan/vkQueryUtil.cpp
@@ -155,6 +155,23 @@
 	return features;
 }
 
+VkPhysicalDeviceVulkan11Features getPhysicalDeviceVulkan11Features (const InstanceInterface& vk, VkPhysicalDevice physicalDevice)
+{
+	VkPhysicalDeviceFeatures2			features;
+	VkPhysicalDeviceVulkan11Features	vulkan_11_features;
+
+	deMemset(&features, 0, sizeof(features));
+	features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+
+	deMemset(&vulkan_11_features, 0, sizeof(vulkan_11_features));
+	vulkan_11_features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES;
+
+	features.pNext = &vulkan_11_features;
+
+	vk.getPhysicalDeviceFeatures2(physicalDevice, &features);
+	return vulkan_11_features;
+}
+
 VkPhysicalDeviceVulkan12Features getPhysicalDeviceVulkan12Features (const InstanceInterface& vk, VkPhysicalDevice physicalDevice)
 {
 	VkPhysicalDeviceFeatures2			features;
diff --git a/external/vulkancts/framework/vulkan/vkQueryUtil.hpp b/external/vulkancts/framework/vulkan/vkQueryUtil.hpp
index 2c526d8..0a3ffeb 100644
--- a/external/vulkancts/framework/vulkan/vkQueryUtil.hpp
+++ b/external/vulkancts/framework/vulkan/vkQueryUtil.hpp
@@ -47,6 +47,7 @@
 std::vector<VkQueueFamilyProperties>			getPhysicalDeviceQueueFamilyProperties			(const InstanceInterface& vk, VkPhysicalDevice physicalDevice);
 VkPhysicalDeviceFeatures						getPhysicalDeviceFeatures						(const InstanceInterface& vk, VkPhysicalDevice physicalDevice);
 VkPhysicalDeviceFeatures2						getPhysicalDeviceFeatures2						(const InstanceInterface& vk, VkPhysicalDevice physicalDevice);
+VkPhysicalDeviceVulkan11Features				getPhysicalDeviceVulkan11Features				(const InstanceInterface& vk, VkPhysicalDevice physicalDevice);
 VkPhysicalDeviceVulkan12Features				getPhysicalDeviceVulkan12Features				(const InstanceInterface& vk, VkPhysicalDevice physicalDevice);
 VkPhysicalDeviceVulkan11Properties				getPhysicalDeviceVulkan11Properties				(const InstanceInterface& vk, VkPhysicalDevice physicalDevice);
 VkPhysicalDeviceVulkan12Properties				getPhysicalDeviceVulkan12Properties				(const InstanceInterface& vk, VkPhysicalDevice physicalDevice);
diff --git a/external/vulkancts/framework/vulkan/vkRayTracingUtil.cpp b/external/vulkancts/framework/vulkan/vkRayTracingUtil.cpp
new file mode 100644
index 0000000..fb90f95
--- /dev/null
+++ b/external/vulkancts/framework/vulkan/vkRayTracingUtil.cpp
@@ -0,0 +1,2143 @@
+/*-------------------------------------------------------------------------
+ * Vulkan CTS Framework
+ * --------------------
+ *
+ * Copyright (c) 2020 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Utilities for creating commonly used Vulkan objects
+ *//*--------------------------------------------------------------------*/
+
+#include "vkRayTracingUtil.hpp"
+
+#include "vkRefUtil.hpp"
+#include "vkQueryUtil.hpp"
+#include "vkObjUtil.hpp"
+#include "vkBarrierUtil.hpp"
+
+#include <vector>
+#include <string>
+#include <thread>
+
+namespace vk
+{
+
+std::string getCommonRayGenerationShader (void)
+{
+	return
+		"#version 460 core\n"
+		"#extension GL_EXT_nonuniform_qualifier : enable\n"
+		"#extension GL_EXT_ray_tracing : require\n"
+		"layout(location = 0) rayPayloadEXT vec3 hitValue;\n"
+		"layout(set = 0, binding = 1) uniform accelerationStructureEXT topLevelAS;\n"
+		"\n"
+		"void main()\n"
+		"{\n"
+		"  uint  rayFlags = 0;\n"
+		"  uint  cullMask = 0xFF;\n"
+		"  float tmin     = 0.0;\n"
+		"  float tmax     = 9.0;\n"
+		"  vec3  origin   = vec3((float(gl_LaunchIDEXT.x) + 0.5f) / float(gl_LaunchSizeEXT.x), (float(gl_LaunchIDEXT.y) + 0.5f) / float(gl_LaunchSizeEXT.y), 0.0);\n"
+		"  vec3  direct   = vec3(0.0, 0.0, -1.0);\n"
+		"  traceRayEXT(topLevelAS, rayFlags, cullMask, 0, 0, 0, origin, tmin, direct, tmax, 0);\n"
+		"}\n";
+}
+
+const char* getRayTracingExtensionUsed (void)
+{
+	return "VK_KHR_ray_tracing";
+}
+
+RaytracedGeometryBase::RaytracedGeometryBase (VkGeometryTypeKHR geometryType, VkFormat vertexFormat, VkIndexType indexType)
+	: m_geometryType	(geometryType)
+	, m_vertexFormat	(vertexFormat)
+	, m_indexType		(indexType)
+	, m_geometryFlags	((VkGeometryFlagsKHR)0u)
+{
+}
+
+RaytracedGeometryBase::~RaytracedGeometryBase ()
+{
+}
+
+de::SharedPtr<RaytracedGeometryBase> makeRaytracedGeometry (VkGeometryTypeKHR geometryType, VkFormat vertexFormat, VkIndexType indexType)
+{
+	switch (vertexFormat)
+	{
+		case VK_FORMAT_R32G32_SFLOAT:
+			switch (indexType)
+			{
+				case VK_INDEX_TYPE_UINT16:		return de::SharedPtr<RaytracedGeometryBase>(new RaytracedGeometry<tcu::Vec2, deUint16>(geometryType));
+				case VK_INDEX_TYPE_UINT32:		return de::SharedPtr<RaytracedGeometryBase>(new RaytracedGeometry<tcu::Vec2, deUint32>(geometryType));
+				case VK_INDEX_TYPE_NONE_KHR:	return de::SharedPtr<RaytracedGeometryBase>(new RaytracedGeometry<tcu::Vec2, EmptyIndex>(geometryType));
+				default:						TCU_THROW(InternalError, "Wrong index type");
+			};
+		case VK_FORMAT_R32G32B32_SFLOAT:
+			switch (indexType)
+			{
+				case VK_INDEX_TYPE_UINT16:		return de::SharedPtr<RaytracedGeometryBase>(new RaytracedGeometry<tcu::Vec3, deUint16>(geometryType));
+				case VK_INDEX_TYPE_UINT32:		return de::SharedPtr<RaytracedGeometryBase>(new RaytracedGeometry<tcu::Vec3, deUint32>(geometryType));
+				case VK_INDEX_TYPE_NONE_KHR:	return de::SharedPtr<RaytracedGeometryBase>(new RaytracedGeometry<tcu::Vec3, EmptyIndex>(geometryType));
+				default:						TCU_THROW(InternalError, "Wrong index type");
+			};
+		case VK_FORMAT_R16G16_SFLOAT:
+			switch (indexType)
+			{
+				case VK_INDEX_TYPE_UINT16:		return de::SharedPtr<RaytracedGeometryBase>(new RaytracedGeometry<Vec2_16, deUint16>(geometryType));
+				case VK_INDEX_TYPE_UINT32:		return de::SharedPtr<RaytracedGeometryBase>(new RaytracedGeometry<Vec2_16, deUint32>(geometryType));
+				case VK_INDEX_TYPE_NONE_KHR:	return de::SharedPtr<RaytracedGeometryBase>(new RaytracedGeometry<Vec2_16, EmptyIndex>(geometryType));
+				default:						TCU_THROW(InternalError, "Wrong index type");
+			};
+		case VK_FORMAT_R16G16B16A16_SFLOAT:
+			switch (indexType)
+			{
+				case VK_INDEX_TYPE_UINT16:		return de::SharedPtr<RaytracedGeometryBase>(new RaytracedGeometry<Vec4_16, deUint16>(geometryType));
+				case VK_INDEX_TYPE_UINT32:		return de::SharedPtr<RaytracedGeometryBase>(new RaytracedGeometry<Vec4_16, deUint32>(geometryType));
+				case VK_INDEX_TYPE_NONE_KHR:	return de::SharedPtr<RaytracedGeometryBase>(new RaytracedGeometry<Vec4_16, EmptyIndex>(geometryType));
+				default:						TCU_THROW(InternalError, "Wrong index type");
+			};
+		case VK_FORMAT_R16G16_SNORM:
+			switch (indexType)
+			{
+				case VK_INDEX_TYPE_UINT16:		return de::SharedPtr<RaytracedGeometryBase>(new RaytracedGeometry<Vec2_16SNorm, deUint16>(geometryType));
+				case VK_INDEX_TYPE_UINT32:		return de::SharedPtr<RaytracedGeometryBase>(new RaytracedGeometry<Vec2_16SNorm, deUint32>(geometryType));
+				case VK_INDEX_TYPE_NONE_KHR:	return de::SharedPtr<RaytracedGeometryBase>(new RaytracedGeometry<Vec2_16SNorm, EmptyIndex>(geometryType));
+				default:						TCU_THROW(InternalError, "Wrong index type");
+			};
+		case VK_FORMAT_R16G16B16A16_SNORM:
+			switch (indexType)
+			{
+				case VK_INDEX_TYPE_UINT16:		return de::SharedPtr<RaytracedGeometryBase>(new RaytracedGeometry<Vec4_16SNorm, deUint16>(geometryType));
+				case VK_INDEX_TYPE_UINT32:		return de::SharedPtr<RaytracedGeometryBase>(new RaytracedGeometry<Vec4_16SNorm, deUint32>(geometryType));
+				case VK_INDEX_TYPE_NONE_KHR:	return de::SharedPtr<RaytracedGeometryBase>(new RaytracedGeometry<Vec4_16SNorm, EmptyIndex>(geometryType));
+				default:						TCU_THROW(InternalError, "Wrong index type");
+			};
+		default:
+			TCU_THROW(InternalError, "Wrong vertex format");
+	};
+
+}
+
+static inline VkDeviceOrHostAddressConstKHR makeDeviceOrHostAddressConstKHR (const void* hostAddress)
+{
+	// VS2015: Cannot create as a const due to cannot assign hostAddress due to it is a second field. Only assigning of first field supported.
+	VkDeviceOrHostAddressConstKHR result;
+
+	deMemset(&result, 0, sizeof(result));
+
+	result.hostAddress = hostAddress;
+
+	return result;
+}
+
+static inline VkDeviceOrHostAddressKHR makeDeviceOrHostAddressKHR (void* hostAddress)
+{
+	// VS2015: Cannot create as a const due to cannot assign hostAddress due to it is a second field. Only assigning of first field supported.
+	VkDeviceOrHostAddressKHR result;
+
+	deMemset(&result, 0, sizeof(result));
+
+	result.hostAddress = hostAddress;
+
+	return result;
+}
+
+static inline VkDeviceOrHostAddressConstKHR makeDeviceOrHostAddressConstKHR (const DeviceInterface&	vk,
+																	  const VkDevice			device,
+																	  VkBuffer					buffer,
+																	  VkDeviceSize				offset)
+{
+	// VS2015: Cannot create as a const due to cannot assign hostAddress due to it is a second field. Only assigning of first field supported.
+	VkDeviceOrHostAddressConstKHR result;
+
+	deMemset(&result, 0, sizeof(result));
+
+	VkBufferDeviceAddressInfo bufferDeviceAddressInfo =
+	{
+		VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR,	// VkStructureType	 sType;
+		DE_NULL,											// const void*		 pNext;
+		buffer,												// VkBuffer			buffer
+	};
+	result.deviceAddress = vk.getBufferDeviceAddress(device, &bufferDeviceAddressInfo) + offset;
+
+	return result;
+}
+
+static inline VkDeviceOrHostAddressKHR makeDeviceOrHostAddressKHR (const DeviceInterface&	vk,
+																   const VkDevice			device,
+																   VkBuffer					buffer,
+																   VkDeviceSize				offset)
+{
+	// VS2015: Cannot create as a const due to cannot assign hostAddress due to it is a second field. Only assigning of first field supported.
+	VkDeviceOrHostAddressKHR result;
+
+	deMemset(&result, 0, sizeof(result));
+
+	VkBufferDeviceAddressInfo bufferDeviceAddressInfo =
+	{
+		VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR,	// VkStructureType	 sType;
+		DE_NULL,											// const void*		 pNext;
+		buffer,												// VkBuffer			buffer
+	};
+	result.deviceAddress = vk.getBufferDeviceAddress(device, &bufferDeviceAddressInfo) + offset;
+
+	return result;
+}
+
+static inline VkAccelerationStructureGeometryDataKHR makeVkAccelerationStructureGeometryDataKHR (const VkAccelerationStructureGeometryTrianglesDataKHR& triangles)
+{
+	VkAccelerationStructureGeometryDataKHR result;
+
+	deMemset(&result, 0, sizeof(result));
+
+	result.triangles = triangles;
+
+	return result;
+}
+
+static inline VkAccelerationStructureGeometryDataKHR makeVkAccelerationStructureGeometryDataKHR (const VkAccelerationStructureGeometryAabbsDataKHR& aabbs)
+{
+	VkAccelerationStructureGeometryDataKHR result;
+
+	deMemset(&result, 0, sizeof(result));
+
+	result.aabbs = aabbs;
+
+	return result;
+}
+
+static inline VkAccelerationStructureGeometryDataKHR makeVkAccelerationStructureInstancesDataKHR (const VkAccelerationStructureGeometryInstancesDataKHR& instances)
+{
+	VkAccelerationStructureGeometryDataKHR result;
+
+	deMemset(&result, 0, sizeof(result));
+
+	result.instances = instances;
+
+	return result;
+}
+
+static inline VkAccelerationStructureInstanceKHR makeVkAccelerationStructureInstanceKHR (const VkTransformMatrixKHR&			transform,
+																						 deUint32								instanceCustomIndex,
+																						 deUint32								mask,
+																						 deUint32								instanceShaderBindingTableRecordOffset,
+																						 VkGeometryInstanceFlagsKHR				flags,
+																						 deUint64								accelerationStructureReference)
+{
+	VkAccelerationStructureInstanceKHR instance		= { transform, 0, 0, 0, 0, accelerationStructureReference };
+	instance.instanceCustomIndex					= instanceCustomIndex & 0xFFFFFF;
+	instance.mask									= mask & 0xFF;
+	instance.instanceShaderBindingTableRecordOffset	= instanceShaderBindingTableRecordOffset & 0xFFFFFF;
+	instance.flags									= flags & 0xFF;
+	return instance;
+}
+
+static inline VkMemoryRequirements getAccelerationStructureMemoryRequirements (const DeviceInterface&									vk,
+																			   const VkDevice											device,
+																			   const VkAccelerationStructureKHR							accelerationStructure,
+																			   const VkAccelerationStructureMemoryRequirementsTypeKHR	memoryRequirementsType,
+																			   const VkAccelerationStructureBuildTypeKHR				buildType				= VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR)
+{
+	const VkAccelerationStructureMemoryRequirementsInfoKHR	accelerationStructureMemoryRequirementsInfoKHR	=
+	{
+		VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_KHR,	//  VkStructureType										sType;
+		DE_NULL,																//  const void*											pNext;
+		memoryRequirementsType,													//  VkAccelerationStructureMemoryRequirementsTypeKHR	type;
+		buildType,																//  VkAccelerationStructureBuildTypeKHR					buildType;
+		accelerationStructure													//  VkAccelerationStructureKHR							accelerationStructure;
+	};
+	VkMemoryRequirements2									memoryRequirements2								=
+	{
+		VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,	//  VkStructureType			sType;
+		DE_NULL,									//  void*					pNext;
+		{0, 0, 0}									//  VkMemoryRequirements	memoryRequirements;
+	};
+
+	vk.getAccelerationStructureMemoryRequirementsKHR(device, &accelerationStructureMemoryRequirementsInfoKHR, &memoryRequirements2);
+
+	return memoryRequirements2.memoryRequirements;
+}
+
+VkResult getRayTracingShaderGroupHandlesKHR (const DeviceInterface&		vk,
+											 const VkDevice				device,
+											 const VkPipeline			pipeline,
+											 const deUint32				firstGroup,
+											 const deUint32				groupCount,
+											 const deUintptr			dataSize,
+											 void*						pData)
+{
+	return vk.getRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData);
+}
+
+VkResult getRayTracingShaderGroupHandles (const DeviceInterface&		vk,
+										  const VkDevice				device,
+										  const VkPipeline				pipeline,
+										  const deUint32				firstGroup,
+										  const deUint32				groupCount,
+										  const deUintptr				dataSize,
+										  void*							pData)
+{
+	return getRayTracingShaderGroupHandlesKHR(vk, device, pipeline, firstGroup, groupCount, dataSize, pData);
+}
+
+VkResult finishDeferredOperation (const DeviceInterface&	vk,
+								  VkDevice					device,
+								  VkDeferredOperationKHR	deferredOperation)
+{
+	VkResult result = vk.deferredOperationJoinKHR(device, deferredOperation);
+
+	while (result == VK_THREAD_IDLE_KHR)
+	{
+		std::this_thread::yield();
+		result = vk.deferredOperationJoinKHR(device, deferredOperation);
+	}
+
+	switch( result )
+	{
+		case VK_SUCCESS:
+		{
+			// Deferred operation has finished. Query its result
+			result = vk.getDeferredOperationResultKHR(device, deferredOperation);
+
+			break;
+		}
+
+		case VK_THREAD_DONE_KHR:
+		{
+			// Deferred operation is being wrapped up by another thread
+			// wait for that thread to finish
+			do
+			{
+				std::this_thread::yield();
+				result = vk.getDeferredOperationResultKHR(device, deferredOperation);
+			} while (result == VK_NOT_READY);
+
+			break;
+		}
+
+		default:
+		{
+			DE_ASSERT(false);
+
+			break;
+		}
+	}
+
+	return result;
+}
+
+SerialStorage::SerialStorage (const DeviceInterface&									vk,
+							  const VkDevice											device,
+							  Allocator&												allocator,
+							  const VkAccelerationStructureBuildTypeKHR					buildType,
+							  const VkDeviceSize										storageSize)
+	: m_buildType (buildType)
+{
+	const VkBufferCreateInfo	bufferCreateInfo	= makeBufferCreateInfo(storageSize, VK_BUFFER_USAGE_RAY_TRACING_BIT_KHR | VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT);
+	m_buffer										= de::MovePtr<BufferWithMemory>(new BufferWithMemory(vk, device, allocator, bufferCreateInfo, MemoryRequirement::HostVisible | MemoryRequirement::Coherent | MemoryRequirement::DeviceAddress));
+}
+
+VkDeviceOrHostAddressKHR SerialStorage::getAddress (const DeviceInterface&				vk,
+													const VkDevice						device)
+{
+	if (m_buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR)
+		return makeDeviceOrHostAddressKHR(vk, device, m_buffer->get(), 0);
+	else
+		return makeDeviceOrHostAddressKHR(m_buffer->getAllocation().getHostPtr());
+}
+
+VkDeviceOrHostAddressConstKHR SerialStorage::getAddressConst (const DeviceInterface&	vk,
+															  const VkDevice			device)
+{
+	if (m_buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR)
+		return makeDeviceOrHostAddressConstKHR(vk, device, m_buffer->get(), 0);
+	else
+		return makeDeviceOrHostAddressConstKHR(m_buffer->getAllocation().getHostPtr());
+}
+
+
+BottomLevelAccelerationStructure::~BottomLevelAccelerationStructure ()
+{
+}
+
+BottomLevelAccelerationStructure::BottomLevelAccelerationStructure ()
+	: m_geometriesData	()
+{
+}
+
+void BottomLevelAccelerationStructure::setGeometryData (const std::vector<tcu::Vec3>&	geometryData,
+														const bool						triangles,
+														const VkGeometryFlagsKHR		geometryFlags)
+{
+	if (triangles)
+		DE_ASSERT((geometryData.size() % 3) == 0);
+	else
+		DE_ASSERT((geometryData.size() % 2) == 0);
+
+	setGeometryCount(1u);
+
+	addGeometry(geometryData, triangles, geometryFlags);
+}
+
+void BottomLevelAccelerationStructure::setDefaultGeometryData (const VkShaderStageFlagBits	testStage)
+{
+	bool					trianglesData	= false;
+	float					z				= 0.0f;
+	std::vector<tcu::Vec3>	geometryData;
+
+	switch (testStage)
+	{
+		case VK_SHADER_STAGE_RAYGEN_BIT_KHR:		z = -1.0f; trianglesData = true;	break;
+		case VK_SHADER_STAGE_ANY_HIT_BIT_KHR:		z = -1.0f; trianglesData = true;	break;
+		case VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR:	z = -1.0f; trianglesData = true;	break;
+		case VK_SHADER_STAGE_MISS_BIT_KHR:			z = -9.9f; trianglesData = true;	break;
+		case VK_SHADER_STAGE_INTERSECTION_BIT_KHR:	z = -1.0f; trianglesData = false;	break;
+		case VK_SHADER_STAGE_CALLABLE_BIT_KHR:		z = -1.0f; trianglesData = true;	break;
+		default:									TCU_THROW(InternalError, "Unacceptable stage");
+	}
+
+	if (trianglesData)
+	{
+		geometryData.reserve(6);
+
+		geometryData.push_back(tcu::Vec3(-1.0f, -1.0f, z));
+		geometryData.push_back(tcu::Vec3(-1.0f, +1.0f, z));
+		geometryData.push_back(tcu::Vec3(+1.0f, -1.0f, z));
+		geometryData.push_back(tcu::Vec3(-1.0f, +1.0f, z));
+		geometryData.push_back(tcu::Vec3(+1.0f, -1.0f, z));
+		geometryData.push_back(tcu::Vec3(+1.0f, +1.0f, z));
+	}
+	else
+	{
+		geometryData.reserve(2);
+
+		geometryData.push_back(tcu::Vec3(-1.0f, -1.0f, z));
+		geometryData.push_back(tcu::Vec3(+1.0f, +1.0f, z));
+	}
+
+	setGeometryCount(1u);
+
+	addGeometry(geometryData, trianglesData);
+}
+
+void BottomLevelAccelerationStructure::setGeometryCount (const size_t geometryCount)
+{
+	m_geometriesData.clear();
+
+	m_geometriesData.reserve(geometryCount);
+}
+
+void BottomLevelAccelerationStructure::addGeometry (de::SharedPtr<RaytracedGeometryBase>&		raytracedGeometry)
+{
+	m_geometriesData.push_back(raytracedGeometry);
+}
+
+void BottomLevelAccelerationStructure::addGeometry (const std::vector<tcu::Vec3>&	geometryData,
+													const bool						triangles,
+													const VkGeometryFlagsKHR		geometryFlags)
+{
+	DE_ASSERT(geometryData.size() > 0);
+	DE_ASSERT((triangles && geometryData.size() % 3 == 0) || (!triangles && geometryData.size() % 2 == 0));
+
+	if (!triangles)
+		for (size_t posNdx = 0; posNdx < geometryData.size() / 2; ++posNdx)
+		{
+			DE_ASSERT(geometryData[2 * posNdx].x() <= geometryData[2 * posNdx + 1].x());
+			DE_ASSERT(geometryData[2 * posNdx].y() <= geometryData[2 * posNdx + 1].y());
+			DE_ASSERT(geometryData[2 * posNdx].z() <= geometryData[2 * posNdx + 1].z());
+		}
+
+	de::SharedPtr<RaytracedGeometryBase> geometry = makeRaytracedGeometry(triangles ? VK_GEOMETRY_TYPE_TRIANGLES_KHR : VK_GEOMETRY_TYPE_AABBS_KHR, VK_FORMAT_R32G32B32_SFLOAT, VK_INDEX_TYPE_NONE_KHR);
+	for (auto it = begin(geometryData), eit = end(geometryData); it != eit; ++it)
+		geometry->addVertex(*it);
+
+	geometry->setGeometryFlags(geometryFlags);
+	addGeometry(geometry);
+}
+
+BufferWithMemory* createVertexBuffer (const DeviceInterface&									vk,
+									  const VkDevice											device,
+									  Allocator&												allocator,
+									  const std::vector<de::SharedPtr<RaytracedGeometryBase>>&	geometriesData)
+{
+	DE_ASSERT(geometriesData.size() != 0);
+
+	VkDeviceSize					bufferSizeBytes = 0;
+	for (size_t geometryNdx = 0; geometryNdx < geometriesData.size(); ++geometryNdx)
+		bufferSizeBytes += deAlignSize(geometriesData[geometryNdx]->getVertexByteSize(),8);
+
+	const VkBufferCreateInfo		bufferCreateInfo	= makeBufferCreateInfo(bufferSizeBytes, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT);
+	return new BufferWithMemory(vk, device, allocator, bufferCreateInfo, MemoryRequirement::HostVisible | MemoryRequirement::Coherent | MemoryRequirement::DeviceAddress);
+}
+
+void updateVertexBuffer (const DeviceInterface&										vk,
+						 const VkDevice												device,
+						 const std::vector<de::SharedPtr<RaytracedGeometryBase>>&	geometriesData,
+						 BufferWithMemory*											vertexBuffer)
+{
+	const Allocation&				geometryAlloc		= vertexBuffer->getAllocation();
+	deUint8*						bufferStart			= static_cast<deUint8*>(geometryAlloc.getHostPtr());
+	VkDeviceSize					bufferOffset		= 0;
+
+	for (size_t geometryNdx = 0; geometryNdx < geometriesData.size(); ++geometryNdx)
+	{
+		const void*					geometryPtr			= geometriesData[geometryNdx]->getVertexPointer();
+		const size_t				geometryPtrSize		= geometriesData[geometryNdx]->getVertexByteSize();
+
+		deMemcpy(&bufferStart[bufferOffset], geometryPtr, geometryPtrSize);
+
+		bufferOffset += deAlignSize(geometryPtrSize,8);
+	}
+
+	flushMappedMemoryRange(vk, device, geometryAlloc.getMemory(), geometryAlloc.getOffset(), VK_WHOLE_SIZE);
+}
+
+BufferWithMemory* createIndexBuffer (const DeviceInterface&										vk,
+									 const VkDevice												device,
+									 Allocator&													allocator,
+									 const std::vector<de::SharedPtr<RaytracedGeometryBase>>&	geometriesData)
+{
+	DE_ASSERT(!geometriesData.empty());
+
+	VkDeviceSize					bufferSizeBytes = 0;
+	for (size_t geometryNdx = 0; geometryNdx < geometriesData.size(); ++geometryNdx)
+		if(geometriesData[geometryNdx]->getIndexType() != VK_INDEX_TYPE_NONE_KHR)
+			bufferSizeBytes += deAlignSize(geometriesData[geometryNdx]->getIndexByteSize(),8);
+
+	if (bufferSizeBytes == 0)
+		return DE_NULL;
+
+	const VkBufferCreateInfo		bufferCreateInfo	= makeBufferCreateInfo(bufferSizeBytes, VK_BUFFER_USAGE_INDEX_BUFFER_BIT | VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT);
+	return  new BufferWithMemory(vk, device, allocator, bufferCreateInfo, MemoryRequirement::HostVisible | MemoryRequirement::Coherent | MemoryRequirement::DeviceAddress);
+}
+
+void updateIndexBuffer (const DeviceInterface&										vk,
+						const VkDevice												device,
+						const std::vector<de::SharedPtr<RaytracedGeometryBase>>&	geometriesData,
+						BufferWithMemory*											indexBuffer)
+{
+	const Allocation&				indexAlloc			= indexBuffer->getAllocation();
+	deUint8*						bufferStart			= static_cast<deUint8*>(indexAlloc.getHostPtr());
+	VkDeviceSize					bufferOffset		= 0;
+
+	for (size_t geometryNdx = 0; geometryNdx < geometriesData.size(); ++geometryNdx)
+	{
+		if (geometriesData[geometryNdx]->getIndexType() != VK_INDEX_TYPE_NONE_KHR)
+		{
+			const void*					indexPtr		= geometriesData[geometryNdx]->getIndexPointer();
+			const size_t				indexPtrSize	= geometriesData[geometryNdx]->getIndexByteSize();
+
+			deMemcpy(&bufferStart[bufferOffset], indexPtr, indexPtrSize);
+
+			bufferOffset += deAlignSize(indexPtrSize, 8);
+		}
+	}
+
+	flushMappedMemoryRange(vk, device, indexAlloc.getMemory(), indexAlloc.getOffset(), VK_WHOLE_SIZE);
+}
+
+class BottomLevelAccelerationStructureKHR : public BottomLevelAccelerationStructure
+{
+public:
+	static deUint32											getRequiredAllocationCount						(void);
+
+															BottomLevelAccelerationStructureKHR				();
+															BottomLevelAccelerationStructureKHR				(const BottomLevelAccelerationStructureKHR&	other) = delete;
+	virtual													~BottomLevelAccelerationStructureKHR			();
+
+	void													setBuildType									(const VkAccelerationStructureBuildTypeKHR	buildType) override;
+	void													setBuildFlags									(const VkBuildAccelerationStructureFlagsKHR	flags) override;
+	void													setDeferredOperation							(const bool									deferredOperation) override;
+	void													setUseArrayOfPointers							(const bool									useArrayOfPointers) override;
+	void													setIndirectBuildParameters						(const VkBuffer								indirectBuffer,
+																											 const VkDeviceSize							indirectBufferOffset,
+																											 const deUint32								indirectBufferStride) override;
+	VkBuildAccelerationStructureFlagsKHR					getBuildFlags									() const override;
+
+	void													create											(const DeviceInterface&						vk,
+																											 const VkDevice								device,
+																											 Allocator&									allocator,
+																											 VkDeviceAddress							deviceAddress,
+																											 VkDeviceSize								compactCopySize) override;
+	void													build											(const DeviceInterface&						vk,
+																											 const VkDevice								device,
+																											 const VkCommandBuffer						cmdBuffer) override;
+	void													copyFrom										(const DeviceInterface&						vk,
+																											 const VkDevice								device,
+																											 const VkCommandBuffer						cmdBuffer,
+																											 BottomLevelAccelerationStructure*			accelerationStructure,
+																											 VkDeviceSize								compactCopySize) override;
+
+	void													serialize										(const DeviceInterface&						vk,
+																											 const VkDevice								device,
+																											 const VkCommandBuffer						cmdBuffer,
+																											 SerialStorage*								storage) override;
+	void													deserialize										(const DeviceInterface&						vk,
+																											 const VkDevice								device,
+																											 const VkCommandBuffer						cmdBuffer,
+																											 SerialStorage*								storage) override;
+
+	const VkAccelerationStructureKHR*						getPtr											(void) const override;
+
+protected:
+	VkAccelerationStructureBuildTypeKHR						m_buildType;
+	VkBuildAccelerationStructureFlagsKHR					m_buildFlags;
+	bool													m_deferredOperation;
+	bool													m_useArrayOfPointers;
+	de::MovePtr<BufferWithMemory>							m_vertexBuffer;
+	de::MovePtr<BufferWithMemory>							m_indexBuffer;
+	de::MovePtr<Allocation>									m_accelerationStructureAlloc;
+	de::MovePtr<BufferWithMemory>							m_scratchBuffer;
+	Move<VkAccelerationStructureKHR>						m_accelerationStructureKHR;
+	VkBuffer												m_indirectBuffer;
+	VkDeviceSize											m_indirectBufferOffset;
+	deUint32												m_indirectBufferStride;
+};
+
+deUint32 BottomLevelAccelerationStructureKHR::getRequiredAllocationCount (void)
+{
+	/*
+		de::MovePtr<BufferWithMemory>							m_geometryBuffer; // but only when m_buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR
+		de::MovePtr<Allocation>									m_accelerationStructureAlloc;
+		de::MovePtr<BufferWithMemory>							m_scratchBuffer;
+	*/
+	return 3u;
+}
+
+BottomLevelAccelerationStructureKHR::~BottomLevelAccelerationStructureKHR ()
+{
+}
+
+BottomLevelAccelerationStructureKHR::BottomLevelAccelerationStructureKHR ()
+	: BottomLevelAccelerationStructure	()
+	, m_buildType						(VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR)
+	, m_buildFlags						(0u)
+	, m_deferredOperation				(false)
+	, m_useArrayOfPointers				(false)
+	, m_vertexBuffer					()
+	, m_indexBuffer						()
+	, m_accelerationStructureAlloc		()
+	, m_scratchBuffer					()
+	, m_accelerationStructureKHR		()
+	, m_indirectBuffer					(DE_NULL)
+	, m_indirectBufferOffset			(0)
+	, m_indirectBufferStride			(0)
+{
+}
+
+void BottomLevelAccelerationStructureKHR::setBuildType (const VkAccelerationStructureBuildTypeKHR	buildType)
+{
+	m_buildType = buildType;
+}
+
+void BottomLevelAccelerationStructureKHR::setBuildFlags (const VkBuildAccelerationStructureFlagsKHR	flags)
+{
+	m_buildFlags = flags;
+}
+
+void BottomLevelAccelerationStructureKHR::setDeferredOperation (const bool	deferredOperation)
+{
+	m_deferredOperation = deferredOperation;
+}
+
+void BottomLevelAccelerationStructureKHR::setUseArrayOfPointers (const bool	useArrayOfPointers)
+{
+	m_useArrayOfPointers = useArrayOfPointers;
+}
+
+void BottomLevelAccelerationStructureKHR::setIndirectBuildParameters (const VkBuffer		indirectBuffer,
+																	  const VkDeviceSize	indirectBufferOffset,
+																	  const deUint32		indirectBufferStride)
+{
+	m_indirectBuffer		= indirectBuffer;
+	m_indirectBufferOffset	= indirectBufferOffset;
+	m_indirectBufferStride	= indirectBufferStride;
+}
+
+VkBuildAccelerationStructureFlagsKHR BottomLevelAccelerationStructureKHR::getBuildFlags () const
+{
+	return m_buildFlags;
+}
+
+void BottomLevelAccelerationStructureKHR::create (const DeviceInterface&				vk,
+												  const VkDevice						device,
+												  Allocator&							allocator,
+												  VkDeviceAddress						deviceAddress,
+												  VkDeviceSize							compactCopySize)
+{
+	DE_ASSERT(!m_geometriesData.empty() !=  !(compactCopySize==0)); // logical xor
+
+	{
+		std::vector<VkAccelerationStructureCreateGeometryTypeInfoKHR>	accelerationStructureCreateGeometryTypeInfosKHR(m_geometriesData.size());
+
+		for (size_t geometryNdx = 0; geometryNdx < m_geometriesData.size(); ++geometryNdx)
+		{
+			de::SharedPtr<RaytracedGeometryBase>&	geometryData	=	m_geometriesData[geometryNdx];
+			const VkAccelerationStructureCreateGeometryTypeInfoKHR	accelerationStructureCreateGeometryTypeInfoKHR	=
+			{
+				VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_GEOMETRY_TYPE_INFO_KHR,	//  VkStructureType		sType;
+				DE_NULL,																//  const void*			pNext;
+				geometryData->getGeometryType(),										//  VkGeometryTypeKHR	geometryType;
+				geometryData->getPrimitiveCount(),										//  deUint32			maxPrimitiveCount;
+				geometryData->getIndexType(),											//  VkIndexType			indexType;
+				geometryData->getVertexCount(),											//  deUint32			maxVertexCount;
+				geometryData->getVertexFormat(),										//  VkFormat			vertexFormat;
+				DE_FALSE																//  VkBool32			allowsTransforms;
+			};
+
+			accelerationStructureCreateGeometryTypeInfosKHR[geometryNdx] = accelerationStructureCreateGeometryTypeInfoKHR;
+		}
+
+		const VkAccelerationStructureCreateInfoKHR	accelerationStructureCreateInfoKHR	=
+		{
+			VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR,						//  VkStructureType											sType;
+			DE_NULL,																		//  const void*												pNext;
+			compactCopySize,																//  VkDeviceSize											compactedSize;
+			VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,								//  VkAccelerationStructureTypeKHR							type;
+			m_buildFlags,																	//  VkBuildAccelerationStructureFlagsKHR					flags;
+			static_cast<deUint32>(accelerationStructureCreateGeometryTypeInfosKHR.size()),	//  deUint32												maxGeometryCount;
+			dataOrNullPtr(accelerationStructureCreateGeometryTypeInfosKHR),					//  const VkAccelerationStructureCreateGeometryTypeInfoKHR*	pGeometryInfos;
+			deviceAddress																	//  VkDeviceAddress											deviceAddress;
+		};
+
+		m_accelerationStructureKHR	= createAccelerationStructureKHR(vk, device, &accelerationStructureCreateInfoKHR, DE_NULL);
+	}
+
+	{
+		const VkMemoryRequirements	memoryRequirements	= getAccelerationStructureMemoryRequirements(vk, device, m_accelerationStructureKHR.get(), VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR, m_buildType);
+
+		m_accelerationStructureAlloc = allocator.allocate(memoryRequirements, vk::MemoryRequirement::Local);
+	}
+
+	{
+		const VkBindAccelerationStructureMemoryInfoKHR	bindAccelerationStructureMemoryInfoKHR	=
+		{
+			VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR,	//  VkStructureType				sType;
+			DE_NULL,														//  const void*					pNext;
+			m_accelerationStructureKHR.get(),								//  VkAccelerationStructureKHR	accelerationStructure;
+			m_accelerationStructureAlloc->getMemory(),						//  VkDeviceMemory				memory;
+			m_accelerationStructureAlloc->getOffset(),						//  VkDeviceSize				memoryOffset;
+			0,																//  deUint32					deviceIndexCount;
+			DE_NULL,														//  const deUint32*				pDeviceIndices;
+		};
+
+		VK_CHECK(vk.bindAccelerationStructureMemoryKHR(device, 1, &bindAccelerationStructureMemoryInfoKHR));
+	}
+
+	{
+		const VkMemoryRequirements		memoryRequirements	= getAccelerationStructureMemoryRequirements(vk, device, m_accelerationStructureKHR.get(), VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_KHR, m_buildType);
+		if (memoryRequirements.size > 0u)
+		{
+			const VkBufferCreateInfo		bufferCreateInfo	= makeBufferCreateInfo(memoryRequirements.size, VK_BUFFER_USAGE_RAY_TRACING_BIT_KHR | VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT);
+			m_scratchBuffer										= de::MovePtr<BufferWithMemory>(new BufferWithMemory(vk, device, allocator, bufferCreateInfo, MemoryRequirement::HostVisible | MemoryRequirement::Coherent | MemoryRequirement::DeviceAddress));
+		}
+	}
+
+	if (m_buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR && !m_geometriesData.empty())
+	{
+		m_vertexBuffer	= de::MovePtr<BufferWithMemory>(createVertexBuffer(vk, device, allocator, m_geometriesData));
+		m_indexBuffer	= de::MovePtr<BufferWithMemory>(createIndexBuffer(vk, device, allocator, m_geometriesData));
+	}
+}
+
+void BottomLevelAccelerationStructureKHR::build (const DeviceInterface&						vk,
+												 const VkDevice								device,
+												 const VkCommandBuffer						cmdBuffer)
+{
+	DE_ASSERT(!m_geometriesData.empty());
+	DE_ASSERT(m_accelerationStructureKHR.get() != DE_NULL);
+
+	if (m_buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR)
+	{
+		updateVertexBuffer(vk, device, m_geometriesData, m_vertexBuffer.get());
+		if(m_indexBuffer.get() != DE_NULL)
+			updateIndexBuffer(vk, device, m_geometriesData, m_indexBuffer.get());
+	}
+
+	{
+		std::vector<VkAccelerationStructureGeometryKHR>			accelerationStructureGeometriesKHR			(m_geometriesData.size());
+		std::vector<VkAccelerationStructureGeometryKHR*>		accelerationStructureGeometriesKHRPointers	(m_geometriesData.size());
+		std::vector<VkAccelerationStructureBuildOffsetInfoKHR>	accelerationStructureBuildOffsetInfoKHR		(m_geometriesData.size());
+		VkDeviceSize vertexBufferOffset = 0, indexBufferOffset = 0;
+
+		for (size_t geometryNdx = 0; geometryNdx < m_geometriesData.size(); ++geometryNdx)
+		{
+			de::SharedPtr<RaytracedGeometryBase>&					geometryData							= m_geometriesData[geometryNdx];
+			VkDeviceOrHostAddressConstKHR							vertexData, indexData;
+			if (m_buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR)
+			{
+				vertexData			= makeDeviceOrHostAddressConstKHR(vk, device, m_vertexBuffer->get(), vertexBufferOffset);
+				vertexBufferOffset	+= deAlignSize(geometryData->getVertexByteSize(), 8);
+
+				if (geometryData->getIndexType() != VK_INDEX_TYPE_NONE_KHR)
+				{
+					indexData			= makeDeviceOrHostAddressConstKHR(vk, device, m_indexBuffer->get(), indexBufferOffset);
+					indexBufferOffset	+= deAlignSize(geometryData->getIndexByteSize(), 8);
+				}
+				else
+					indexData			= makeDeviceOrHostAddressConstKHR(DE_NULL);
+			}
+			else
+			{
+				vertexData	= makeDeviceOrHostAddressConstKHR( geometryData->getVertexPointer() );
+				if (m_indexBuffer.get() != DE_NULL)
+					indexData	= makeDeviceOrHostAddressConstKHR( geometryData->getIndexPointer() );
+				else
+					indexData	= makeDeviceOrHostAddressConstKHR(DE_NULL);
+			}
+
+			const VkAccelerationStructureGeometryTrianglesDataKHR	accelerationStructureGeometryTrianglesDataKHR	=
+			{
+				VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR,	//  VkStructureType					sType;
+				DE_NULL,																//  const void*						pNext;
+				geometryData->getVertexFormat(),										//  VkFormat						vertexFormat;
+				vertexData,																//  VkDeviceOrHostAddressConstKHR	vertexData;
+				geometryData->getVertexStride(),										//  VkDeviceSize					vertexStride;
+				geometryData->getIndexType(),											//  VkIndexType						indexType;
+				indexData,																//  VkDeviceOrHostAddressConstKHR	indexData;
+				makeDeviceOrHostAddressConstKHR(DE_NULL),								//  VkDeviceOrHostAddressConstKHR	transformData;
+			};
+
+			const VkAccelerationStructureGeometryAabbsDataKHR		accelerationStructureGeometryAabbsDataKHR		=
+			{
+				VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR,	//  VkStructureType					sType;
+				DE_NULL,															//  const void*						pNext;
+				vertexData,															//  VkDeviceOrHostAddressConstKHR	data;
+				geometryData->getAABBStride()										//  VkDeviceSize					stride;
+			};
+			const VkAccelerationStructureGeometryDataKHR			geometry										= (geometryData->isTrianglesType())
+																													? makeVkAccelerationStructureGeometryDataKHR(accelerationStructureGeometryTrianglesDataKHR)
+																													: makeVkAccelerationStructureGeometryDataKHR(accelerationStructureGeometryAabbsDataKHR);
+			const VkAccelerationStructureGeometryKHR				accelerationStructureGeometryKHR				=
+			{
+				VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR,	//  VkStructureType							sType;
+				DE_NULL,												//  const void*								pNext;
+				geometryData->getGeometryType(),						//  VkGeometryTypeKHR						geometryType;
+				geometry,												//  VkAccelerationStructureGeometryDataKHR	geometry;
+				geometryData->getGeometryFlags()						//  VkGeometryFlagsKHR						flags;
+			};
+
+			const VkAccelerationStructureBuildOffsetInfoKHR			accelerationStructureBuildOffsetInfosKHR		=
+			{
+				geometryData->getPrimitiveCount(),	//  deUint32	primitiveCount;
+				0,									//  deUint32	primitiveOffset;
+				0,									//  deUint32	firstVertex;
+				0									//  deUint32	firstTransform;
+			};
+
+			accelerationStructureGeometriesKHR[geometryNdx]				= accelerationStructureGeometryKHR;
+			accelerationStructureGeometriesKHRPointers[geometryNdx]		= &accelerationStructureGeometriesKHR[geometryNdx];
+			accelerationStructureBuildOffsetInfoKHR[geometryNdx]		= accelerationStructureBuildOffsetInfosKHR;
+		}
+
+		VkAccelerationStructureGeometryKHR*			accelerationStructureGeometriesKHRPointer	= accelerationStructureGeometriesKHR.data();
+		VkAccelerationStructureGeometryKHR**		accelerationStructureGeometry				= (m_useArrayOfPointers)
+																								? accelerationStructureGeometriesKHRPointers.data()
+																								: &accelerationStructureGeometriesKHRPointer;
+		VkDeviceOrHostAddressKHR					scratchData									= (m_buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR)
+																								? makeDeviceOrHostAddressKHR(vk, device, m_scratchBuffer->get(), 0)
+																								: makeDeviceOrHostAddressKHR(m_scratchBuffer->getAllocation().getHostPtr());
+
+		VkAccelerationStructureBuildGeometryInfoKHR	accelerationStructureBuildGeometryInfoKHR	=
+		{
+			VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR,			//  VkStructureType								sType;
+			DE_NULL,																	//  const void*									pNext;
+			VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,							//  VkAccelerationStructureTypeKHR				type;
+			m_buildFlags,																//  VkBuildAccelerationStructureFlagsKHR		flags;
+			DE_FALSE,																	//  VkBool32									update;
+			DE_NULL,																	//  VkAccelerationStructureKHR					srcAccelerationStructure;
+			m_accelerationStructureKHR.get(),											//  VkAccelerationStructureKHR					dstAccelerationStructure;
+			(VkBool32)( m_useArrayOfPointers ? DE_TRUE : DE_FALSE ),					//  VkBool32									geometryArrayOfPointers;
+			static_cast<deUint32>(accelerationStructureGeometriesKHR.size()),			//  deUint32									geometryCount;
+			(const VkAccelerationStructureGeometryKHR**)accelerationStructureGeometry,	//  const VkAccelerationStructureGeometryKHR**	ppGeometries;
+			scratchData																	//  VkDeviceOrHostAddressKHR					scratchData;
+		};
+		VkAccelerationStructureBuildOffsetInfoKHR* accelerationStructureBuildOffsetInfoKHRPtr	= accelerationStructureBuildOffsetInfoKHR.data();
+
+		if (m_buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR)
+		{
+			if (m_indirectBuffer == DE_NULL)
+				vk.cmdBuildAccelerationStructureKHR(cmdBuffer, 1u, &accelerationStructureBuildGeometryInfoKHR, (const VkAccelerationStructureBuildOffsetInfoKHR**)&accelerationStructureBuildOffsetInfoKHRPtr);
+			else
+				vk.cmdBuildAccelerationStructureIndirectKHR(cmdBuffer, &accelerationStructureBuildGeometryInfoKHR, m_indirectBuffer, m_indirectBufferOffset, m_indirectBufferStride);
+		}
+		else if (!m_deferredOperation)
+		{
+			VK_CHECK(vk.buildAccelerationStructureKHR(device, 1u, &accelerationStructureBuildGeometryInfoKHR, (const VkAccelerationStructureBuildOffsetInfoKHR**)&accelerationStructureBuildOffsetInfoKHRPtr));
+		}
+		else
+		{
+			VkDeferredOperationKHR deferredOperation	= DE_NULL;
+
+			VK_CHECK(vk.createDeferredOperationKHR(device, DE_NULL, &deferredOperation));
+
+			VkDeferredOperationInfoKHR	deferredOperationInfoKHR	=
+			{
+				VK_STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR,	//  VkStructureType			sType;
+				DE_NULL,										//  const void*				pNext;
+				deferredOperation								//  VkDeferredOperationKHR	operationHandle;
+			};
+
+			accelerationStructureBuildGeometryInfoKHR.pNext = &deferredOperationInfoKHR;
+
+			VkResult result = vk.buildAccelerationStructureKHR(device, 1u, &accelerationStructureBuildGeometryInfoKHR, (const VkAccelerationStructureBuildOffsetInfoKHR**)&accelerationStructureBuildOffsetInfoKHRPtr);
+
+			DE_ASSERT(result == VK_OPERATION_DEFERRED_KHR || result == VK_OPERATION_NOT_DEFERRED_KHR || result == VK_SUCCESS);
+			DE_UNREF(result);
+
+			VK_CHECK(finishDeferredOperation(vk, device, deferredOperation));
+
+			accelerationStructureBuildGeometryInfoKHR.pNext = DE_NULL;
+		}
+	}
+
+	if (m_buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR)
+	{
+		const VkAccessFlags		accessMasks	= VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR | VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR;
+		const VkMemoryBarrier	memBarrier	= makeMemoryBarrier(accessMasks, accessMasks);
+
+		cmdPipelineMemoryBarrier(vk, cmdBuffer, VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, &memBarrier);
+	}
+}
+
+void BottomLevelAccelerationStructureKHR::copyFrom (const DeviceInterface&						vk,
+													const VkDevice								device,
+													const VkCommandBuffer						cmdBuffer,
+													BottomLevelAccelerationStructure*			accelerationStructure,
+													VkDeviceSize								compactCopySize)
+{
+	VkCopyAccelerationStructureInfoKHR copyAccelerationStructureInfo =
+	{
+		VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR,																	// VkStructureType						sType;
+		DE_NULL,																												// const void*							pNext;
+		*(accelerationStructure->getPtr()),																						// VkAccelerationStructureKHR			src;
+		*(getPtr()),																											// VkAccelerationStructureKHR			dst;
+		compactCopySize > 0u ? VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR : VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR	// VkCopyAccelerationStructureModeKHR	mode;
+	};
+
+	if (m_buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR)
+	{
+		vk.cmdCopyAccelerationStructureKHR(cmdBuffer, &copyAccelerationStructureInfo);
+	}
+	else if (!m_deferredOperation)
+	{
+		VK_CHECK(vk.copyAccelerationStructureKHR(device, &copyAccelerationStructureInfo));
+	}
+	else
+	{
+		VkDeferredOperationKHR deferredOperation	= DE_NULL;
+
+		VK_CHECK(vk.createDeferredOperationKHR(device, DE_NULL, &deferredOperation));
+
+		VkDeferredOperationInfoKHR	deferredOperationInfoKHR	=
+		{
+			VK_STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR,	//  VkStructureType			sType;
+			DE_NULL,										//  const void*				pNext;
+			deferredOperation								//  VkDeferredOperationKHR	operationHandle;
+		};
+
+		copyAccelerationStructureInfo.pNext = &deferredOperationInfoKHR;
+
+		VkResult result = vk.copyAccelerationStructureKHR(device, &copyAccelerationStructureInfo);
+
+		DE_ASSERT(result == VK_OPERATION_DEFERRED_KHR || result == VK_OPERATION_NOT_DEFERRED_KHR || result == VK_SUCCESS);
+		DE_UNREF(result);
+
+		VK_CHECK(finishDeferredOperation(vk, device, deferredOperation));
+	}
+
+	if (m_buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR)
+	{
+		const VkAccessFlags		accessMasks	= VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR | VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR;
+		const VkMemoryBarrier	memBarrier	= makeMemoryBarrier(accessMasks, accessMasks);
+
+		cmdPipelineMemoryBarrier(vk, cmdBuffer, VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, &memBarrier);
+	}
+}
+
+void BottomLevelAccelerationStructureKHR::serialize (const DeviceInterface&		vk,
+													 const VkDevice				device,
+													 const VkCommandBuffer		cmdBuffer,
+													 SerialStorage*				storage)
+{
+	VkCopyAccelerationStructureToMemoryInfoKHR copyAccelerationStructureInfo =
+	{
+		VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR,	// VkStructureType						sType;
+		DE_NULL,															// const void*							pNext;
+		*(getPtr()),														// VkAccelerationStructureKHR			src;
+		storage->getAddress(vk,device),										// VkDeviceOrHostAddressKHR				dst;
+		VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR					// VkCopyAccelerationStructureModeKHR	mode;
+	};
+
+	if (m_buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR)
+	{
+		vk.cmdCopyAccelerationStructureToMemoryKHR(cmdBuffer, &copyAccelerationStructureInfo);
+	}
+	else
+	{
+		VK_CHECK(vk.copyAccelerationStructureToMemoryKHR(device, &copyAccelerationStructureInfo));
+	}
+	// There is no deferred operation for vkCopyAccelerationStructureToMemoryKHR
+}
+
+void BottomLevelAccelerationStructureKHR::deserialize (const DeviceInterface&	vk,
+													   const VkDevice			device,
+													   const VkCommandBuffer	cmdBuffer,
+													   SerialStorage*			storage)
+{
+	VkCopyMemoryToAccelerationStructureInfoKHR copyAccelerationStructureInfo =
+	{
+		VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR,	// VkStructureType							sType;
+		DE_NULL,															// const void*								pNext;
+		storage->getAddressConst(vk,device),								// VkDeviceOrHostAddressConstKHR			src;
+		*(getPtr()),														// VkAccelerationStructureKHR				dst;
+		VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR					// VkCopyAccelerationStructureModeKHR		mode;
+	};
+
+	if (m_buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR)
+	{
+		vk.cmdCopyMemoryToAccelerationStructureKHR(cmdBuffer, &copyAccelerationStructureInfo);
+	}
+	else
+	{
+		VK_CHECK(vk.copyMemoryToAccelerationStructureKHR(device, &copyAccelerationStructureInfo));
+	}
+
+	if (m_buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR)
+	{
+		const VkAccessFlags		accessMasks = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR | VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR;
+		const VkMemoryBarrier	memBarrier = makeMemoryBarrier(accessMasks, accessMasks);
+
+		cmdPipelineMemoryBarrier(vk, cmdBuffer, VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, &memBarrier);
+	}
+}
+
+const VkAccelerationStructureKHR* BottomLevelAccelerationStructureKHR::getPtr (void) const
+{
+	return &m_accelerationStructureKHR.get();
+}
+
+deUint32 BottomLevelAccelerationStructure::getRequiredAllocationCount (void)
+{
+	return BottomLevelAccelerationStructureKHR::getRequiredAllocationCount();
+}
+
+void BottomLevelAccelerationStructure::createAndBuild (const DeviceInterface&	vk,
+													   const VkDevice			device,
+													   const VkCommandBuffer	cmdBuffer,
+													   Allocator&				allocator,
+													   VkDeviceAddress			deviceAddress)
+{
+	create(vk, device, allocator, deviceAddress, 0u);
+	build(vk, device, cmdBuffer);
+}
+
+void BottomLevelAccelerationStructure::createAndCopyFrom (const DeviceInterface&				vk,
+														  const VkDevice						device,
+														  const VkCommandBuffer					cmdBuffer,
+														  Allocator&							allocator,
+														  VkDeviceAddress						deviceAddress,
+														  BottomLevelAccelerationStructure*		accelerationStructure,
+														  VkDeviceSize							compactCopySize)
+{
+	create(vk, device, allocator, deviceAddress, compactCopySize);
+	copyFrom(vk, device, cmdBuffer, accelerationStructure, compactCopySize);
+}
+
+void BottomLevelAccelerationStructure::createAndDeserializeFrom (const DeviceInterface& vk,
+																 const VkDevice								device,
+																 const VkCommandBuffer						cmdBuffer,
+																 Allocator&									allocator,
+																 VkDeviceAddress							deviceAddress,
+																 SerialStorage*								storage)
+{
+	create(vk, device, allocator, deviceAddress, 0u);
+	deserialize(vk, device, cmdBuffer, storage);
+}
+
+de::MovePtr<BottomLevelAccelerationStructure> makeBottomLevelAccelerationStructure ()
+{
+	return de::MovePtr<BottomLevelAccelerationStructure>(new BottomLevelAccelerationStructureKHR);
+}
+
+TopLevelAccelerationStructure::~TopLevelAccelerationStructure ()
+{
+}
+
+TopLevelAccelerationStructure::TopLevelAccelerationStructure ()
+	: m_bottomLevelInstances	()
+{
+}
+
+void TopLevelAccelerationStructure::setInstanceCount (const size_t instanceCount)
+{
+	m_bottomLevelInstances.reserve(instanceCount);
+	m_instanceData.reserve(instanceCount);
+}
+
+void TopLevelAccelerationStructure::addInstance (de::SharedPtr<BottomLevelAccelerationStructure>	bottomLevelStructure,
+												 const VkTransformMatrixKHR&						matrix,
+												 deUint32											instanceCustomIndex,
+												 deUint32											mask,
+												 deUint32											instanceShaderBindingTableRecordOffset,
+												 VkGeometryInstanceFlagsKHR							flags)
+{
+	m_bottomLevelInstances.push_back(bottomLevelStructure);
+	m_instanceData.push_back(InstanceData(matrix, instanceCustomIndex, mask, instanceShaderBindingTableRecordOffset, flags));
+}
+
+void TopLevelAccelerationStructure::createAndBuild (const DeviceInterface&	vk,
+													const VkDevice			device,
+													const VkCommandBuffer	cmdBuffer,
+													Allocator&				allocator,
+													VkDeviceAddress			deviceAddress)
+{
+	create(vk, device, allocator, deviceAddress, 0u);
+	build(vk, device, cmdBuffer);
+}
+
+void TopLevelAccelerationStructure::createAndCopyFrom (const DeviceInterface&				vk,
+													   const VkDevice						device,
+													   const VkCommandBuffer				cmdBuffer,
+													   Allocator&							allocator,
+													   VkDeviceAddress						deviceAddress,
+													   TopLevelAccelerationStructure*		accelerationStructure,
+													   VkDeviceSize							compactCopySize)
+{
+	create(vk, device, allocator, deviceAddress, compactCopySize);
+	copyFrom(vk, device, cmdBuffer, accelerationStructure, compactCopySize);
+}
+
+void TopLevelAccelerationStructure::createAndDeserializeFrom (const DeviceInterface& vk,
+															  const VkDevice							device,
+															  const VkCommandBuffer						cmdBuffer,
+															  Allocator&								allocator,
+															  VkDeviceAddress							deviceAddress,
+															  SerialStorage*							storage)
+{
+	create(vk, device, allocator, deviceAddress, 0u);
+	deserialize(vk, device, cmdBuffer, storage);
+}
+
+BufferWithMemory* createInstanceBuffer (const DeviceInterface&											vk,
+										const VkDevice													device,
+										Allocator&														allocator,
+										std::vector<de::SharedPtr<BottomLevelAccelerationStructure> >	bottomLevelInstances,
+										std::vector<InstanceData>										instanceData)
+{
+	DE_ASSERT(bottomLevelInstances.size() != 0);
+	DE_ASSERT(bottomLevelInstances.size() == instanceData.size());
+	DE_UNREF(instanceData);
+
+	const VkDeviceSize			bufferSizeBytes		= bottomLevelInstances.size() * sizeof(VkAccelerationStructureInstanceKHR);
+	const VkBufferCreateInfo	bufferCreateInfo	= makeBufferCreateInfo(bufferSizeBytes, VK_BUFFER_USAGE_RAY_TRACING_BIT_KHR | VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT);
+	return new BufferWithMemory(vk, device, allocator, bufferCreateInfo, MemoryRequirement::HostVisible | MemoryRequirement::Coherent | MemoryRequirement::DeviceAddress);
+}
+
+void updateInstanceBuffer (const DeviceInterface&											vk,
+						   const VkDevice													device,
+						   std::vector<de::SharedPtr<BottomLevelAccelerationStructure> >	bottomLevelInstances,
+						   std::vector<InstanceData>										instanceData,
+						   BufferWithMemory*												instanceBuffer,
+						   VkAccelerationStructureBuildTypeKHR								buildType)
+{
+	DE_ASSERT(bottomLevelInstances.size() != 0);
+	DE_ASSERT(bottomLevelInstances.size() == instanceData.size());
+
+	const Allocation&			instancesAlloc		= instanceBuffer->getAllocation();
+
+	deUint8*					bufferStart			= static_cast<deUint8*>(instancesAlloc.getHostPtr());
+	VkDeviceSize				bufferOffset		= 0;
+
+	for (size_t instanceNdx = 0; instanceNdx < bottomLevelInstances.size(); ++instanceNdx)
+	{
+		const BottomLevelAccelerationStructure&		bottomLevelAccelerationStructure	= *bottomLevelInstances[instanceNdx];
+		const VkAccelerationStructureKHR			accelerationStructureKHR			= *bottomLevelAccelerationStructure.getPtr();
+
+		// This part needs to be fixed once a new version of the VkAccelerationStructureInstanceKHR will be added to vkStructTypes.inl
+		VkDeviceAddress accelerationStructureAddress;
+		if (buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR)
+		{
+			VkAccelerationStructureDeviceAddressInfoKHR asDeviceAddressInfo =
+			{
+				VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR,	// VkStructureType				sType;
+				DE_NULL,															// const void*					pNext;
+				accelerationStructureKHR											// VkAccelerationStructureKHR	accelerationStructure;
+			};
+			accelerationStructureAddress = vk.getAccelerationStructureDeviceAddressKHR(device, &asDeviceAddressInfo);
+		}
+
+		const deUint64 structureReference	= (buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR)
+											? deUint64(accelerationStructureAddress)
+											: deUint64(&accelerationStructureKHR);
+
+		VkAccelerationStructureInstanceKHR	accelerationStructureInstanceKHR = makeVkAccelerationStructureInstanceKHR
+		(
+			instanceData[instanceNdx].matrix,													//  VkTransformMatrixKHR		transform;
+			instanceData[instanceNdx].instanceCustomIndex,										//  deUint32					instanceCustomIndex:24;
+			instanceData[instanceNdx].mask,														//  deUint32					mask:8;
+			instanceData[instanceNdx].instanceShaderBindingTableRecordOffset,					//  deUint32					instanceShaderBindingTableRecordOffset:24;
+			instanceData[instanceNdx].flags,													//  VkGeometryInstanceFlagsKHR	flags:8;
+			structureReference																	//  deUint64					accelerationStructureReference;
+		);
+
+		deMemcpy(&bufferStart[bufferOffset], &accelerationStructureInstanceKHR, sizeof(VkAccelerationStructureInstanceKHR));
+
+		bufferOffset += sizeof(VkAccelerationStructureInstanceKHR);
+	}
+
+	flushMappedMemoryRange(vk, device, instancesAlloc.getMemory(), instancesAlloc.getOffset(), VK_WHOLE_SIZE);
+}
+
+class TopLevelAccelerationStructureKHR : public TopLevelAccelerationStructure
+{
+public:
+	static deUint32											getRequiredAllocationCount							(void);
+
+															TopLevelAccelerationStructureKHR					();
+															TopLevelAccelerationStructureKHR					(const TopLevelAccelerationStructureKHR&	other) = delete;
+	virtual													~TopLevelAccelerationStructureKHR					();
+
+	void													setBuildType										(const VkAccelerationStructureBuildTypeKHR	buildType) override;
+	void													setBuildFlags										(const VkBuildAccelerationStructureFlagsKHR	flags) override;
+	void													setDeferredOperation								(const bool									deferredOperation) override;
+	void													setUseArrayOfPointers								(const bool									useArrayOfPointers) override;
+	void													setIndirectBuildParameters							(const VkBuffer								indirectBuffer,
+																												 const VkDeviceSize							indirectBufferOffset,
+																												 const deUint32								indirectBufferStride) override;
+	VkBuildAccelerationStructureFlagsKHR					getBuildFlags										() const override;
+
+	void													create												(const DeviceInterface&						vk,
+																												 const VkDevice								device,
+																												 Allocator&									allocator,
+																												 VkDeviceAddress							deviceAddress,
+																												 VkDeviceSize								compactCopySize) override;
+	void													build												(const DeviceInterface&						vk,
+																												 const VkDevice								device,
+																												 const VkCommandBuffer						cmdBuffer) override;
+	void													copyFrom											(const DeviceInterface&						vk,
+																												 const VkDevice								device,
+																												 const VkCommandBuffer						cmdBuffer,
+																												 TopLevelAccelerationStructure*				accelerationStructure,
+																												 VkDeviceSize								compactCopySize) override;
+
+	void													serialize											(const DeviceInterface&						vk,
+																												 const VkDevice								device,
+																												 const VkCommandBuffer						cmdBuffer,
+																												 SerialStorage*								storage) override;
+	void													deserialize											(const DeviceInterface&						vk,
+																												 const VkDevice								device,
+																												 const VkCommandBuffer						cmdBuffer,
+																												 SerialStorage*								storage) override;
+
+	const VkAccelerationStructureKHR*						getPtr												(void) const override;
+
+protected:
+	VkAccelerationStructureBuildTypeKHR						m_buildType;
+	VkBuildAccelerationStructureFlagsKHR					m_buildFlags;
+	bool													m_deferredOperation;
+	bool													m_useArrayOfPointers;
+	de::MovePtr<BufferWithMemory>							m_instanceBuffer;
+	de::MovePtr<BufferWithMemory>							m_instanceAddressBuffer;
+	de::MovePtr<Allocation>									m_accelerationStructureAlloc;
+	de::MovePtr<BufferWithMemory>							m_scratchBuffer;
+	Move<VkAccelerationStructureKHR>						m_accelerationStructureKHR;
+	VkBuffer												m_indirectBuffer;
+	VkDeviceSize											m_indirectBufferOffset;
+	deUint32												m_indirectBufferStride;
+};
+
+deUint32 TopLevelAccelerationStructureKHR::getRequiredAllocationCount (void)
+{
+	/*
+		de::MovePtr<BufferWithMemory>							m_instanceBuffer;
+		de::MovePtr<Allocation>									m_accelerationStructureAlloc;
+		de::MovePtr<BufferWithMemory>							m_scratchBuffer;
+	*/
+	return 3u;
+}
+
+TopLevelAccelerationStructureKHR::TopLevelAccelerationStructureKHR ()
+	: TopLevelAccelerationStructure	()
+	, m_buildType					(VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR)
+	, m_buildFlags					(0u)
+	, m_deferredOperation			(false)
+	, m_useArrayOfPointers			(false)
+	, m_instanceBuffer				()
+	, m_instanceAddressBuffer		()
+	, m_accelerationStructureAlloc	()
+	, m_scratchBuffer				()
+	, m_accelerationStructureKHR	()
+	, m_indirectBuffer				(DE_NULL)
+	, m_indirectBufferOffset		(0)
+	, m_indirectBufferStride		(0)
+{
+}
+
+TopLevelAccelerationStructureKHR::~TopLevelAccelerationStructureKHR ()
+{
+}
+
+void TopLevelAccelerationStructureKHR::setBuildType (const VkAccelerationStructureBuildTypeKHR	buildType)
+{
+	m_buildType = buildType;
+}
+
+void TopLevelAccelerationStructureKHR::setBuildFlags (const VkBuildAccelerationStructureFlagsKHR	flags)
+{
+	m_buildFlags = flags;
+}
+
+void TopLevelAccelerationStructureKHR::setDeferredOperation (const bool	deferredOperation)
+{
+	m_deferredOperation = deferredOperation;
+}
+
+void TopLevelAccelerationStructureKHR::setUseArrayOfPointers (const bool	useArrayOfPointers)
+{
+	m_useArrayOfPointers = useArrayOfPointers;
+}
+
+void TopLevelAccelerationStructureKHR::setIndirectBuildParameters (const VkBuffer		indirectBuffer,
+																   const VkDeviceSize	indirectBufferOffset,
+																   const deUint32		indirectBufferStride)
+{
+	m_indirectBuffer		= indirectBuffer;
+	m_indirectBufferOffset	= indirectBufferOffset;
+	m_indirectBufferStride	= indirectBufferStride;
+}
+
+VkBuildAccelerationStructureFlagsKHR TopLevelAccelerationStructureKHR::getBuildFlags () const
+{
+	return m_buildFlags;
+}
+
+void TopLevelAccelerationStructureKHR::create (const DeviceInterface&				vk,
+											   const VkDevice						device,
+											   Allocator&							allocator,
+											   VkDeviceAddress						deviceAddress,
+											   VkDeviceSize							compactCopySize)
+{
+	DE_ASSERT(!m_bottomLevelInstances.empty() != !(compactCopySize == 0)); // logical xor
+
+	{
+		const VkAccelerationStructureCreateGeometryTypeInfoKHR	accelerationStructureCreateGeometryTypeInfoKHR		=
+		{
+			VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_GEOMETRY_TYPE_INFO_KHR,	//  VkStructureType		sType;
+			DE_NULL,																//  const void*			pNext;
+			VK_GEOMETRY_TYPE_INSTANCES_KHR,											//  VkGeometryTypeKHR	geometryType;
+			static_cast<deUint32>(m_bottomLevelInstances.size()),					//  deUint32			maxPrimitiveCount;
+			VK_INDEX_TYPE_NONE_KHR,													//  VkIndexType			indexType;
+			0u,																		//  deUint32			maxVertexCount;
+			VK_FORMAT_UNDEFINED,													//  VkFormat			vertexFormat;
+			DE_FALSE																//  VkBool32			allowsTransforms;
+		};
+		const VkAccelerationStructureCreateInfoKHR				accelerationStructureCreateInfoKHR					=
+		{
+			VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR,	//  VkStructureType											sType;
+			DE_NULL,													//  const void*												pNext;
+			compactCopySize,											//  VkDeviceSize											compactedSize;
+			VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,				//  VkAccelerationStructureTypeKHR							type;
+			m_buildFlags,												//  VkBuildAccelerationStructureFlagsKHR					flags;
+			1u,															//  deUint32												maxGeometryCount;
+			&accelerationStructureCreateGeometryTypeInfoKHR,			//  const VkAccelerationStructureCreateGeometryTypeInfoKHR*	pGeometryInfos;
+			deviceAddress												//  VkDeviceAddress											deviceAddress;
+		};
+
+		m_accelerationStructureKHR	= createAccelerationStructureKHR(vk, device, &accelerationStructureCreateInfoKHR, DE_NULL);
+	}
+
+	{
+		const VkMemoryRequirements	memoryRequirements	= getAccelerationStructureMemoryRequirements(vk, device, m_accelerationStructureKHR.get(), VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR, m_buildType);
+
+		m_accelerationStructureAlloc = allocator.allocate(memoryRequirements, vk::MemoryRequirement::Local);
+	}
+
+	{
+		const VkBindAccelerationStructureMemoryInfoKHR	bindAccelerationStructureMemoryInfoKHR	=
+		{
+			VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR,	//  VkStructureType				sType;
+			DE_NULL,														//  const void*					pNext;
+			m_accelerationStructureKHR.get(),								//  VkAccelerationStructureKHR	accelerationStructure;
+			m_accelerationStructureAlloc->getMemory(),						//  VkDeviceMemory				memory;
+			m_accelerationStructureAlloc->getOffset(),						//  VkDeviceSize				memoryOffset;
+			0,																//  deUint32					deviceIndexCount;
+			DE_NULL,														//  const deUint32*				pDeviceIndices;
+		};
+
+		VK_CHECK(vk.bindAccelerationStructureMemoryKHR(device, 1, &bindAccelerationStructureMemoryInfoKHR));
+	}
+
+	{
+		const VkMemoryRequirements	memoryRequirements		= getAccelerationStructureMemoryRequirements(vk, device, m_accelerationStructureKHR.get(), VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_KHR, m_buildType);
+		if(memoryRequirements.size > 0u)
+		{
+			const VkBufferCreateInfo		bufferCreateInfo	= makeBufferCreateInfo(memoryRequirements.size, VK_BUFFER_USAGE_RAY_TRACING_BIT_KHR | VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT);
+			m_scratchBuffer										= de::MovePtr<BufferWithMemory>(new BufferWithMemory(vk, device, allocator, bufferCreateInfo, MemoryRequirement::HostVisible | MemoryRequirement::Coherent | MemoryRequirement::DeviceAddress));
+		}
+	}
+
+	if (m_useArrayOfPointers)
+	{
+		const VkBufferCreateInfo	bufferCreateInfo = makeBufferCreateInfo(m_bottomLevelInstances.size() * sizeof(VkDeviceOrHostAddressConstKHR), VK_BUFFER_USAGE_RAY_TRACING_BIT_KHR | VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT);
+		m_instanceAddressBuffer = de::MovePtr<BufferWithMemory>(new BufferWithMemory(vk, device, allocator, bufferCreateInfo, MemoryRequirement::HostVisible | MemoryRequirement::Coherent | MemoryRequirement::DeviceAddress));
+	}
+
+	if(!m_bottomLevelInstances.empty())
+		m_instanceBuffer = de::MovePtr<BufferWithMemory>(createInstanceBuffer(vk, device, allocator, m_bottomLevelInstances, m_instanceData));
+}
+
+void TopLevelAccelerationStructureKHR::build (const DeviceInterface&	vk,
+											  const VkDevice			device,
+											  const VkCommandBuffer		cmdBuffer)
+{
+	DE_ASSERT(!m_bottomLevelInstances.empty());
+	DE_ASSERT(m_accelerationStructureKHR.get() != DE_NULL);
+
+	updateInstanceBuffer(vk, device, m_bottomLevelInstances, m_instanceData, m_instanceBuffer.get(), m_buildType);
+
+	VkDeviceOrHostAddressConstKHR							instancesData;
+	if (m_buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR)
+	{
+		if (m_useArrayOfPointers)
+		{
+			deUint8*						bufferStart			= static_cast<deUint8*>(m_instanceAddressBuffer->getAllocation().getHostPtr());
+			VkDeviceSize					bufferOffset		= 0;
+			VkDeviceOrHostAddressConstKHR	firstInstance		= makeDeviceOrHostAddressConstKHR(vk, device, m_instanceBuffer->get(), 0);
+			for (size_t instanceNdx = 0; instanceNdx < m_bottomLevelInstances.size(); ++instanceNdx)
+			{
+				VkDeviceOrHostAddressConstKHR	currentInstance;
+				currentInstance.deviceAddress	= firstInstance.deviceAddress + instanceNdx * sizeof(VkAccelerationStructureInstanceKHR);
+
+				deMemcpy(&bufferStart[bufferOffset], &currentInstance, sizeof(VkDeviceOrHostAddressConstKHR));
+				bufferOffset += sizeof(VkDeviceOrHostAddressConstKHR);
+			}
+			flushMappedMemoryRange(vk, device, m_instanceAddressBuffer->getAllocation().getMemory(), m_instanceAddressBuffer->getAllocation().getOffset(), VK_WHOLE_SIZE);
+
+			instancesData = makeDeviceOrHostAddressConstKHR(vk, device, m_instanceAddressBuffer->get(), 0);
+		}
+		else
+			instancesData = makeDeviceOrHostAddressConstKHR(vk, device, m_instanceBuffer->get(), 0);
+	}
+	else
+	{
+		if (m_useArrayOfPointers)
+		{
+			deUint8*						bufferStart			= static_cast<deUint8*>(m_instanceAddressBuffer->getAllocation().getHostPtr());
+			VkDeviceSize					bufferOffset		= 0;
+			for (size_t instanceNdx = 0; instanceNdx < m_bottomLevelInstances.size(); ++instanceNdx)
+			{
+				VkDeviceOrHostAddressConstKHR	currentInstance;
+				currentInstance.hostAddress	= (deUint8*)m_instanceBuffer->getAllocation().getHostPtr() + instanceNdx * sizeof(VkAccelerationStructureInstanceKHR);
+
+				deMemcpy(&bufferStart[bufferOffset], &currentInstance, sizeof(VkDeviceOrHostAddressConstKHR));
+				bufferOffset += sizeof(VkDeviceOrHostAddressConstKHR);
+			}
+			instancesData = makeDeviceOrHostAddressConstKHR(m_instanceAddressBuffer->getAllocation().getHostPtr());
+		}
+		else
+			instancesData = makeDeviceOrHostAddressConstKHR(m_instanceBuffer->getAllocation().getHostPtr());
+	}
+
+	VkAccelerationStructureGeometryInstancesDataKHR accelerationStructureGeometryInstancesDataKHR	=
+	{
+		VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR,	//  VkStructureType					sType;
+		DE_NULL,																//  const void*						pNext;
+		(VkBool32)( m_useArrayOfPointers ? DE_TRUE : DE_FALSE ),				//  VkBool32						arrayOfPointers;
+		instancesData															//  VkDeviceOrHostAddressConstKHR	data;
+	};
+
+	VkAccelerationStructureGeometryKHR accelerationStructureGeometryKHR					=
+	{
+		VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR,										//  VkStructureType							sType;
+		DE_NULL,																					//  const void*								pNext;
+		VK_GEOMETRY_TYPE_INSTANCES_KHR,																//  VkGeometryTypeKHR						geometryType;
+		makeVkAccelerationStructureInstancesDataKHR(accelerationStructureGeometryInstancesDataKHR),	//  VkAccelerationStructureGeometryDataKHR	geometry;
+		(VkGeometryFlagsKHR)0u																		//  VkGeometryFlagsKHR						flags;
+	};
+	VkAccelerationStructureGeometryKHR* accelerationStructureGeometryKHRPointer			= &accelerationStructureGeometryKHR;
+
+	VkDeviceOrHostAddressKHR							scratchData;
+	if (m_buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR)
+		scratchData = makeDeviceOrHostAddressKHR(vk, device, m_scratchBuffer->get(), 0);
+	else
+		scratchData = makeDeviceOrHostAddressKHR(m_scratchBuffer->getAllocation().getHostPtr());
+
+	VkAccelerationStructureBuildGeometryInfoKHR accelerationStructureBuildGeometryInfoKHR		=
+	{
+		VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR,						//  VkStructureType								sType;
+		DE_NULL,																				//  const void*									pNext;
+		VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,											//  VkAccelerationStructureTypeKHR				type;
+		m_buildFlags,																			//  VkBuildAccelerationStructureFlagsKHR		flags;
+		DE_FALSE,																				//  VkBool32									update;
+		DE_NULL,																				//  VkAccelerationStructureKHR					srcAccelerationStructure;
+		m_accelerationStructureKHR.get(),														//  VkAccelerationStructureKHR					dstAccelerationStructure;
+		DE_FALSE,																				//  VkBool32									geometryArrayOfPointers;
+		1u,																						//  deUint32									geometryCount;
+		(const VkAccelerationStructureGeometryKHR**)&accelerationStructureGeometryKHRPointer,	//  const VkAccelerationStructureGeometryKHR**	ppGeometries;
+		scratchData																				//  VkDeviceOrHostAddressKHR					scratchData;
+	};
+
+	VkAccelerationStructureBuildOffsetInfoKHR accelerationStructureBuildOffsetInfoKHR		=
+	{
+		(deUint32)m_bottomLevelInstances.size(),	//  deUint32	primitiveCount;
+		0,											//  deUint32	primitiveOffset;
+		0,											//  deUint32	firstVertex;
+		0											//  deUint32	firstTransform;
+	};
+	VkAccelerationStructureBuildOffsetInfoKHR* accelerationStructureBuildOffsetInfoKHRPtr	= &accelerationStructureBuildOffsetInfoKHR;
+
+	if (m_buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR)
+	{
+		if (m_indirectBuffer == DE_NULL)
+			vk.cmdBuildAccelerationStructureKHR(cmdBuffer, 1u, &accelerationStructureBuildGeometryInfoKHR, (const VkAccelerationStructureBuildOffsetInfoKHR**)&accelerationStructureBuildOffsetInfoKHRPtr);
+		else
+			vk.cmdBuildAccelerationStructureIndirectKHR(cmdBuffer, &accelerationStructureBuildGeometryInfoKHR, m_indirectBuffer, m_indirectBufferOffset, m_indirectBufferStride);
+	}
+	else if (!m_deferredOperation)
+	{
+		VK_CHECK(vk.buildAccelerationStructureKHR(device, 1u, &accelerationStructureBuildGeometryInfoKHR, (const VkAccelerationStructureBuildOffsetInfoKHR**)&accelerationStructureBuildOffsetInfoKHRPtr));
+	}
+	else
+	{
+		VkDeferredOperationKHR deferredOperation	= DE_NULL;
+
+		VK_CHECK(vk.createDeferredOperationKHR(device, DE_NULL, &deferredOperation));
+
+		VkDeferredOperationInfoKHR	deferredOperationInfoKHR	=
+		{
+			VK_STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR,	//  VkStructureType			sType;
+			DE_NULL,										//  const void*				pNext;
+			deferredOperation								//  VkDeferredOperationKHR	operationHandle;
+		};
+
+		accelerationStructureBuildGeometryInfoKHR.pNext = &deferredOperationInfoKHR;
+
+		VkResult result = vk.buildAccelerationStructureKHR(device, 1u, &accelerationStructureBuildGeometryInfoKHR, (const VkAccelerationStructureBuildOffsetInfoKHR**)&accelerationStructureBuildOffsetInfoKHRPtr);
+
+		DE_ASSERT(result == VK_OPERATION_DEFERRED_KHR || result == VK_OPERATION_NOT_DEFERRED_KHR || result == VK_SUCCESS);
+		DE_UNREF(result);
+
+		VK_CHECK(finishDeferredOperation(vk, device, deferredOperation));
+
+		accelerationStructureBuildGeometryInfoKHR.pNext = DE_NULL;
+	}
+
+	if (m_buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR)
+	{
+		const VkAccessFlags		accessMasks	= VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR | VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR;
+		const VkMemoryBarrier	memBarrier	= makeMemoryBarrier(accessMasks, accessMasks);
+
+		cmdPipelineMemoryBarrier(vk, cmdBuffer, VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, &memBarrier);
+	}
+}
+
+void TopLevelAccelerationStructureKHR::copyFrom (const DeviceInterface&				vk,
+												 const VkDevice						device,
+												 const VkCommandBuffer				cmdBuffer,
+												 TopLevelAccelerationStructure*		accelerationStructure,
+												 VkDeviceSize						compactCopySize)
+{
+	VkCopyAccelerationStructureInfoKHR copyAccelerationStructureInfo =
+	{
+		VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR,																	// VkStructureType						sType;
+		DE_NULL,																												// const void*							pNext;
+		*(accelerationStructure->getPtr()),																						// VkAccelerationStructureKHR			src;
+		*(getPtr()),																											// VkAccelerationStructureKHR			dst;
+		compactCopySize > 0u ? VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR : VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR	// VkCopyAccelerationStructureModeKHR	mode;
+	};
+
+	if (m_buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR)
+	{
+		vk.cmdCopyAccelerationStructureKHR(cmdBuffer, &copyAccelerationStructureInfo);
+	}
+	else if (!m_deferredOperation)
+	{
+		VK_CHECK(vk.copyAccelerationStructureKHR(device, &copyAccelerationStructureInfo));
+	}
+	else
+	{
+		VkDeferredOperationKHR deferredOperation	= DE_NULL;
+
+		VK_CHECK(vk.createDeferredOperationKHR(device, DE_NULL, &deferredOperation));
+
+		VkDeferredOperationInfoKHR	deferredOperationInfoKHR	=
+		{
+			VK_STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR,	//  VkStructureType			sType;
+			DE_NULL,										//  const void*				pNext;
+			deferredOperation								//  VkDeferredOperationKHR	operationHandle;
+		};
+
+		copyAccelerationStructureInfo.pNext = &deferredOperationInfoKHR;
+
+		VkResult result = vk.copyAccelerationStructureKHR(device, &copyAccelerationStructureInfo);
+
+		DE_ASSERT(result == VK_OPERATION_DEFERRED_KHR || result == VK_OPERATION_NOT_DEFERRED_KHR || result == VK_SUCCESS);
+		DE_UNREF(result);
+
+		VK_CHECK(finishDeferredOperation(vk, device, deferredOperation));
+	}
+
+	if (m_buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR)
+	{
+		const VkAccessFlags		accessMasks	= VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR | VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR;
+		const VkMemoryBarrier	memBarrier	= makeMemoryBarrier(accessMasks, accessMasks);
+
+		cmdPipelineMemoryBarrier(vk, cmdBuffer, VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, &memBarrier);
+	}
+
+}
+
+void TopLevelAccelerationStructureKHR::serialize (const DeviceInterface&	vk,
+												  const VkDevice			device,
+												  const VkCommandBuffer		cmdBuffer,
+												  SerialStorage*			storage)
+{
+	VkCopyAccelerationStructureToMemoryInfoKHR copyAccelerationStructureInfo =
+	{
+		VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR,	// VkStructureType						sType;
+		DE_NULL,															// const void*							pNext;
+		*(getPtr()),														// VkAccelerationStructureKHR			src;
+		storage->getAddress(vk,device),										// VkDeviceOrHostAddressKHR				dst;
+		VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR					// VkCopyAccelerationStructureModeKHR	mode;
+	};
+
+	if (m_buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR)
+	{
+		vk.cmdCopyAccelerationStructureToMemoryKHR(cmdBuffer, &copyAccelerationStructureInfo);
+	}
+	else
+	{
+		VK_CHECK(vk.copyAccelerationStructureToMemoryKHR(device, &copyAccelerationStructureInfo));
+	}
+	// There is no deferred operation for vkCopyAccelerationStructureToMemoryKHR
+}
+
+void TopLevelAccelerationStructureKHR::deserialize (const DeviceInterface&	vk,
+													const VkDevice			device,
+													const VkCommandBuffer	cmdBuffer,
+													SerialStorage*			storage)
+{
+	VkCopyMemoryToAccelerationStructureInfoKHR copyAccelerationStructureInfo =
+	{
+		VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR,	// VkStructureType							sType;
+		DE_NULL,															// const void*								pNext;
+		storage->getAddressConst(vk,device),								// VkDeviceOrHostAddressConstKHR			src;
+		*(getPtr()),														// VkAccelerationStructureKHR				dst;
+		VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR					// VkCopyAccelerationStructureModeKHR		mode;
+	};
+
+	if (m_buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR)
+	{
+		vk.cmdCopyMemoryToAccelerationStructureKHR(cmdBuffer, &copyAccelerationStructureInfo);
+	}
+	else
+	{
+		VK_CHECK(vk.copyMemoryToAccelerationStructureKHR(device, &copyAccelerationStructureInfo));
+	}
+
+	if (m_buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR)
+	{
+		const VkAccessFlags		accessMasks = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR | VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR;
+		const VkMemoryBarrier	memBarrier = makeMemoryBarrier(accessMasks, accessMasks);
+
+		cmdPipelineMemoryBarrier(vk, cmdBuffer, VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, &memBarrier);
+	}
+}
+
+const VkAccelerationStructureKHR* TopLevelAccelerationStructureKHR::getPtr (void) const
+{
+	return &m_accelerationStructureKHR.get();
+}
+
+deUint32 TopLevelAccelerationStructure::getRequiredAllocationCount (void)
+{
+	return TopLevelAccelerationStructureKHR::getRequiredAllocationCount();
+}
+
+de::MovePtr<TopLevelAccelerationStructure> makeTopLevelAccelerationStructure ()
+{
+	return de::MovePtr<TopLevelAccelerationStructure>(new TopLevelAccelerationStructureKHR);
+}
+
+bool queryAccelerationStructureSizeKHR (const DeviceInterface&							vk,
+										const VkDevice									device,
+										const VkCommandBuffer							cmdBuffer,
+										const std::vector<VkAccelerationStructureKHR>&	accelerationStructureHandles,
+										VkAccelerationStructureBuildTypeKHR				buildType,
+										const VkQueryPool								queryPool,
+										VkQueryType										queryType,
+										deUint32										firstQuery,
+										std::vector<VkDeviceSize>&						results)
+{
+	DE_ASSERT(queryType == VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR || queryType == VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR);
+
+	if (buildType == VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR)
+	{
+		// queryPool must be large enough to contain at least (firstQuery + accelerationStructureHandles.size()) queries
+		vk.cmdResetQueryPool(cmdBuffer, queryPool, firstQuery, deUint32(accelerationStructureHandles.size()));
+		vk.cmdWriteAccelerationStructuresPropertiesKHR(cmdBuffer, deUint32(accelerationStructureHandles.size()), accelerationStructureHandles.data(), queryType, queryPool, firstQuery);
+		// results cannot be retrieved to CPU at the moment - you need to do it using getQueryPoolResults after cmdBuffer is executed. Meanwhile function returns a vector of 0s.
+		results.resize(accelerationStructureHandles.size(), 0u);
+		return false;
+	}
+	// buildType != VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR
+	results.resize(accelerationStructureHandles.size(), 0u);
+	vk.writeAccelerationStructuresPropertiesKHR(device, deUint32(accelerationStructureHandles.size()), accelerationStructureHandles.data(), queryType, sizeof(VkDeviceSize), results.data(), sizeof(VkDeviceSize));
+	// results will contain proper values
+	return true;
+}
+
+bool queryAccelerationStructureSize (const DeviceInterface&							vk,
+									 const VkDevice									device,
+									 const VkCommandBuffer							cmdBuffer,
+									 const std::vector<VkAccelerationStructureKHR>&	accelerationStructureHandles,
+									 VkAccelerationStructureBuildTypeKHR			buildType,
+									 const VkQueryPool								queryPool,
+									 VkQueryType									queryType,
+									 deUint32										firstQuery,
+									 std::vector<VkDeviceSize>&						results)
+{
+	return queryAccelerationStructureSizeKHR(vk, device, cmdBuffer, accelerationStructureHandles, buildType, queryPool, queryType, firstQuery, results);
+}
+
+RayTracingPipeline::RayTracingPipeline ()
+	: m_shadersModules			()
+	, m_pipelineLibraries		()
+	, m_shaderCreateInfos		()
+	, m_shadersGroupCreateInfos	()
+	, m_pipelineCreateFlags		(0U)
+	, m_maxRecursionDepth		(1U)
+	, m_maxPayloadSize			(0U)
+	, m_maxAttributeSize		(0U)
+	, m_maxCallableSize			(0U)
+	, m_deferredOperation		(false)
+{
+}
+
+RayTracingPipeline::~RayTracingPipeline ()
+{
+}
+
+#define CHECKED_ASSIGN_SHADER(SHADER, STAGE)						\
+	if (SHADER == VK_SHADER_UNUSED_KHR)								\
+		SHADER = STAGE;												\
+	else															\
+		TCU_THROW(InternalError, "Attempt to reassign shader")
+
+void RayTracingPipeline::addShader (VkShaderStageFlagBits shaderStage, Move<VkShaderModule> shaderModule, deUint32 group)
+{
+	if (group >= m_shadersGroupCreateInfos.size())
+	{
+		for (size_t groupNdx = m_shadersGroupCreateInfos.size(); groupNdx <= group; ++groupNdx)
+		{
+			VkRayTracingShaderGroupCreateInfoKHR	shaderGroupCreateInfo	=
+			{
+				VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR,	//  VkStructureType					sType;
+				DE_NULL,													//  const void*						pNext;
+				VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR,				//  VkRayTracingShaderGroupTypeKHR	type;
+				VK_SHADER_UNUSED_KHR,										//  deUint32						generalShader;
+				VK_SHADER_UNUSED_KHR,										//  deUint32						closestHitShader;
+				VK_SHADER_UNUSED_KHR,										//  deUint32						anyHitShader;
+				VK_SHADER_UNUSED_KHR,										//  deUint32						intersectionShader;
+				DE_NULL,													//  const void*						pShaderGroupCaptureReplayHandle;
+			};
+
+			m_shadersGroupCreateInfos.push_back(shaderGroupCreateInfo);
+		}
+	}
+
+	const deUint32							shaderStageNdx			= (deUint32)m_shaderCreateInfos.size();
+	VkRayTracingShaderGroupCreateInfoKHR&	shaderGroupCreateInfo	= m_shadersGroupCreateInfos[group];
+
+	switch (shaderStage)
+	{
+		case VK_SHADER_STAGE_RAYGEN_BIT_KHR:		CHECKED_ASSIGN_SHADER(shaderGroupCreateInfo.generalShader,		shaderStageNdx);	break;
+		case VK_SHADER_STAGE_MISS_BIT_KHR:			CHECKED_ASSIGN_SHADER(shaderGroupCreateInfo.generalShader,		shaderStageNdx);	break;
+		case VK_SHADER_STAGE_CALLABLE_BIT_KHR:		CHECKED_ASSIGN_SHADER(shaderGroupCreateInfo.generalShader,		shaderStageNdx);	break;
+		case VK_SHADER_STAGE_ANY_HIT_BIT_KHR:		CHECKED_ASSIGN_SHADER(shaderGroupCreateInfo.anyHitShader,		shaderStageNdx);	break;
+		case VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR:	CHECKED_ASSIGN_SHADER(shaderGroupCreateInfo.closestHitShader,	shaderStageNdx);	break;
+		case VK_SHADER_STAGE_INTERSECTION_BIT_KHR:	CHECKED_ASSIGN_SHADER(shaderGroupCreateInfo.intersectionShader,	shaderStageNdx);	break;
+		default:									TCU_THROW(InternalError, "Unacceptable stage");
+	}
+
+	switch (shaderStage)
+	{
+		case VK_SHADER_STAGE_RAYGEN_BIT_KHR:
+		case VK_SHADER_STAGE_MISS_BIT_KHR:
+		case VK_SHADER_STAGE_CALLABLE_BIT_KHR:
+		{
+			DE_ASSERT(shaderGroupCreateInfo.type == VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR);
+			shaderGroupCreateInfo.type = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR;
+
+			break;
+		}
+
+		case VK_SHADER_STAGE_ANY_HIT_BIT_KHR:
+		case VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR:
+		case VK_SHADER_STAGE_INTERSECTION_BIT_KHR:
+		{
+			DE_ASSERT(shaderGroupCreateInfo.type != VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR);
+			shaderGroupCreateInfo.type	= (shaderGroupCreateInfo.intersectionShader == VK_SHADER_UNUSED_KHR)
+										? VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR
+										: VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR;
+
+			break;
+		}
+
+		default: TCU_THROW(InternalError, "Unacceptable stage");
+	}
+
+	{
+		const VkPipelineShaderStageCreateInfo	shaderCreateInfo	=
+		{
+			VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,	//  VkStructureType						sType;
+			DE_NULL,												//  const void*							pNext;
+			(VkPipelineShaderStageCreateFlags)0,					//  VkPipelineShaderStageCreateFlags	flags;
+			shaderStage,											//  VkShaderStageFlagBits				stage;
+			*shaderModule,											//  VkShaderModule						module;
+			"main",													//  const char*							pName;
+			DE_NULL,												//  const VkSpecializationInfo*			pSpecializationInfo;
+		};
+
+		m_shaderCreateInfos.push_back(shaderCreateInfo);
+	}
+
+	m_shadersModules.push_back(makeVkSharedPtr(shaderModule));
+}
+
+void RayTracingPipeline::addLibrary (de::SharedPtr<de::MovePtr<RayTracingPipeline>> pipelineLibrary)
+{
+	m_pipelineLibraries.push_back(pipelineLibrary);
+}
+
+Move<VkPipeline> RayTracingPipeline::createPipelineKHR (const DeviceInterface&								vk,
+														const VkDevice										device,
+														const VkPipelineLayout								pipelineLayout,
+														const std::vector<de::SharedPtr<Move<VkPipeline>>>&	pipelineLibraries)
+{
+	for (size_t groupNdx = 0; groupNdx < m_shadersGroupCreateInfos.size(); ++groupNdx)
+		DE_ASSERT(m_shadersGroupCreateInfos[groupNdx].sType == VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR);
+
+	DE_ASSERT(m_shaderCreateInfos.size() > 0);
+	DE_ASSERT(m_shadersGroupCreateInfos.size() > 0);
+
+	std::vector<VkPipeline>								vkPipelineLibraries;
+	for (auto it = begin(pipelineLibraries), eit = end(pipelineLibraries); it != eit; ++it)
+		vkPipelineLibraries.push_back( it->get()->get() );
+	const VkPipelineLibraryCreateInfoKHR				librariesCreateInfo	=
+	{
+		VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR,		//  VkStructureType	sType;
+		DE_NULL,												//  const void*		pNext;
+		deUint32(vkPipelineLibraries.size()),					//  deUint32		libraryCount;
+		dataOrNullPtr(vkPipelineLibraries)						//  VkPipeline*		pLibraries;
+	};
+	const VkRayTracingPipelineInterfaceCreateInfoKHR	pipelineInterfaceCreateInfo		=
+	{
+		VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR,	//  VkStructureType	sType;
+		DE_NULL,															//  const void*		pNext;
+		m_maxPayloadSize,													//  deUint32		maxPayloadSize;
+		m_maxAttributeSize,													//  deUint32		maxAttributeSize;
+		m_maxCallableSize													//  deUint32		maxCallableSize;
+	};
+	const bool											addPipelineInterfaceCreateInfo	= m_maxPayloadSize != 0 || m_maxAttributeSize != 0 || m_maxCallableSize != 0;
+	const VkRayTracingPipelineInterfaceCreateInfoKHR*	pipelineInterfaceCreateInfoPtr	= addPipelineInterfaceCreateInfo ? &pipelineInterfaceCreateInfo : DE_NULL;
+	Move<VkDeferredOperationKHR>						deferredOperation				= (m_deferredOperation ? createDeferredOperationKHR(vk, device) : Move<VkDeferredOperationKHR>());
+	VkDeferredOperationInfoKHR							deferredOperationInfoKHR		=
+	{
+		VK_STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR,	//  VkStructureType			sType;
+		DE_NULL,										//  const void*				pNext;
+		*deferredOperation								//  VkDeferredOperationKHR	operationHandle;
+	};
+	const VkDeferredOperationInfoKHR*					deferredOperationInfoPtr		= m_deferredOperation ? &deferredOperationInfoKHR : DE_NULL;
+	const VkRayTracingPipelineCreateInfoKHR				pipelineCreateInfo				=
+	{
+		VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR,	//  VkStructureType								sType;
+		deferredOperationInfoPtr,								//  const void*									pNext;
+		m_pipelineCreateFlags,									//  VkPipelineCreateFlags						flags;
+		(deUint32)m_shaderCreateInfos.size(),					//  deUint32									stageCount;
+		m_shaderCreateInfos.data(),								//  const VkPipelineShaderStageCreateInfo*		pStages;
+		(deUint32)m_shadersGroupCreateInfos.size(),				//  deUint32									groupCount;
+		m_shadersGroupCreateInfos.data(),						//  const VkRayTracingShaderGroupCreateInfoKHR*	pGroups;
+		m_maxRecursionDepth,									//  deUint32									maxRecursionDepth;
+		librariesCreateInfo,									//  VkPipelineLibraryCreateInfoKHR				libraries;
+		pipelineInterfaceCreateInfoPtr,							//  VkRayTracingPipelineInterfaceCreateInfoKHR*	pLibraryInterface;
+		pipelineLayout,											//  VkPipelineLayout							layout;
+		(VkPipeline)DE_NULL,									//  VkPipeline									basePipelineHandle;
+		0,														//  deInt32										basePipelineIndex;
+	};
+	VkPipeline											object							= DE_NULL;
+	VkResult											result							= vk.createRayTracingPipelinesKHR(device, DE_NULL, 1u, &pipelineCreateInfo, DE_NULL, &object);
+	Move<VkPipeline>									pipeline						(check<VkPipeline>(object), Deleter<VkPipeline>(vk, device, DE_NULL));
+
+	if (m_deferredOperation)
+	{
+		DE_ASSERT(result == VK_OPERATION_DEFERRED_KHR || result == VK_OPERATION_NOT_DEFERRED_KHR || result == VK_SUCCESS);
+		DE_UNREF(result);
+
+		VK_CHECK(finishDeferredOperation(vk, device, *deferredOperation));
+	}
+
+	return pipeline;
+}
+
+
+Move<VkPipeline> RayTracingPipeline::createPipeline (const DeviceInterface&									vk,
+													 const VkDevice											device,
+													 const VkPipelineLayout									pipelineLayout,
+													 const std::vector<de::SharedPtr<Move<VkPipeline>>>&	pipelineLibraries)
+{
+	return createPipelineKHR(vk, device, pipelineLayout, pipelineLibraries);
+}
+
+std::vector<de::SharedPtr<Move<VkPipeline>>> RayTracingPipeline::createPipelineWithLibraries (const DeviceInterface&			vk,
+																								const VkDevice					device,
+																								const VkPipelineLayout			pipelineLayout)
+{
+	for (size_t groupNdx = 0; groupNdx < m_shadersGroupCreateInfos.size(); ++groupNdx)
+		DE_ASSERT(m_shadersGroupCreateInfos[groupNdx].sType == VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR);
+
+	DE_ASSERT(m_shaderCreateInfos.size() > 0);
+	DE_ASSERT(m_shadersGroupCreateInfos.size() > 0);
+
+	std::vector<de::SharedPtr<Move<VkPipeline>>> result, allLibraries, firstLibraries;
+	for(auto it=begin(m_pipelineLibraries), eit=end(m_pipelineLibraries); it!=eit; ++it)
+	{
+		auto childLibraries = (*it)->get()->createPipelineWithLibraries(vk, device, pipelineLayout);
+		DE_ASSERT(childLibraries.size() > 0);
+		firstLibraries.push_back(childLibraries[0]);
+		std::copy(begin(childLibraries), end(childLibraries), std::back_inserter(allLibraries));
+	}
+	result.push_back(makeVkSharedPtr(createPipeline(vk, device, pipelineLayout, firstLibraries)));
+	std::copy(begin(allLibraries), end(allLibraries), std::back_inserter(result));
+	return result;
+}
+
+de::MovePtr<BufferWithMemory> RayTracingPipeline::createShaderBindingTable (const DeviceInterface&		vk,
+																			const VkDevice				device,
+																			const VkPipeline			pipeline,
+																			Allocator&					allocator,
+																			const deUint32&				shaderGroupHandleSize,
+																			const deUint32				shaderGroupBaseAlignment,
+																			const deUint32&				firstGroup,
+																			const deUint32&				groupCount,
+																			const VkBufferCreateFlags&	additionalBufferCreateFlags,
+																			const VkBufferUsageFlags&	additionalBufferUsageFlags,
+																			const MemoryRequirement&	additionalMemoryRequirement,
+																			const VkDeviceAddress&		opaqueCaptureAddress,
+																			const deUint32				shaderBindingTableOffset,
+																			const deUint32				shaderRecordSize)
+{
+	DE_ASSERT(shaderGroupBaseAlignment != 0u);
+	DE_ASSERT((shaderBindingTableOffset % shaderGroupBaseAlignment) == 0);
+	DE_UNREF(shaderGroupBaseAlignment);
+
+	const deUint32							sbtSize							= shaderBindingTableOffset + groupCount * deAlign32(shaderGroupHandleSize + shaderRecordSize, shaderGroupHandleSize);
+	const VkBufferUsageFlags				sbtFlags						= VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_RAY_TRACING_BIT_KHR | additionalBufferUsageFlags;
+	VkBufferCreateInfo						sbtCreateInfo					= makeBufferCreateInfo(sbtSize, sbtFlags);
+	sbtCreateInfo.flags														|= additionalBufferCreateFlags;
+	VkBufferOpaqueCaptureAddressCreateInfo	sbtCaptureAddressInfo			=
+	{
+		VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,	// VkStructureType	sType;
+		DE_NULL,														// const void*		pNext;
+		deUint64(opaqueCaptureAddress)									// deUint64			opaqueCaptureAddress;
+	};
+	if (opaqueCaptureAddress != 0u)
+		sbtCreateInfo.pNext = &sbtCaptureAddressInfo;
+	const MemoryRequirement			sbtMemRequirements						= MemoryRequirement::HostVisible | MemoryRequirement::Coherent | additionalMemoryRequirement;
+	de::MovePtr<BufferWithMemory>	sbtBuffer								= de::MovePtr<BufferWithMemory>(new BufferWithMemory(vk, device, allocator, sbtCreateInfo, sbtMemRequirements));
+	vk::Allocation&					sbtAlloc								= sbtBuffer->getAllocation();
+
+	// collect shader group handles
+	std::vector<deUint8>			shaderHandles							(groupCount * shaderGroupHandleSize);
+	VK_CHECK(getRayTracingShaderGroupHandles(vk, device, pipeline, firstGroup, groupCount, groupCount * shaderGroupHandleSize, shaderHandles.data()));
+
+	// reserve place for ShaderRecordKHR after each shader handle ( ShaderRecordKHR size might be 0 ). Also take alignment into consideration
+	deUint8* shaderBegin = (deUint8*)sbtAlloc.getHostPtr() + shaderBindingTableOffset;
+	for (deUint32 idx = 0; idx < groupCount; ++idx)
+	{
+		deUint8* shaderSrcPos	= shaderHandles.data() + idx * shaderGroupHandleSize;
+		deUint8* shaderDstPos	= shaderBegin + idx * deAlign32(shaderGroupHandleSize + shaderRecordSize, shaderGroupHandleSize);
+		deMemcpy(shaderDstPos, shaderSrcPos, shaderGroupHandleSize);
+	}
+
+	flushMappedMemoryRange(vk, device, sbtAlloc.getMemory(), sbtAlloc.getOffset(), VK_WHOLE_SIZE);
+
+	return sbtBuffer;
+}
+
+void RayTracingPipeline::setCreateFlags (const VkPipelineCreateFlags& pipelineCreateFlags)
+{
+	m_pipelineCreateFlags = pipelineCreateFlags;
+}
+
+void RayTracingPipeline::setMaxRecursionDepth (const deUint32& maxRecursionDepth)
+{
+	m_maxRecursionDepth = maxRecursionDepth;
+}
+
+void RayTracingPipeline::setMaxPayloadSize (const deUint32& maxPayloadSize)
+{
+	m_maxPayloadSize = maxPayloadSize;
+}
+
+void RayTracingPipeline::setMaxAttributeSize (const deUint32& maxAttributeSize)
+{
+	m_maxAttributeSize = maxAttributeSize;
+}
+
+void RayTracingPipeline::setMaxCallableSize (const deUint32& maxCallableSize)
+{
+	m_maxCallableSize = maxCallableSize;
+}
+
+void RayTracingPipeline::setDeferredOperation (const bool deferredOperation)
+{
+	m_deferredOperation = deferredOperation;
+}
+
+class RayTracingPropertiesKHR : public RayTracingProperties
+{
+public:
+							RayTracingPropertiesKHR						() = delete;
+							RayTracingPropertiesKHR						(const InstanceInterface&	vki,
+																		 const VkPhysicalDevice		physicalDevice);
+	virtual					~RayTracingPropertiesKHR					();
+
+	virtual deUint32		getShaderGroupHandleSize					(void)	{ return m_rayTracingPropertiesKHR.shaderGroupHandleSize;					};
+	virtual deUint32		getMaxRecursionDepth						(void)	{ return m_rayTracingPropertiesKHR.maxRecursionDepth;						};
+	virtual deUint32		getMaxShaderGroupStride						(void)	{ return m_rayTracingPropertiesKHR.maxShaderGroupStride;					};
+	virtual deUint32		getShaderGroupBaseAlignment					(void)	{ return m_rayTracingPropertiesKHR.shaderGroupBaseAlignment;				};
+	virtual deUint64		getMaxGeometryCount							(void)	{ return m_rayTracingPropertiesKHR.maxGeometryCount;						};
+	virtual deUint64		getMaxInstanceCount							(void)	{ return m_rayTracingPropertiesKHR.maxInstanceCount;						};
+	virtual deUint64		getMaxPrimitiveCount						(void)	{ return m_rayTracingPropertiesKHR.maxPrimitiveCount;						};
+	virtual deUint32		getMaxDescriptorSetAccelerationStructures	(void)	{ return m_rayTracingPropertiesKHR.maxDescriptorSetAccelerationStructures;	};
+
+protected:
+	VkPhysicalDeviceRayTracingPropertiesKHR	m_rayTracingPropertiesKHR;
+};
+
+RayTracingPropertiesKHR::~RayTracingPropertiesKHR ()
+{
+}
+
+RayTracingPropertiesKHR::RayTracingPropertiesKHR (const InstanceInterface&	vki,
+												  const VkPhysicalDevice	physicalDevice)
+	: RayTracingProperties	(vki, physicalDevice)
+{
+	m_rayTracingPropertiesKHR = getPhysicalDeviceExtensionProperties(vki, physicalDevice);
+}
+
+de::MovePtr<RayTracingProperties> makeRayTracingProperties (const InstanceInterface&	vki,
+															const VkPhysicalDevice		physicalDevice)
+{
+	return de::MovePtr<RayTracingProperties>(new RayTracingPropertiesKHR(vki, physicalDevice));
+}
+
+static inline void cmdTraceRaysKHR (const DeviceInterface&				vk,
+									VkCommandBuffer						commandBuffer,
+									const VkStridedBufferRegionKHR*		raygenShaderBindingTableRegion,
+									const VkStridedBufferRegionKHR*		missShaderBindingTableRegion,
+									const VkStridedBufferRegionKHR*		hitShaderBindingTableRegion,
+									const VkStridedBufferRegionKHR*		callableShaderBindingTableRegion,
+									deUint32							width,
+									deUint32							height,
+									deUint32							depth)
+{
+	return vk.cmdTraceRaysKHR(commandBuffer,
+							  raygenShaderBindingTableRegion,
+							  missShaderBindingTableRegion,
+							  hitShaderBindingTableRegion,
+							  callableShaderBindingTableRegion,
+							  width,
+							  height,
+							  depth);
+}
+
+
+void cmdTraceRays (const DeviceInterface&			vk,
+				   VkCommandBuffer					commandBuffer,
+				   const VkStridedBufferRegionKHR*	raygenShaderBindingTableRegion,
+				   const VkStridedBufferRegionKHR*	missShaderBindingTableRegion,
+				   const VkStridedBufferRegionKHR*	hitShaderBindingTableRegion,
+				   const VkStridedBufferRegionKHR*	callableShaderBindingTableRegion,
+				   deUint32							width,
+				   deUint32							height,
+				   deUint32							depth)
+{
+	DE_ASSERT(raygenShaderBindingTableRegion	!= DE_NULL);
+	DE_ASSERT(missShaderBindingTableRegion		!= DE_NULL);
+	DE_ASSERT(hitShaderBindingTableRegion		!= DE_NULL);
+	DE_ASSERT(callableShaderBindingTableRegion	!= DE_NULL);
+	DE_ASSERT(width > 0);
+	DE_ASSERT(height > 0);
+	DE_ASSERT(depth > 0);
+
+	return cmdTraceRaysKHR(vk,
+						   commandBuffer,
+						   raygenShaderBindingTableRegion,
+						   missShaderBindingTableRegion,
+						   hitShaderBindingTableRegion,
+						   callableShaderBindingTableRegion,
+						   width,
+						   height,
+						   depth);
+}
+
+static inline void cmdTraceRaysIndirectKHR (const DeviceInterface&				vk,
+											VkCommandBuffer						commandBuffer,
+											const VkStridedBufferRegionKHR*		raygenShaderBindingTableRegion,
+											const VkStridedBufferRegionKHR*		missShaderBindingTableRegion,
+											const VkStridedBufferRegionKHR*		hitShaderBindingTableRegion,
+											const VkStridedBufferRegionKHR*		callableShaderBindingTableRegion,
+											VkBuffer							buffer,
+											VkDeviceSize						offset)
+{
+	DE_ASSERT(raygenShaderBindingTableRegion	!= DE_NULL);
+	DE_ASSERT(missShaderBindingTableRegion		!= DE_NULL);
+	DE_ASSERT(hitShaderBindingTableRegion		!= DE_NULL);
+	DE_ASSERT(callableShaderBindingTableRegion	!= DE_NULL);
+	DE_ASSERT(buffer != DE_NULL);
+
+	return vk.cmdTraceRaysIndirectKHR(commandBuffer,
+									  raygenShaderBindingTableRegion,
+									  missShaderBindingTableRegion,
+									  hitShaderBindingTableRegion,
+									  callableShaderBindingTableRegion,
+									  buffer,
+									  offset);
+}
+
+void cmdTraceRaysIndirect (const DeviceInterface&			vk,
+						   VkCommandBuffer					commandBuffer,
+						   const VkStridedBufferRegionKHR*	raygenShaderBindingTableRegion,
+						   const VkStridedBufferRegionKHR*	missShaderBindingTableRegion,
+						   const VkStridedBufferRegionKHR*	hitShaderBindingTableRegion,
+						   const VkStridedBufferRegionKHR*	callableShaderBindingTableRegion,
+						   VkBuffer							buffer,
+						   VkDeviceSize						offset)
+{
+	return cmdTraceRaysIndirectKHR(vk,
+								   commandBuffer,
+								   raygenShaderBindingTableRegion,
+								   missShaderBindingTableRegion,
+								   hitShaderBindingTableRegion,
+								   callableShaderBindingTableRegion,
+								   buffer,
+								   offset);
+}
+
+} // vk
diff --git a/external/vulkancts/framework/vulkan/vkRayTracingUtil.hpp b/external/vulkancts/framework/vulkan/vkRayTracingUtil.hpp
new file mode 100644
index 0000000..8446d74
--- /dev/null
+++ b/external/vulkancts/framework/vulkan/vkRayTracingUtil.hpp
@@ -0,0 +1,595 @@
+#ifndef _VKRAYTRACINGUTIL_HPP
+#define _VKRAYTRACINGUTIL_HPP
+/*-------------------------------------------------------------------------
+ * Vulkan CTS Framework
+ * --------------------
+ *
+ * Copyright (c) 2020 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Vulkan ray tracing utility.
+ *//*--------------------------------------------------------------------*/
+
+#include "vkDefs.hpp"
+#include "vkRef.hpp"
+#include "vkMemUtil.hpp"
+#include "vkBufferWithMemory.hpp"
+
+#include "deFloat16.h"
+
+#include "tcuVector.hpp"
+#include "tcuVectorType.hpp"
+
+#include <vector>
+
+namespace vk
+{
+const VkTransformMatrixKHR identityMatrix3x4 = { { { 1.0f, 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 1.0f, 0.0f } } };
+
+template<typename T>
+inline de::SharedPtr<Move<T>> makeVkSharedPtr(Move<T> move)
+{
+	return de::SharedPtr<Move<T>>(new Move<T>(move));
+}
+
+template<typename T>
+inline de::SharedPtr<de::MovePtr<T> > makeVkSharedPtr(de::MovePtr<T> movePtr)
+{
+	return de::SharedPtr<de::MovePtr<T> >(new de::MovePtr<T>(movePtr));
+}
+
+template<typename T>
+inline const T* dataOrNullPtr(const std::vector<T>& v)
+{
+	return (v.empty() ? DE_NULL : v.data());
+}
+
+template<typename T>
+inline T* dataOrNullPtr(std::vector<T>& v)
+{
+	return (v.empty() ? DE_NULL : v.data());
+}
+
+inline std::string updateRayTracingGLSL (const std::string& str)
+{
+	return str;
+}
+
+std::string getCommonRayGenerationShader (void);
+
+const char* getRayTracingExtensionUsed (void);
+
+class RaytracedGeometryBase
+{
+public:
+								RaytracedGeometryBase			()										= delete;
+								RaytracedGeometryBase			(const RaytracedGeometryBase& geometry)	= delete;
+								RaytracedGeometryBase			(VkGeometryTypeKHR geometryType, VkFormat vertexFormat, VkIndexType indexType);
+								virtual ~RaytracedGeometryBase	();
+
+	inline VkGeometryTypeKHR	getGeometryType					(void) const								{ return m_geometryType; }
+	inline bool					isTrianglesType					(void) const								{ return m_geometryType == VK_GEOMETRY_TYPE_TRIANGLES_KHR; }
+	inline VkFormat				getVertexFormat					(void) const								{ return m_vertexFormat; }
+	inline VkIndexType			getIndexType					(void) const								{ return m_indexType; }
+	inline bool					usesIndices						(void) const								{ return m_indexType != VK_INDEX_TYPE_NONE_KHR; }
+	inline VkGeometryFlagsKHR	getGeometryFlags				(void) const								{ return m_geometryFlags; }
+	inline void					setGeometryFlags				(const VkGeometryFlagsKHR geometryFlags)	{ m_geometryFlags = geometryFlags; }
+	virtual deUint32			getVertexCount					(void) const								= 0;
+	virtual const deUint8*		getVertexPointer				(void) const								= 0;
+	virtual VkDeviceSize		getVertexStride					(void) const								= 0;
+	virtual size_t				getVertexByteSize				(void) const								= 0;
+	virtual VkDeviceSize		getAABBStride					(void) const								= 0;
+	virtual deUint32			getIndexCount					(void) const								= 0;
+	virtual const deUint8*		getIndexPointer					(void) const								= 0;
+	virtual VkDeviceSize		getIndexStride					(void) const								= 0;
+	virtual size_t				getIndexByteSize				(void) const								= 0;
+	virtual deUint32			getPrimitiveCount				(void) const								= 0;
+	virtual void				addVertex						(const tcu::Vec3& vertex)					= 0;
+	virtual void				addIndex						(const deUint32& index)						= 0;
+private:
+	VkGeometryTypeKHR			m_geometryType;
+	VkFormat					m_vertexFormat;
+	VkIndexType					m_indexType;
+	VkGeometryFlagsKHR			m_geometryFlags;
+};
+
+template <typename T>
+inline T convertSatRte (float f)
+{
+	// \note Doesn't work for 64-bit types
+	DE_STATIC_ASSERT(sizeof(T) < sizeof(deUint64));
+	DE_STATIC_ASSERT((-3 % 2 != 0) && (-4 % 2 == 0));
+
+	deInt64	minVal	= std::numeric_limits<T>::min();
+	deInt64 maxVal	= std::numeric_limits<T>::max();
+	float	q		= deFloatFrac(f);
+	deInt64 intVal	= (deInt64)(f-q);
+
+	// Rounding.
+	if (q == 0.5f)
+	{
+		if (intVal % 2 != 0)
+			intVal++;
+	}
+	else if (q > 0.5f)
+		intVal++;
+	// else Don't add anything
+
+	// Saturate.
+	intVal = de::max(minVal, de::min(maxVal, intVal));
+
+	return (T)intVal;
+}
+
+inline deInt16 deFloat32ToSNorm16 (float src)
+{
+	const deInt16	range = (deInt32)((1u << 15) - 1u);
+	const deInt16	intVal = convertSatRte<deInt16>(src * (float)range);
+	return de::clamp<deInt16>(intVal, -range, range);
+}
+
+typedef tcu::Vector<deFloat16, 2>			Vec2_16;
+typedef tcu::Vector<deFloat16, 4>			Vec4_16;
+typedef tcu::Vector<deInt16, 2>				Vec2_16SNorm;
+typedef tcu::Vector<deInt16, 4>				Vec4_16SNorm;
+
+template<typename V>	VkFormat			vertexFormatFromType				()							{ TCU_THROW(TestError, "Unknown VkFormat"); }
+template<>				inline VkFormat		vertexFormatFromType<tcu::Vec2>		()							{ return VK_FORMAT_R32G32_SFLOAT; }
+template<>				inline VkFormat		vertexFormatFromType<tcu::Vec3>		()							{ return VK_FORMAT_R32G32B32_SFLOAT; }
+template<>				inline VkFormat		vertexFormatFromType<Vec2_16>		()							{ return VK_FORMAT_R16G16_SFLOAT; }
+template<>				inline VkFormat		vertexFormatFromType<Vec4_16>		()							{ return VK_FORMAT_R16G16B16A16_SFLOAT; }
+template<>				inline VkFormat		vertexFormatFromType<Vec2_16SNorm>	()							{ return VK_FORMAT_R16G16_SNORM; }
+template<>				inline VkFormat		vertexFormatFromType<Vec4_16SNorm>	()							{ return VK_FORMAT_R16G16B16A16_SNORM; }
+
+struct EmptyIndex {};
+template<typename I>	VkIndexType			indexTypeFromType					()							{ TCU_THROW(TestError, "Unknown VkIndexType"); }
+template<>				inline VkIndexType	indexTypeFromType<deUint16>			()							{ return VK_INDEX_TYPE_UINT16; }
+template<>				inline VkIndexType	indexTypeFromType<deUint32>			()							{ return VK_INDEX_TYPE_UINT32; }
+template<>				inline VkIndexType	indexTypeFromType<EmptyIndex>		()							{ return VK_INDEX_TYPE_NONE_KHR; }
+
+template<typename V>	V					convertFloatTo						(const tcu::Vec3& vertex)	{ DE_UNREF(vertex); TCU_THROW(TestError, "Unknown data format"); }
+template<>				inline tcu::Vec2	convertFloatTo<tcu::Vec2>			(const tcu::Vec3& vertex)	{ return tcu::Vec2(vertex.x(), vertex.y()); }
+template<>				inline tcu::Vec3	convertFloatTo<tcu::Vec3>			(const tcu::Vec3& vertex)	{ return vertex; }
+template<>				inline Vec2_16		convertFloatTo<Vec2_16>				(const tcu::Vec3& vertex)	{ return Vec2_16(deFloat32To16(vertex.x()), deFloat32To16(vertex.y())); }
+template<>				inline Vec4_16		convertFloatTo<Vec4_16>				(const tcu::Vec3& vertex)	{ return Vec4_16(deFloat32To16(vertex.x()), deFloat32To16(vertex.y()), deFloat32To16(vertex.z()), deFloat32To16(0.0f)); }
+template<>				inline Vec2_16SNorm	convertFloatTo<Vec2_16SNorm>		(const tcu::Vec3& vertex)	{ return Vec2_16SNorm(deFloat32ToSNorm16(vertex.x()), deFloat32ToSNorm16(vertex.y())); }
+template<>				inline Vec4_16SNorm	convertFloatTo<Vec4_16SNorm>		(const tcu::Vec3& vertex)	{ return Vec4_16SNorm(deFloat32ToSNorm16(vertex.x()), deFloat32ToSNorm16(vertex.y()), deFloat32ToSNorm16(vertex.z()), deFloat32ToSNorm16(0.0f)); }
+
+template<typename V>	V					convertIndexTo						(deUint32 index)			{ DE_UNREF(index); TCU_THROW(TestError, "Unknown index format"); }
+template<>				inline EmptyIndex	convertIndexTo<EmptyIndex>			(deUint32 index)			{ DE_UNREF(index); TCU_THROW(TestError, "Cannot add empty index"); }
+template<>				inline deUint16		convertIndexTo<deUint16>			(deUint32 index)			{ return static_cast<deUint16>(index); }
+template<>				inline deUint32		convertIndexTo<deUint32>			(deUint32 index)			{ return index; }
+
+template<typename V, typename I>
+class RaytracedGeometry : public RaytracedGeometryBase
+{
+public:
+						RaytracedGeometry			()									= delete;
+						RaytracedGeometry			(const RaytracedGeometry& geometry)	= delete;
+						RaytracedGeometry			(VkGeometryTypeKHR geometryType);
+						RaytracedGeometry			(VkGeometryTypeKHR geometryType, const std::vector<V>& vertices, const std::vector<I>& indices = std::vector<I>());
+
+	deUint32			getVertexCount				(void) const override;
+	const deUint8*		getVertexPointer			(void) const override;
+	VkDeviceSize		getVertexStride				(void) const override;
+	size_t				getVertexByteSize			(void) const override;
+	VkDeviceSize		getAABBStride				(void) const override;
+	deUint32			getIndexCount				(void) const override;
+	const deUint8*		getIndexPointer				(void) const override;
+	VkDeviceSize		getIndexStride				(void) const override;
+	size_t				getIndexByteSize			(void) const override;
+	deUint32			getPrimitiveCount			(void) const override;
+
+	void				addVertex					(const tcu::Vec3& vertex) override;
+	void				addIndex					(const deUint32& index) override;
+private:
+	std::vector<V>		m_vertices;
+	std::vector<I>		m_indices;
+};
+
+template<typename V, typename I>
+RaytracedGeometry<V, I>::RaytracedGeometry (VkGeometryTypeKHR geometryType)
+	: RaytracedGeometryBase(geometryType, vertexFormatFromType<V>(), indexTypeFromType<I>())
+{
+}
+
+template<typename V, typename I>
+RaytracedGeometry<V,I>::RaytracedGeometry (VkGeometryTypeKHR geometryType, const std::vector<V>& vertices, const std::vector<I>& indices)
+	: RaytracedGeometryBase(geometryType, vertexFormatFromType<V>(), indexTypeFromType<I>())
+	, m_vertices(vertices)
+	, m_indices(indices)
+{
+}
+
+template<typename V, typename I>
+deUint32 RaytracedGeometry<V,I>::getVertexCount (void) const
+{
+	return static_cast<deUint32>( isTrianglesType() ? m_vertices.size() : 0);
+}
+
+template<typename V, typename I>
+const deUint8* RaytracedGeometry<V, I>::getVertexPointer (void) const
+{
+	return reinterpret_cast<const deUint8*>(m_vertices.empty() ? DE_NULL : m_vertices.data());
+}
+
+template<typename V, typename I>
+VkDeviceSize RaytracedGeometry<V,I>::getVertexStride (void) const
+{
+	return static_cast<VkDeviceSize>(sizeof(V));
+}
+
+template<typename V, typename I>
+VkDeviceSize RaytracedGeometry<V, I>::getAABBStride (void) const
+{
+	return static_cast<VkDeviceSize>(2 * sizeof(V));
+}
+
+template<typename V, typename I>
+size_t RaytracedGeometry<V, I>::getVertexByteSize (void) const
+{
+	return static_cast<size_t>(m_vertices.size() * sizeof(V));
+}
+
+template<typename V, typename I>
+deUint32 RaytracedGeometry<V, I>::getIndexCount (void) const
+{
+	return static_cast<deUint32>(isTrianglesType() ? m_indices.size() : 0);
+}
+
+template<typename V, typename I>
+const deUint8* RaytracedGeometry<V, I>::getIndexPointer (void) const
+{
+	return reinterpret_cast<const deUint8*>(m_indices.empty() ? DE_NULL : m_indices.data());
+}
+
+template<typename V, typename I>
+VkDeviceSize RaytracedGeometry<V, I>::getIndexStride (void) const
+{
+	return static_cast<VkDeviceSize>(sizeof(I));
+}
+
+template<typename V, typename I>
+size_t RaytracedGeometry<V, I>::getIndexByteSize (void) const
+{
+	return static_cast<size_t>(m_indices.size() * sizeof(I));
+}
+
+template<typename V, typename I>
+deUint32 RaytracedGeometry<V,I>::getPrimitiveCount (void) const
+{
+	return static_cast<deUint32>(isTrianglesType() ? (usesIndices() ? m_indices.size() / 3 : m_vertices.size() / 3) : (m_vertices.size() / 2));
+}
+
+template<typename V, typename I>
+void RaytracedGeometry<V, I>::addVertex (const tcu::Vec3& vertex)
+{
+	m_vertices.push_back(convertFloatTo<V>(vertex));
+}
+
+template<typename V, typename I>
+void RaytracedGeometry<V, I>::addIndex (const deUint32& index)
+{
+	m_indices.push_back(convertIndexTo<I>(index));
+}
+
+de::SharedPtr<RaytracedGeometryBase> makeRaytracedGeometry (VkGeometryTypeKHR geometryType, VkFormat vertexFormat, VkIndexType indexType);
+
+class SerialStorage
+{
+public:
+											SerialStorage		() = delete;
+											SerialStorage		(const DeviceInterface&						vk,
+																 const VkDevice								device,
+																 Allocator&									allocator,
+																 const VkAccelerationStructureBuildTypeKHR	buildType,
+																 const VkDeviceSize							storageSize);
+
+	VkDeviceOrHostAddressKHR				getAddress			(const DeviceInterface&	vk,
+																 const VkDevice			device);
+	VkDeviceOrHostAddressConstKHR			getAddressConst		(const DeviceInterface&	vk,
+																 const VkDevice			device);
+protected:
+	VkAccelerationStructureBuildTypeKHR		m_buildType;
+	de::MovePtr<BufferWithMemory>			m_buffer;
+
+};
+
+class BottomLevelAccelerationStructure
+{
+public:
+	static deUint32										getRequiredAllocationCount				(void);
+
+														BottomLevelAccelerationStructure		();
+														BottomLevelAccelerationStructure		(const BottomLevelAccelerationStructure&	other) = delete;
+	virtual												~BottomLevelAccelerationStructure		();
+
+	virtual void										setGeometryData							(const std::vector<tcu::Vec3>&				geometryData,
+																								 const bool									triangles,
+																								 const VkGeometryFlagsKHR					geometryFlags = 0);
+	virtual void										setDefaultGeometryData					(const VkShaderStageFlagBits				testStage);
+	virtual void										setGeometryCount						(const size_t								geometryCount);
+	virtual void										addGeometry								(de::SharedPtr<RaytracedGeometryBase>&		raytracedGeometry);
+	virtual void										addGeometry								(const std::vector<tcu::Vec3>&				geometryData,
+																								 const bool									triangles,
+																								 const VkGeometryFlagsKHR					geometryFlags = 0);
+
+	virtual void										setBuildType							(const VkAccelerationStructureBuildTypeKHR	buildType) = DE_NULL;
+	virtual void										setBuildFlags							(const VkBuildAccelerationStructureFlagsKHR	flags) = DE_NULL;
+	virtual void										setDeferredOperation					(const bool									deferredOperation) = DE_NULL;
+	virtual void										setUseArrayOfPointers					(const bool									useArrayOfPointers) = DE_NULL;
+	virtual void										setIndirectBuildParameters				(const VkBuffer								indirectBuffer,
+																								 const VkDeviceSize							indirectBufferOffset,
+																								 const deUint32								indirectBufferStride) = DE_NULL;
+	virtual VkBuildAccelerationStructureFlagsKHR		getBuildFlags							() const = DE_NULL;
+
+	// methods specific for each acceleration structure
+	virtual void										create									(const DeviceInterface&						vk,
+																								 const VkDevice								device,
+																								 Allocator&									allocator,
+																								 VkDeviceAddress							deviceAddress,
+																								 VkDeviceSize								compactCopySize) = DE_NULL;
+	virtual void										build									(const DeviceInterface&						vk,
+																								 const VkDevice								device,
+																								 const VkCommandBuffer						cmdBuffer) = DE_NULL;
+	virtual void										copyFrom								(const DeviceInterface&						vk,
+																								 const VkDevice								device,
+																								 const VkCommandBuffer						cmdBuffer,
+																								 BottomLevelAccelerationStructure*			accelerationStructure,
+																								 VkDeviceSize								compactCopySize) = DE_NULL;
+
+	virtual void										serialize								(const DeviceInterface&						vk,
+																								 const VkDevice								device,
+																								 const VkCommandBuffer						cmdBuffer,
+																								 SerialStorage*								storage) = DE_NULL;
+	virtual void										deserialize								(const DeviceInterface&						vk,
+																								 const VkDevice								device,
+																								 const VkCommandBuffer						cmdBuffer,
+																								 SerialStorage*								storage) = DE_NULL;
+
+	// helper methods for typical acceleration structure creation tasks
+	void												createAndBuild							(const DeviceInterface&						vk,
+																								 const VkDevice								device,
+																								 const VkCommandBuffer						cmdBuffer,
+																								 Allocator&									allocator,
+																								 VkDeviceAddress							deviceAddress			= 0u );
+	void												createAndCopyFrom						(const DeviceInterface&						vk,
+																								 const VkDevice								device,
+																								 const VkCommandBuffer						cmdBuffer,
+																								 Allocator&									allocator,
+																								 VkDeviceAddress							deviceAddress			= 0u,
+																								 BottomLevelAccelerationStructure*			accelerationStructure	= DE_NULL,
+																								 VkDeviceSize								compactCopySize			= 0u);
+	void												createAndDeserializeFrom				(const DeviceInterface&						vk,
+																								 const VkDevice								device,
+																								 const VkCommandBuffer						cmdBuffer,
+																								 Allocator&									allocator,
+																								 VkDeviceAddress							deviceAddress			= 0u,
+																								 SerialStorage*								storage					= DE_NULL);
+
+	virtual const VkAccelerationStructureKHR*			getPtr									(void) const = DE_NULL;
+protected:
+	std::vector<de::SharedPtr<RaytracedGeometryBase>>	m_geometriesData;
+};
+
+de::MovePtr<BottomLevelAccelerationStructure> makeBottomLevelAccelerationStructure ();
+
+struct InstanceData
+{
+								InstanceData (VkTransformMatrixKHR							matrix_,
+											  deUint32										instanceCustomIndex_,
+											  deUint32										mask_,
+											  deUint32										instanceShaderBindingTableRecordOffset_,
+											  VkGeometryInstanceFlagsKHR					flags_)
+									: matrix(matrix_), instanceCustomIndex(instanceCustomIndex_), mask(mask_), instanceShaderBindingTableRecordOffset(instanceShaderBindingTableRecordOffset_), flags(flags_)
+								{
+								}
+	VkTransformMatrixKHR		matrix;
+	deUint32					instanceCustomIndex;
+	deUint32					mask;
+	deUint32					instanceShaderBindingTableRecordOffset;
+	VkGeometryInstanceFlagsKHR	flags;
+};
+
+class TopLevelAccelerationStructure
+{
+public:
+	static deUint32													getRequiredAllocationCount			(void);
+
+																	TopLevelAccelerationStructure		();
+																	TopLevelAccelerationStructure		(const TopLevelAccelerationStructure&				other) = delete;
+	virtual															~TopLevelAccelerationStructure		();
+
+	virtual void													setInstanceCount					(const size_t										instanceCount);
+	virtual void													addInstance							(de::SharedPtr<BottomLevelAccelerationStructure>	bottomLevelStructure,
+																										 const VkTransformMatrixKHR&						matrix									= identityMatrix3x4,
+																										 deUint32											instanceCustomIndex						= 0,
+																										 deUint32											mask									= 0xFF,
+																										 deUint32											instanceShaderBindingTableRecordOffset	= 0,
+																										 VkGeometryInstanceFlagsKHR							flags									= VkGeometryInstanceFlagBitsKHR(0u)	);
+
+	virtual void													setBuildType						(const VkAccelerationStructureBuildTypeKHR			buildType) = DE_NULL;
+	virtual void													setBuildFlags						(const VkBuildAccelerationStructureFlagsKHR			flags) = DE_NULL;
+	virtual void													setDeferredOperation				(const bool											deferredOperation) = DE_NULL;
+	virtual void													setUseArrayOfPointers				(const bool											useArrayOfPointers) = DE_NULL;
+	virtual void													setIndirectBuildParameters			(const VkBuffer										indirectBuffer,
+																										 const VkDeviceSize									indirectBufferOffset,
+																										 const deUint32										indirectBufferStride) = DE_NULL;
+	virtual VkBuildAccelerationStructureFlagsKHR					getBuildFlags						() const = DE_NULL;
+
+	// methods specific for each acceleration structure
+	virtual void													create								(const DeviceInterface&						vk,
+																										 const VkDevice								device,
+																										 Allocator&									allocator,
+																										 VkDeviceAddress							deviceAddress,
+																										 VkDeviceSize								compactCopySize) = DE_NULL;
+	virtual void													build								(const DeviceInterface&						vk,
+																										 const VkDevice								device,
+																										 const VkCommandBuffer						cmdBuffer) = DE_NULL;
+	virtual void													copyFrom							(const DeviceInterface&						vk,
+																										 const VkDevice								device,
+																										 const VkCommandBuffer						cmdBuffer,
+																										 TopLevelAccelerationStructure*				accelerationStructure,
+																										 VkDeviceSize								compactCopySize) = DE_NULL;
+
+	virtual void													serialize							(const DeviceInterface&						vk,
+																										 const VkDevice								device,
+																										 const VkCommandBuffer						cmdBuffer,
+																										 SerialStorage*								storage) = DE_NULL;
+	virtual void													deserialize							(const DeviceInterface&						vk,
+																										 const VkDevice								device,
+																										 const VkCommandBuffer						cmdBuffer,
+																										 SerialStorage*								storage) = DE_NULL;
+
+	// helper methods for typical acceleration structure creation tasks
+	void															createAndBuild						(const DeviceInterface&						vk,
+																										 const VkDevice								device,
+																										 const VkCommandBuffer						cmdBuffer,
+																										 Allocator&									allocator,
+																										 VkDeviceAddress							deviceAddress			= 0u );
+	void															createAndCopyFrom					(const DeviceInterface&						vk,
+																										 const VkDevice								device,
+																										 const VkCommandBuffer						cmdBuffer,
+																										 Allocator&									allocator,
+																										 VkDeviceAddress							deviceAddress			= 0u,
+																										 TopLevelAccelerationStructure*				accelerationStructure	= DE_NULL,
+																										 VkDeviceSize								compactCopySize			= 0u);
+	void															createAndDeserializeFrom			(const DeviceInterface&						vk,
+																										 const VkDevice								device,
+																										 const VkCommandBuffer						cmdBuffer,
+																										 Allocator&									allocator,
+																										 VkDeviceAddress							deviceAddress			= 0u,
+																										 SerialStorage*								storage					= DE_NULL);
+
+	virtual const VkAccelerationStructureKHR*						getPtr								(void) const = DE_NULL;
+
+protected:
+	std::vector<de::SharedPtr<BottomLevelAccelerationStructure> >	m_bottomLevelInstances;
+	std::vector<InstanceData>										m_instanceData;
+};
+
+de::MovePtr<TopLevelAccelerationStructure> makeTopLevelAccelerationStructure ();
+
+bool queryAccelerationStructureSize (const DeviceInterface&							vk,
+									 const VkDevice									device,
+									 const VkCommandBuffer							cmdBuffer,
+									 const std::vector<VkAccelerationStructureKHR>&	accelerationStructureHandles,
+									 VkAccelerationStructureBuildTypeKHR			buildType,
+									 const VkQueryPool								queryPool,
+									 VkQueryType									queryType,
+									 deUint32										firstQuery,
+									 std::vector<VkDeviceSize>&						results);
+
+class RayTracingPipeline
+{
+public:
+																RayTracingPipeline			();
+																~RayTracingPipeline			();
+
+	void														addShader					(VkShaderStageFlagBits									shaderStage,
+																							 Move<VkShaderModule>									shaderModule,
+																							 deUint32												group);
+	void														addLibrary					(de::SharedPtr<de::MovePtr<RayTracingPipeline>>			pipelineLibrary);
+	Move<VkPipeline>											createPipeline				(const DeviceInterface&									vk,
+																							 const VkDevice											device,
+																							 const VkPipelineLayout									pipelineLayout,
+																							 const std::vector<de::SharedPtr<Move<VkPipeline>>>&	pipelineLibraries			= std::vector<de::SharedPtr<Move<VkPipeline>>>());
+	std::vector<de::SharedPtr<Move<VkPipeline>>>				createPipelineWithLibraries	(const DeviceInterface&									vk,
+																							 const VkDevice											device,
+																							 const VkPipelineLayout									pipelineLayout);
+	de::MovePtr<BufferWithMemory>								createShaderBindingTable	(const DeviceInterface&									vk,
+																							 const VkDevice											device,
+																							 const VkPipeline										pipeline,
+																							 Allocator&												allocator,
+																							 const deUint32&										shaderGroupHandleSize,
+																							 const deUint32											shaderGroupBaseAlignment,
+																							 const deUint32&										firstGroup,
+																							 const deUint32&										groupCount,
+																							 const VkBufferCreateFlags&								additionalBufferCreateFlags	= VkBufferCreateFlags(0u),
+																							 const VkBufferUsageFlags&								additionalBufferUsageFlags	= VkBufferUsageFlags(0u),
+																							 const MemoryRequirement&								additionalMemoryRequirement	= MemoryRequirement::Any,
+																							 const VkDeviceAddress&									opaqueCaptureAddress		= 0u,
+																							 const deUint32											shaderBindingTableOffset	= 0u,
+																							 const deUint32											shaderRecordSize			= 0u);
+	void														setCreateFlags				(const VkPipelineCreateFlags&							pipelineCreateFlags);
+	void														setMaxRecursionDepth		(const deUint32&										maxRecursionDepth);
+	void														setMaxPayloadSize			(const deUint32&										maxPayloadSize);
+	void														setMaxAttributeSize			(const deUint32&										maxAttributeSize);
+	void														setMaxCallableSize			(const deUint32&										maxCallableSize);
+	void														setDeferredOperation		(const bool												deferredOperation);
+
+protected:
+	Move<VkPipeline>											createPipelineKHR			(const DeviceInterface&									vk,
+																							 const VkDevice											device,
+																							 const VkPipelineLayout									pipelineLayout,
+																							 const std::vector<de::SharedPtr<Move<VkPipeline>>>&	pipelineLibraries);
+
+	std::vector<de::SharedPtr<Move<VkShaderModule> > >			m_shadersModules;
+	std::vector<de::SharedPtr<de::MovePtr<RayTracingPipeline>>>	m_pipelineLibraries;
+	std::vector<VkPipelineShaderStageCreateInfo>				m_shaderCreateInfos;
+	std::vector<VkRayTracingShaderGroupCreateInfoKHR>			m_shadersGroupCreateInfos;
+	VkPipelineCreateFlags										m_pipelineCreateFlags;
+	deUint32													m_maxRecursionDepth;
+	deUint32													m_maxPayloadSize;
+	deUint32													m_maxAttributeSize;
+	deUint32													m_maxCallableSize;
+	bool														m_deferredOperation;
+};
+
+class RayTracingProperties
+{
+protected:
+									RayTracingProperties						() {};
+
+public:
+									RayTracingProperties						(const InstanceInterface&	vki,
+																				 const VkPhysicalDevice		physicalDevice) { DE_UNREF(vki); DE_UNREF(physicalDevice); };
+	virtual							~RayTracingProperties						() {};
+
+	virtual deUint32				getShaderGroupHandleSize					(void)	= DE_NULL;
+	virtual deUint32				getMaxRecursionDepth						(void)	= DE_NULL;
+	virtual deUint32				getMaxShaderGroupStride						(void)	= DE_NULL;
+	virtual deUint32				getShaderGroupBaseAlignment					(void)	= DE_NULL;
+	virtual deUint64				getMaxGeometryCount							(void)	= DE_NULL;
+	virtual deUint64				getMaxInstanceCount							(void)	= DE_NULL;
+	virtual deUint64				getMaxPrimitiveCount						(void)	= DE_NULL;
+	virtual deUint32				getMaxDescriptorSetAccelerationStructures	(void)	= DE_NULL;
+};
+
+de::MovePtr<RayTracingProperties> makeRayTracingProperties (const InstanceInterface&	vki,
+															const VkPhysicalDevice		physicalDevice);
+
+void cmdTraceRays	(const DeviceInterface&				vk,
+					 VkCommandBuffer					commandBuffer,
+					 const VkStridedBufferRegionKHR*	raygenShaderBindingTableRegion,
+					 const VkStridedBufferRegionKHR*	missShaderBindingTableRegion,
+					 const VkStridedBufferRegionKHR*	hitShaderBindingTableRegion,
+					 const VkStridedBufferRegionKHR*	callableShaderBindingTableRegion,
+					 deUint32							width,
+					 deUint32							height,
+					 deUint32							depth);
+
+void cmdTraceRaysIndirect	(const DeviceInterface&				vk,
+							 VkCommandBuffer					commandBuffer,
+							 const VkStridedBufferRegionKHR*	raygenShaderBindingTableRegion,
+							 const VkStridedBufferRegionKHR*	missShaderBindingTableRegion,
+							 const VkStridedBufferRegionKHR*	hitShaderBindingTableRegion,
+							 const VkStridedBufferRegionKHR*	callableShaderBindingTableRegion,
+							 VkBuffer							buffer,
+							 VkDeviceSize						offset);
+} // vk
+
+#endif // _VKRAYTRACINGUTIL_HPP
diff --git a/external/vulkancts/framework/vulkan/vkRefUtil.cpp b/external/vulkancts/framework/vulkan/vkRefUtil.cpp
index dbe70d5..6551cbb 100644
--- a/external/vulkancts/framework/vulkan/vkRefUtil.cpp
+++ b/external/vulkancts/framework/vulkan/vkRefUtil.cpp
@@ -50,17 +50,28 @@
 	return Move<VkPipeline>(check<VkPipeline>(object), Deleter<VkPipeline>(vk, device, pAllocator));
 }
 
-Move<VkPipeline> createRayTracingPipelineNV (const DeviceInterface&				vk,
-										VkDevice							device,
-										VkPipelineCache						pipelineCache,
-										const VkRayTracingPipelineCreateInfoNV*	pCreateInfo,
-										const VkAllocationCallbacks*		pAllocator)
+Move<VkPipeline> createRayTracingPipelineNV (const DeviceInterface&						vk,
+											 VkDevice									device,
+											 VkPipelineCache							pipelineCache,
+											 const VkRayTracingPipelineCreateInfoNV*	pCreateInfo,
+											 const VkAllocationCallbacks*				pAllocator)
 {
 	VkPipeline object = 0;
 	VK_CHECK(vk.createRayTracingPipelinesNV(device, pipelineCache, 1u, pCreateInfo, pAllocator, &object));
 	return Move<VkPipeline>(check<VkPipeline>(object), Deleter<VkPipeline>(vk, device, pAllocator));
 }
 
+Move<VkPipeline> createRayTracingPipelineKHR (const DeviceInterface&					vk,
+											  VkDevice									device,
+											  VkPipelineCache							pipelineCache,
+											  const VkRayTracingPipelineCreateInfoKHR*	pCreateInfo,
+											  const VkAllocationCallbacks*				pAllocator)
+{
+	VkPipeline object = 0;
+	VK_CHECK(vk.createRayTracingPipelinesKHR(device, pipelineCache, 1u, pCreateInfo, pAllocator, &object));
+	return Move<VkPipeline>(check<VkPipeline>(object), Deleter<VkPipeline>(vk, device, pAllocator));
+}
+
 Move<VkCommandBuffer> allocateCommandBuffer (const DeviceInterface& vk, VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo)
 {
 	VkCommandBuffer object = 0;
diff --git a/external/vulkancts/framework/vulkan/vkRefUtil.hpp b/external/vulkancts/framework/vulkan/vkRefUtil.hpp
index a966b20..7032842 100644
--- a/external/vulkancts/framework/vulkan/vkRefUtil.hpp
+++ b/external/vulkancts/framework/vulkan/vkRefUtil.hpp
@@ -46,6 +46,11 @@
 												 VkPipelineCache						pipelineCache,
 												 const VkRayTracingPipelineCreateInfoNV*	pCreateInfo,
 												 const VkAllocationCallbacks*			pAllocator = DE_NULL);
+Move<VkPipeline>		createRayTracingPipelineKHR	(const DeviceInterface&					vk,
+												 VkDevice									device,
+												 VkPipelineCache							pipelineCache,
+												 const VkRayTracingPipelineCreateInfoKHR*	pCreateInfo,
+												 const VkAllocationCallbacks*				pAllocator = DE_NULL);
 Move<VkCommandBuffer>	allocateCommandBuffer	(const DeviceInterface& vk, VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo);
 Move<VkDescriptorSet>	allocateDescriptorSet	(const DeviceInterface& vk, VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo);
 
diff --git a/external/vulkancts/framework/vulkan/vkRefUtil.inl b/external/vulkancts/framework/vulkan/vkRefUtil.inl
index 921adc7..fd5260d 100644
--- a/external/vulkancts/framework/vulkan/vkRefUtil.inl
+++ b/external/vulkancts/framework/vulkan/vkRefUtil.inl
@@ -28,13 +28,15 @@
 Move<VkSurfaceKHR>					createDisplayPlaneSurfaceKHR		(const InstanceInterface& vk, VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
 Move<VkSwapchainKHR>				createSharedSwapchainsKHR			(const DeviceInterface& vk, VkDevice device, deUint32 swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator = DE_NULL);
 Move<VkDebugReportCallbackEXT>		createDebugReportCallbackEXT		(const InstanceInterface& vk, VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkIndirectCommandsLayoutNVX>	createIndirectCommandsLayoutNVX		(const DeviceInterface& vk, VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
-Move<VkObjectTableNVX>				createObjectTableNVX				(const DeviceInterface& vk, VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
 Move<VkDebugUtilsMessengerEXT>		createDebugUtilsMessengerEXT		(const InstanceInterface& vk, VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
 Move<VkValidationCacheEXT>			createValidationCacheEXT			(const DeviceInterface& vk, VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
 Move<VkAccelerationStructureNV>		createAccelerationStructureNV		(const DeviceInterface& vk, VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
 Move<VkSurfaceKHR>					createHeadlessSurfaceEXT			(const InstanceInterface& vk, VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkIndirectCommandsLayoutNV>	createIndirectCommandsLayoutNV		(const DeviceInterface& vk, VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkPrivateDataSlotEXT>			createPrivateDataSlotEXT			(const DeviceInterface& vk, VkDevice device, const VkPrivateDataSlotCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
 Move<VkSurfaceKHR>					createAndroidSurfaceKHR				(const InstanceInterface& vk, VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkDeferredOperationKHR>		createDeferredOperationKHR			(const DeviceInterface& vk, VkDevice device, const VkAllocationCallbacks* pAllocator = DE_NULL);
+Move<VkAccelerationStructureKHR>	createAccelerationStructureKHR		(const DeviceInterface& vk, VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
 Move<VkSurfaceKHR>					createImagePipeSurfaceFUCHSIA		(const InstanceInterface& vk, VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
 Move<VkSurfaceKHR>					createStreamDescriptorSurfaceGGP	(const InstanceInterface& vk, VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
 Move<VkSurfaceKHR>					createIOSSurfaceMVK					(const InstanceInterface& vk, VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator = DE_NULL);
diff --git a/external/vulkancts/framework/vulkan/vkRefUtilImpl.inl b/external/vulkancts/framework/vulkan/vkRefUtilImpl.inl
index 6eb0c48..950089d 100644
--- a/external/vulkancts/framework/vulkan/vkRefUtilImpl.inl
+++ b/external/vulkancts/framework/vulkan/vkRefUtilImpl.inl
@@ -137,29 +137,41 @@
 }
 
 template<>
-void Deleter<VkIndirectCommandsLayoutNVX>::operator() (VkIndirectCommandsLayoutNVX obj) const
-{
-	m_deviceIface->destroyIndirectCommandsLayoutNVX(m_device, obj, m_allocator);
-}
-
-template<>
-void Deleter<VkObjectTableNVX>::operator() (VkObjectTableNVX obj) const
-{
-	m_deviceIface->destroyObjectTableNVX(m_device, obj, m_allocator);
-}
-
-template<>
 void Deleter<VkValidationCacheEXT>::operator() (VkValidationCacheEXT obj) const
 {
 	m_deviceIface->destroyValidationCacheEXT(m_device, obj, m_allocator);
 }
 
 template<>
+void Deleter<VkAccelerationStructureKHR>::operator() (VkAccelerationStructureKHR obj) const
+{
+	m_deviceIface->destroyAccelerationStructureKHR(m_device, obj, m_allocator);
+}
+
+template<>
 void Deleter<VkAccelerationStructureNV>::operator() (VkAccelerationStructureNV obj) const
 {
 	m_deviceIface->destroyAccelerationStructureNV(m_device, obj, m_allocator);
 }
 
+template<>
+void Deleter<VkIndirectCommandsLayoutNV>::operator() (VkIndirectCommandsLayoutNV obj) const
+{
+	m_deviceIface->destroyIndirectCommandsLayoutNV(m_device, obj, m_allocator);
+}
+
+template<>
+void Deleter<VkPrivateDataSlotEXT>::operator() (VkPrivateDataSlotEXT obj) const
+{
+	m_deviceIface->destroyPrivateDataSlotEXT(m_device, obj, m_allocator);
+}
+
+template<>
+void Deleter<VkDeferredOperationKHR>::operator() (VkDeferredOperationKHR obj) const
+{
+	m_deviceIface->destroyDeferredOperationKHR(m_device, obj, m_allocator);
+}
+
 } // refdetails
 
 Move<VkInstance> createInstance (const PlatformInterface& vk, const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator)
@@ -351,20 +363,6 @@
 	return Move<VkDebugReportCallbackEXT>(check<VkDebugReportCallbackEXT>(object), Deleter<VkDebugReportCallbackEXT>(vk, instance, pAllocator));
 }
 
-Move<VkIndirectCommandsLayoutNVX> createIndirectCommandsLayoutNVX (const DeviceInterface& vk, VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator)
-{
-	VkIndirectCommandsLayoutNVX object = 0;
-	VK_CHECK(vk.createIndirectCommandsLayoutNVX(device, pCreateInfo, pAllocator, &object));
-	return Move<VkIndirectCommandsLayoutNVX>(check<VkIndirectCommandsLayoutNVX>(object), Deleter<VkIndirectCommandsLayoutNVX>(vk, device, pAllocator));
-}
-
-Move<VkObjectTableNVX> createObjectTableNVX (const DeviceInterface& vk, VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator)
-{
-	VkObjectTableNVX object = 0;
-	VK_CHECK(vk.createObjectTableNVX(device, pCreateInfo, pAllocator, &object));
-	return Move<VkObjectTableNVX>(check<VkObjectTableNVX>(object), Deleter<VkObjectTableNVX>(vk, device, pAllocator));
-}
-
 Move<VkDebugUtilsMessengerEXT> createDebugUtilsMessengerEXT (const InstanceInterface& vk, VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator)
 {
 	VkDebugUtilsMessengerEXT object = 0;
@@ -393,6 +391,20 @@
 	return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator));
 }
 
+Move<VkIndirectCommandsLayoutNV> createIndirectCommandsLayoutNV (const DeviceInterface& vk, VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+{
+	VkIndirectCommandsLayoutNV object = 0;
+	VK_CHECK(vk.createIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, &object));
+	return Move<VkIndirectCommandsLayoutNV>(check<VkIndirectCommandsLayoutNV>(object), Deleter<VkIndirectCommandsLayoutNV>(vk, device, pAllocator));
+}
+
+Move<VkPrivateDataSlotEXT> createPrivateDataSlotEXT (const DeviceInterface& vk, VkDevice device, const VkPrivateDataSlotCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+{
+	VkPrivateDataSlotEXT object = 0;
+	VK_CHECK(vk.createPrivateDataSlotEXT(device, pCreateInfo, pAllocator, &object));
+	return Move<VkPrivateDataSlotEXT>(check<VkPrivateDataSlotEXT>(object), Deleter<VkPrivateDataSlotEXT>(vk, device, pAllocator));
+}
+
 Move<VkSurfaceKHR> createAndroidSurfaceKHR (const InstanceInterface& vk, VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator)
 {
 	VkSurfaceKHR object = 0;
@@ -400,6 +412,20 @@
 	return Move<VkSurfaceKHR>(check<VkSurfaceKHR>(object), Deleter<VkSurfaceKHR>(vk, instance, pAllocator));
 }
 
+Move<VkDeferredOperationKHR> createDeferredOperationKHR (const DeviceInterface& vk, VkDevice device, const VkAllocationCallbacks* pAllocator)
+{
+	VkDeferredOperationKHR object = 0;
+	VK_CHECK(vk.createDeferredOperationKHR(device, pAllocator, &object));
+	return Move<VkDeferredOperationKHR>(check<VkDeferredOperationKHR>(object), Deleter<VkDeferredOperationKHR>(vk, device, pAllocator));
+}
+
+Move<VkAccelerationStructureKHR> createAccelerationStructureKHR (const DeviceInterface& vk, VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator)
+{
+	VkAccelerationStructureKHR object = 0;
+	VK_CHECK(vk.createAccelerationStructureKHR(device, pCreateInfo, pAllocator, &object));
+	return Move<VkAccelerationStructureKHR>(check<VkAccelerationStructureKHR>(object), Deleter<VkAccelerationStructureKHR>(vk, device, pAllocator));
+}
+
 Move<VkSurfaceKHR> createImagePipeSurfaceFUCHSIA (const InstanceInterface& vk, VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator)
 {
 	VkSurfaceKHR object = 0;
diff --git a/external/vulkancts/framework/vulkan/vkShaderToSpirV.cpp b/external/vulkancts/framework/vulkan/vkShaderToSpirV.cpp
index f82a9fa..469c2f9 100644
--- a/external/vulkancts/framework/vulkan/vkShaderToSpirV.cpp
+++ b/external/vulkancts/framework/vulkan/vkShaderToSpirV.cpp
@@ -56,12 +56,12 @@
 		EShLangTessControl,
 		EShLangTessEvaluation,
 		EShLangCompute,
-		EShLangRayGenNV,
-		EShLangAnyHitNV,
-		EShLangClosestHitNV,
-		EShLangMissNV,
-		EShLangIntersectNV,
-		EShLangCallableNV,
+		EShLangRayGen,
+		EShLangAnyHit,
+		EShLangClosestHit,
+		EShLangMiss,
+		EShLangIntersect,
+		EShLangCallable,
 	};
 	return de::getSizedArrayElement<glu::SHADERTYPE_LAST>(stageMap, type);
 }
diff --git a/external/vulkancts/framework/vulkan/vkStrUtil.inl b/external/vulkancts/framework/vulkan/vkStrUtil.inl
index 295a019..f18f45f 100644
--- a/external/vulkancts/framework/vulkan/vkStrUtil.inl
+++ b/external/vulkancts/framework/vulkan/vkStrUtil.inl
@@ -1,34 +1,36 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  */
-const char*	getPipelineCacheHeaderVersionName						(VkPipelineCacheHeaderVersion value);
 const char*	getResultName											(VkResult value);
 const char*	getStructureTypeName									(VkStructureType value);
+const char*	getImageLayoutName										(VkImageLayout value);
+const char*	getObjectTypeName										(VkObjectType value);
+const char*	getVendorIdName											(VkVendorId value);
+const char*	getPipelineCacheHeaderVersionName						(VkPipelineCacheHeaderVersion value);
 const char*	getSystemAllocationScopeName							(VkSystemAllocationScope value);
 const char*	getInternalAllocationTypeName							(VkInternalAllocationType value);
 const char*	getFormatName											(VkFormat value);
-const char*	getImageTypeName										(VkImageType value);
 const char*	getImageTilingName										(VkImageTiling value);
+const char*	getImageTypeName										(VkImageType value);
 const char*	getPhysicalDeviceTypeName								(VkPhysicalDeviceType value);
 const char*	getQueryTypeName										(VkQueryType value);
 const char*	getSharingModeName										(VkSharingMode value);
-const char*	getImageLayoutName										(VkImageLayout value);
-const char*	getImageViewTypeName									(VkImageViewType value);
 const char*	getComponentSwizzleName									(VkComponentSwizzle value);
+const char*	getImageViewTypeName									(VkImageViewType value);
+const char*	getBlendFactorName										(VkBlendFactor value);
+const char*	getBlendOpName											(VkBlendOp value);
+const char*	getCompareOpName										(VkCompareOp value);
+const char*	getDynamicStateName										(VkDynamicState value);
+const char*	getFrontFaceName										(VkFrontFace value);
 const char*	getVertexInputRateName									(VkVertexInputRate value);
 const char*	getPrimitiveTopologyName								(VkPrimitiveTopology value);
 const char*	getPolygonModeName										(VkPolygonMode value);
-const char*	getFrontFaceName										(VkFrontFace value);
-const char*	getCompareOpName										(VkCompareOp value);
 const char*	getStencilOpName										(VkStencilOp value);
 const char*	getLogicOpName											(VkLogicOp value);
-const char*	getBlendFactorName										(VkBlendFactor value);
-const char*	getBlendOpName											(VkBlendOp value);
-const char*	getDynamicStateName										(VkDynamicState value);
-const char*	getFilterName											(VkFilter value);
-const char*	getSamplerMipmapModeName								(VkSamplerMipmapMode value);
-const char*	getSamplerAddressModeName								(VkSamplerAddressMode value);
 const char*	getBorderColorName										(VkBorderColor value);
+const char*	getFilterName											(VkFilter value);
+const char*	getSamplerAddressModeName								(VkSamplerAddressMode value);
+const char*	getSamplerMipmapModeName								(VkSamplerMipmapMode value);
 const char*	getDescriptorTypeName									(VkDescriptorType value);
 const char*	getAttachmentLoadOpName									(VkAttachmentLoadOp value);
 const char*	getAttachmentStoreOpName								(VkAttachmentStoreOp value);
@@ -36,8 +38,6 @@
 const char*	getCommandBufferLevelName								(VkCommandBufferLevel value);
 const char*	getIndexTypeName										(VkIndexType value);
 const char*	getSubpassContentsName									(VkSubpassContents value);
-const char*	getObjectTypeName										(VkObjectType value);
-const char*	getVendorIdName											(VkVendorId value);
 const char*	getPointClippingBehaviorName							(VkPointClippingBehavior value);
 const char*	getTessellationDomainOriginName							(VkTessellationDomainOrigin value);
 const char*	getSamplerYcbcrModelConversionName						(VkSamplerYcbcrModelConversion value);
@@ -48,8 +48,8 @@
 const char*	getShaderFloatControlsIndependenceName					(VkShaderFloatControlsIndependence value);
 const char*	getSamplerReductionModeName								(VkSamplerReductionMode value);
 const char*	getSemaphoreTypeName									(VkSemaphoreType value);
-const char*	getColorSpaceKHRName									(VkColorSpaceKHR value);
 const char*	getPresentModeKHRName									(VkPresentModeKHR value);
+const char*	getColorSpaceKHRName									(VkColorSpaceKHR value);
 const char*	getPerformanceCounterUnitKHRName						(VkPerformanceCounterUnitKHR value);
 const char*	getPerformanceCounterScopeKHRName						(VkPerformanceCounterScopeKHR value);
 const char*	getPerformanceCounterStorageKHRName						(VkPerformanceCounterStorageKHR value);
@@ -58,8 +58,6 @@
 const char*	getRasterizationOrderAMDName							(VkRasterizationOrderAMD value);
 const char*	getShaderInfoTypeAMDName								(VkShaderInfoTypeAMD value);
 const char*	getValidationCheckEXTName								(VkValidationCheckEXT value);
-const char*	getIndirectCommandsTokenTypeNVXName						(VkIndirectCommandsTokenTypeNVX value);
-const char*	getObjectEntryTypeNVXName								(VkObjectEntryTypeNVX value);
 const char*	getDisplayPowerStateEXTName								(VkDisplayPowerStateEXT value);
 const char*	getDeviceEventTypeEXTName								(VkDeviceEventTypeEXT value);
 const char*	getDisplayEventTypeEXTName								(VkDisplayEventTypeEXT value);
@@ -71,11 +69,11 @@
 const char*	getValidationCacheHeaderVersionEXTName					(VkValidationCacheHeaderVersionEXT value);
 const char*	getShadingRatePaletteEntryNVName						(VkShadingRatePaletteEntryNV value);
 const char*	getCoarseSampleOrderTypeNVName							(VkCoarseSampleOrderTypeNV value);
-const char*	getAccelerationStructureTypeNVName						(VkAccelerationStructureTypeNV value);
-const char*	getRayTracingShaderGroupTypeNVName						(VkRayTracingShaderGroupTypeNV value);
-const char*	getGeometryTypeNVName									(VkGeometryTypeNV value);
-const char*	getCopyAccelerationStructureModeNVName					(VkCopyAccelerationStructureModeNV value);
-const char*	getAccelerationStructureMemoryRequirementsTypeNVName	(VkAccelerationStructureMemoryRequirementsTypeNV value);
+const char*	getRayTracingShaderGroupTypeKHRName						(VkRayTracingShaderGroupTypeKHR value);
+const char*	getGeometryTypeKHRName									(VkGeometryTypeKHR value);
+const char*	getAccelerationStructureTypeKHRName						(VkAccelerationStructureTypeKHR value);
+const char*	getCopyAccelerationStructureModeKHRName					(VkCopyAccelerationStructureModeKHR value);
+const char*	getAccelerationStructureMemoryRequirementsTypeKHRName	(VkAccelerationStructureMemoryRequirementsTypeKHR value);
 const char*	getQueueGlobalPriorityEXTName							(VkQueueGlobalPriorityEXT value);
 const char*	getTimeDomainEXTName									(VkTimeDomainEXT value);
 const char*	getMemoryOverallocationBehaviorAMDName					(VkMemoryOverallocationBehaviorAMD value);
@@ -90,127 +88,131 @@
 const char*	getScopeNVName											(VkScopeNV value);
 const char*	getCoverageReductionModeNVName							(VkCoverageReductionModeNV value);
 const char*	getLineRasterizationModeEXTName							(VkLineRasterizationModeEXT value);
+const char*	getIndirectCommandsTokenTypeNVName						(VkIndirectCommandsTokenTypeNV value);
+const char*	getAccelerationStructureBuildTypeKHRName				(VkAccelerationStructureBuildTypeKHR value);
 const char*	getFullScreenExclusiveEXTName							(VkFullScreenExclusiveEXT value);
 
-inline tcu::Format::Enum<VkPipelineCacheHeaderVersion>						getPipelineCacheHeaderVersionStr					(VkPipelineCacheHeaderVersion value)					{ return tcu::Format::Enum<VkPipelineCacheHeaderVersion>(getPipelineCacheHeaderVersionName, value);											}
-inline tcu::Format::Enum<VkResult>											getResultStr										(VkResult value)										{ return tcu::Format::Enum<VkResult>(getResultName, value);																					}
-inline tcu::Format::Enum<VkStructureType>									getStructureTypeStr									(VkStructureType value)									{ return tcu::Format::Enum<VkStructureType>(getStructureTypeName, value);																	}
-inline tcu::Format::Enum<VkSystemAllocationScope>							getSystemAllocationScopeStr							(VkSystemAllocationScope value)							{ return tcu::Format::Enum<VkSystemAllocationScope>(getSystemAllocationScopeName, value);													}
-inline tcu::Format::Enum<VkInternalAllocationType>							getInternalAllocationTypeStr						(VkInternalAllocationType value)						{ return tcu::Format::Enum<VkInternalAllocationType>(getInternalAllocationTypeName, value);													}
-inline tcu::Format::Enum<VkFormat>											getFormatStr										(VkFormat value)										{ return tcu::Format::Enum<VkFormat>(getFormatName, value);																					}
-inline tcu::Format::Enum<VkImageType>										getImageTypeStr										(VkImageType value)										{ return tcu::Format::Enum<VkImageType>(getImageTypeName, value);																			}
-inline tcu::Format::Enum<VkImageTiling>										getImageTilingStr									(VkImageTiling value)									{ return tcu::Format::Enum<VkImageTiling>(getImageTilingName, value);																		}
-inline tcu::Format::Enum<VkPhysicalDeviceType>								getPhysicalDeviceTypeStr							(VkPhysicalDeviceType value)							{ return tcu::Format::Enum<VkPhysicalDeviceType>(getPhysicalDeviceTypeName, value);															}
-inline tcu::Format::Enum<VkQueryType>										getQueryTypeStr										(VkQueryType value)										{ return tcu::Format::Enum<VkQueryType>(getQueryTypeName, value);																			}
-inline tcu::Format::Enum<VkSharingMode>										getSharingModeStr									(VkSharingMode value)									{ return tcu::Format::Enum<VkSharingMode>(getSharingModeName, value);																		}
-inline tcu::Format::Enum<VkImageLayout>										getImageLayoutStr									(VkImageLayout value)									{ return tcu::Format::Enum<VkImageLayout>(getImageLayoutName, value);																		}
-inline tcu::Format::Enum<VkImageViewType>									getImageViewTypeStr									(VkImageViewType value)									{ return tcu::Format::Enum<VkImageViewType>(getImageViewTypeName, value);																	}
-inline tcu::Format::Enum<VkComponentSwizzle>								getComponentSwizzleStr								(VkComponentSwizzle value)								{ return tcu::Format::Enum<VkComponentSwizzle>(getComponentSwizzleName, value);																}
-inline tcu::Format::Enum<VkVertexInputRate>									getVertexInputRateStr								(VkVertexInputRate value)								{ return tcu::Format::Enum<VkVertexInputRate>(getVertexInputRateName, value);																}
-inline tcu::Format::Enum<VkPrimitiveTopology>								getPrimitiveTopologyStr								(VkPrimitiveTopology value)								{ return tcu::Format::Enum<VkPrimitiveTopology>(getPrimitiveTopologyName, value);															}
-inline tcu::Format::Enum<VkPolygonMode>										getPolygonModeStr									(VkPolygonMode value)									{ return tcu::Format::Enum<VkPolygonMode>(getPolygonModeName, value);																		}
-inline tcu::Format::Enum<VkFrontFace>										getFrontFaceStr										(VkFrontFace value)										{ return tcu::Format::Enum<VkFrontFace>(getFrontFaceName, value);																			}
-inline tcu::Format::Enum<VkCompareOp>										getCompareOpStr										(VkCompareOp value)										{ return tcu::Format::Enum<VkCompareOp>(getCompareOpName, value);																			}
-inline tcu::Format::Enum<VkStencilOp>										getStencilOpStr										(VkStencilOp value)										{ return tcu::Format::Enum<VkStencilOp>(getStencilOpName, value);																			}
-inline tcu::Format::Enum<VkLogicOp>											getLogicOpStr										(VkLogicOp value)										{ return tcu::Format::Enum<VkLogicOp>(getLogicOpName, value);																				}
-inline tcu::Format::Enum<VkBlendFactor>										getBlendFactorStr									(VkBlendFactor value)									{ return tcu::Format::Enum<VkBlendFactor>(getBlendFactorName, value);																		}
-inline tcu::Format::Enum<VkBlendOp>											getBlendOpStr										(VkBlendOp value)										{ return tcu::Format::Enum<VkBlendOp>(getBlendOpName, value);																				}
-inline tcu::Format::Enum<VkDynamicState>									getDynamicStateStr									(VkDynamicState value)									{ return tcu::Format::Enum<VkDynamicState>(getDynamicStateName, value);																		}
-inline tcu::Format::Enum<VkFilter>											getFilterStr										(VkFilter value)										{ return tcu::Format::Enum<VkFilter>(getFilterName, value);																					}
-inline tcu::Format::Enum<VkSamplerMipmapMode>								getSamplerMipmapModeStr								(VkSamplerMipmapMode value)								{ return tcu::Format::Enum<VkSamplerMipmapMode>(getSamplerMipmapModeName, value);															}
-inline tcu::Format::Enum<VkSamplerAddressMode>								getSamplerAddressModeStr							(VkSamplerAddressMode value)							{ return tcu::Format::Enum<VkSamplerAddressMode>(getSamplerAddressModeName, value);															}
-inline tcu::Format::Enum<VkBorderColor>										getBorderColorStr									(VkBorderColor value)									{ return tcu::Format::Enum<VkBorderColor>(getBorderColorName, value);																		}
-inline tcu::Format::Enum<VkDescriptorType>									getDescriptorTypeStr								(VkDescriptorType value)								{ return tcu::Format::Enum<VkDescriptorType>(getDescriptorTypeName, value);																	}
-inline tcu::Format::Enum<VkAttachmentLoadOp>								getAttachmentLoadOpStr								(VkAttachmentLoadOp value)								{ return tcu::Format::Enum<VkAttachmentLoadOp>(getAttachmentLoadOpName, value);																}
-inline tcu::Format::Enum<VkAttachmentStoreOp>								getAttachmentStoreOpStr								(VkAttachmentStoreOp value)								{ return tcu::Format::Enum<VkAttachmentStoreOp>(getAttachmentStoreOpName, value);															}
-inline tcu::Format::Enum<VkPipelineBindPoint>								getPipelineBindPointStr								(VkPipelineBindPoint value)								{ return tcu::Format::Enum<VkPipelineBindPoint>(getPipelineBindPointName, value);															}
-inline tcu::Format::Enum<VkCommandBufferLevel>								getCommandBufferLevelStr							(VkCommandBufferLevel value)							{ return tcu::Format::Enum<VkCommandBufferLevel>(getCommandBufferLevelName, value);															}
-inline tcu::Format::Enum<VkIndexType>										getIndexTypeStr										(VkIndexType value)										{ return tcu::Format::Enum<VkIndexType>(getIndexTypeName, value);																			}
-inline tcu::Format::Enum<VkSubpassContents>									getSubpassContentsStr								(VkSubpassContents value)								{ return tcu::Format::Enum<VkSubpassContents>(getSubpassContentsName, value);																}
-inline tcu::Format::Enum<VkObjectType>										getObjectTypeStr									(VkObjectType value)									{ return tcu::Format::Enum<VkObjectType>(getObjectTypeName, value);																			}
-inline tcu::Format::Enum<VkVendorId>										getVendorIdStr										(VkVendorId value)										{ return tcu::Format::Enum<VkVendorId>(getVendorIdName, value);																				}
-inline tcu::Format::Enum<VkPointClippingBehavior>							getPointClippingBehaviorStr							(VkPointClippingBehavior value)							{ return tcu::Format::Enum<VkPointClippingBehavior>(getPointClippingBehaviorName, value);													}
-inline tcu::Format::Enum<VkTessellationDomainOrigin>						getTessellationDomainOriginStr						(VkTessellationDomainOrigin value)						{ return tcu::Format::Enum<VkTessellationDomainOrigin>(getTessellationDomainOriginName, value);												}
-inline tcu::Format::Enum<VkSamplerYcbcrModelConversion>						getSamplerYcbcrModelConversionStr					(VkSamplerYcbcrModelConversion value)					{ return tcu::Format::Enum<VkSamplerYcbcrModelConversion>(getSamplerYcbcrModelConversionName, value);										}
-inline tcu::Format::Enum<VkSamplerYcbcrRange>								getSamplerYcbcrRangeStr								(VkSamplerYcbcrRange value)								{ return tcu::Format::Enum<VkSamplerYcbcrRange>(getSamplerYcbcrRangeName, value);															}
-inline tcu::Format::Enum<VkChromaLocation>									getChromaLocationStr								(VkChromaLocation value)								{ return tcu::Format::Enum<VkChromaLocation>(getChromaLocationName, value);																	}
-inline tcu::Format::Enum<VkDescriptorUpdateTemplateType>					getDescriptorUpdateTemplateTypeStr					(VkDescriptorUpdateTemplateType value)					{ return tcu::Format::Enum<VkDescriptorUpdateTemplateType>(getDescriptorUpdateTemplateTypeName, value);										}
-inline tcu::Format::Enum<VkDriverId>										getDriverIdStr										(VkDriverId value)										{ return tcu::Format::Enum<VkDriverId>(getDriverIdName, value);																				}
-inline tcu::Format::Enum<VkShaderFloatControlsIndependence>					getShaderFloatControlsIndependenceStr				(VkShaderFloatControlsIndependence value)				{ return tcu::Format::Enum<VkShaderFloatControlsIndependence>(getShaderFloatControlsIndependenceName, value);								}
-inline tcu::Format::Enum<VkSamplerReductionMode>							getSamplerReductionModeStr							(VkSamplerReductionMode value)							{ return tcu::Format::Enum<VkSamplerReductionMode>(getSamplerReductionModeName, value);														}
-inline tcu::Format::Enum<VkSemaphoreType>									getSemaphoreTypeStr									(VkSemaphoreType value)									{ return tcu::Format::Enum<VkSemaphoreType>(getSemaphoreTypeName, value);																	}
-inline tcu::Format::Enum<VkColorSpaceKHR>									getColorSpaceKHRStr									(VkColorSpaceKHR value)									{ return tcu::Format::Enum<VkColorSpaceKHR>(getColorSpaceKHRName, value);																	}
-inline tcu::Format::Enum<VkPresentModeKHR>									getPresentModeKHRStr								(VkPresentModeKHR value)								{ return tcu::Format::Enum<VkPresentModeKHR>(getPresentModeKHRName, value);																	}
-inline tcu::Format::Enum<VkPerformanceCounterUnitKHR>						getPerformanceCounterUnitKHRStr						(VkPerformanceCounterUnitKHR value)						{ return tcu::Format::Enum<VkPerformanceCounterUnitKHR>(getPerformanceCounterUnitKHRName, value);											}
-inline tcu::Format::Enum<VkPerformanceCounterScopeKHR>						getPerformanceCounterScopeKHRStr					(VkPerformanceCounterScopeKHR value)					{ return tcu::Format::Enum<VkPerformanceCounterScopeKHR>(getPerformanceCounterScopeKHRName, value);											}
-inline tcu::Format::Enum<VkPerformanceCounterStorageKHR>					getPerformanceCounterStorageKHRStr					(VkPerformanceCounterStorageKHR value)					{ return tcu::Format::Enum<VkPerformanceCounterStorageKHR>(getPerformanceCounterStorageKHRName, value);										}
-inline tcu::Format::Enum<VkPipelineExecutableStatisticFormatKHR>			getPipelineExecutableStatisticFormatKHRStr			(VkPipelineExecutableStatisticFormatKHR value)			{ return tcu::Format::Enum<VkPipelineExecutableStatisticFormatKHR>(getPipelineExecutableStatisticFormatKHRName, value);						}
-inline tcu::Format::Enum<VkDebugReportObjectTypeEXT>						getDebugReportObjectTypeEXTStr						(VkDebugReportObjectTypeEXT value)						{ return tcu::Format::Enum<VkDebugReportObjectTypeEXT>(getDebugReportObjectTypeEXTName, value);												}
-inline tcu::Format::Enum<VkRasterizationOrderAMD>							getRasterizationOrderAMDStr							(VkRasterizationOrderAMD value)							{ return tcu::Format::Enum<VkRasterizationOrderAMD>(getRasterizationOrderAMDName, value);													}
-inline tcu::Format::Enum<VkShaderInfoTypeAMD>								getShaderInfoTypeAMDStr								(VkShaderInfoTypeAMD value)								{ return tcu::Format::Enum<VkShaderInfoTypeAMD>(getShaderInfoTypeAMDName, value);															}
-inline tcu::Format::Enum<VkValidationCheckEXT>								getValidationCheckEXTStr							(VkValidationCheckEXT value)							{ return tcu::Format::Enum<VkValidationCheckEXT>(getValidationCheckEXTName, value);															}
-inline tcu::Format::Enum<VkIndirectCommandsTokenTypeNVX>					getIndirectCommandsTokenTypeNVXStr					(VkIndirectCommandsTokenTypeNVX value)					{ return tcu::Format::Enum<VkIndirectCommandsTokenTypeNVX>(getIndirectCommandsTokenTypeNVXName, value);										}
-inline tcu::Format::Enum<VkObjectEntryTypeNVX>								getObjectEntryTypeNVXStr							(VkObjectEntryTypeNVX value)							{ return tcu::Format::Enum<VkObjectEntryTypeNVX>(getObjectEntryTypeNVXName, value);															}
-inline tcu::Format::Enum<VkDisplayPowerStateEXT>							getDisplayPowerStateEXTStr							(VkDisplayPowerStateEXT value)							{ return tcu::Format::Enum<VkDisplayPowerStateEXT>(getDisplayPowerStateEXTName, value);														}
-inline tcu::Format::Enum<VkDeviceEventTypeEXT>								getDeviceEventTypeEXTStr							(VkDeviceEventTypeEXT value)							{ return tcu::Format::Enum<VkDeviceEventTypeEXT>(getDeviceEventTypeEXTName, value);															}
-inline tcu::Format::Enum<VkDisplayEventTypeEXT>								getDisplayEventTypeEXTStr							(VkDisplayEventTypeEXT value)							{ return tcu::Format::Enum<VkDisplayEventTypeEXT>(getDisplayEventTypeEXTName, value);														}
-inline tcu::Format::Enum<VkViewportCoordinateSwizzleNV>						getViewportCoordinateSwizzleNVStr					(VkViewportCoordinateSwizzleNV value)					{ return tcu::Format::Enum<VkViewportCoordinateSwizzleNV>(getViewportCoordinateSwizzleNVName, value);										}
-inline tcu::Format::Enum<VkDiscardRectangleModeEXT>							getDiscardRectangleModeEXTStr						(VkDiscardRectangleModeEXT value)						{ return tcu::Format::Enum<VkDiscardRectangleModeEXT>(getDiscardRectangleModeEXTName, value);												}
-inline tcu::Format::Enum<VkConservativeRasterizationModeEXT>				getConservativeRasterizationModeEXTStr				(VkConservativeRasterizationModeEXT value)				{ return tcu::Format::Enum<VkConservativeRasterizationModeEXT>(getConservativeRasterizationModeEXTName, value);								}
-inline tcu::Format::Enum<VkBlendOverlapEXT>									getBlendOverlapEXTStr								(VkBlendOverlapEXT value)								{ return tcu::Format::Enum<VkBlendOverlapEXT>(getBlendOverlapEXTName, value);																}
-inline tcu::Format::Enum<VkCoverageModulationModeNV>						getCoverageModulationModeNVStr						(VkCoverageModulationModeNV value)						{ return tcu::Format::Enum<VkCoverageModulationModeNV>(getCoverageModulationModeNVName, value);												}
-inline tcu::Format::Enum<VkValidationCacheHeaderVersionEXT>					getValidationCacheHeaderVersionEXTStr				(VkValidationCacheHeaderVersionEXT value)				{ return tcu::Format::Enum<VkValidationCacheHeaderVersionEXT>(getValidationCacheHeaderVersionEXTName, value);								}
-inline tcu::Format::Enum<VkShadingRatePaletteEntryNV>						getShadingRatePaletteEntryNVStr						(VkShadingRatePaletteEntryNV value)						{ return tcu::Format::Enum<VkShadingRatePaletteEntryNV>(getShadingRatePaletteEntryNVName, value);											}
-inline tcu::Format::Enum<VkCoarseSampleOrderTypeNV>							getCoarseSampleOrderTypeNVStr						(VkCoarseSampleOrderTypeNV value)						{ return tcu::Format::Enum<VkCoarseSampleOrderTypeNV>(getCoarseSampleOrderTypeNVName, value);												}
-inline tcu::Format::Enum<VkAccelerationStructureTypeNV>						getAccelerationStructureTypeNVStr					(VkAccelerationStructureTypeNV value)					{ return tcu::Format::Enum<VkAccelerationStructureTypeNV>(getAccelerationStructureTypeNVName, value);										}
-inline tcu::Format::Enum<VkRayTracingShaderGroupTypeNV>						getRayTracingShaderGroupTypeNVStr					(VkRayTracingShaderGroupTypeNV value)					{ return tcu::Format::Enum<VkRayTracingShaderGroupTypeNV>(getRayTracingShaderGroupTypeNVName, value);										}
-inline tcu::Format::Enum<VkGeometryTypeNV>									getGeometryTypeNVStr								(VkGeometryTypeNV value)								{ return tcu::Format::Enum<VkGeometryTypeNV>(getGeometryTypeNVName, value);																	}
-inline tcu::Format::Enum<VkCopyAccelerationStructureModeNV>					getCopyAccelerationStructureModeNVStr				(VkCopyAccelerationStructureModeNV value)				{ return tcu::Format::Enum<VkCopyAccelerationStructureModeNV>(getCopyAccelerationStructureModeNVName, value);								}
-inline tcu::Format::Enum<VkAccelerationStructureMemoryRequirementsTypeNV>	getAccelerationStructureMemoryRequirementsTypeNVStr	(VkAccelerationStructureMemoryRequirementsTypeNV value)	{ return tcu::Format::Enum<VkAccelerationStructureMemoryRequirementsTypeNV>(getAccelerationStructureMemoryRequirementsTypeNVName, value);	}
-inline tcu::Format::Enum<VkQueueGlobalPriorityEXT>							getQueueGlobalPriorityEXTStr						(VkQueueGlobalPriorityEXT value)						{ return tcu::Format::Enum<VkQueueGlobalPriorityEXT>(getQueueGlobalPriorityEXTName, value);													}
-inline tcu::Format::Enum<VkTimeDomainEXT>									getTimeDomainEXTStr									(VkTimeDomainEXT value)									{ return tcu::Format::Enum<VkTimeDomainEXT>(getTimeDomainEXTName, value);																	}
-inline tcu::Format::Enum<VkMemoryOverallocationBehaviorAMD>					getMemoryOverallocationBehaviorAMDStr				(VkMemoryOverallocationBehaviorAMD value)				{ return tcu::Format::Enum<VkMemoryOverallocationBehaviorAMD>(getMemoryOverallocationBehaviorAMDName, value);								}
-inline tcu::Format::Enum<VkPerformanceConfigurationTypeINTEL>				getPerformanceConfigurationTypeINTELStr				(VkPerformanceConfigurationTypeINTEL value)				{ return tcu::Format::Enum<VkPerformanceConfigurationTypeINTEL>(getPerformanceConfigurationTypeINTELName, value);							}
-inline tcu::Format::Enum<VkQueryPoolSamplingModeINTEL>						getQueryPoolSamplingModeINTELStr					(VkQueryPoolSamplingModeINTEL value)					{ return tcu::Format::Enum<VkQueryPoolSamplingModeINTEL>(getQueryPoolSamplingModeINTELName, value);											}
-inline tcu::Format::Enum<VkPerformanceOverrideTypeINTEL>					getPerformanceOverrideTypeINTELStr					(VkPerformanceOverrideTypeINTEL value)					{ return tcu::Format::Enum<VkPerformanceOverrideTypeINTEL>(getPerformanceOverrideTypeINTELName, value);										}
-inline tcu::Format::Enum<VkPerformanceParameterTypeINTEL>					getPerformanceParameterTypeINTELStr					(VkPerformanceParameterTypeINTEL value)					{ return tcu::Format::Enum<VkPerformanceParameterTypeINTEL>(getPerformanceParameterTypeINTELName, value);									}
-inline tcu::Format::Enum<VkPerformanceValueTypeINTEL>						getPerformanceValueTypeINTELStr						(VkPerformanceValueTypeINTEL value)						{ return tcu::Format::Enum<VkPerformanceValueTypeINTEL>(getPerformanceValueTypeINTELName, value);											}
-inline tcu::Format::Enum<VkValidationFeatureEnableEXT>						getValidationFeatureEnableEXTStr					(VkValidationFeatureEnableEXT value)					{ return tcu::Format::Enum<VkValidationFeatureEnableEXT>(getValidationFeatureEnableEXTName, value);											}
-inline tcu::Format::Enum<VkValidationFeatureDisableEXT>						getValidationFeatureDisableEXTStr					(VkValidationFeatureDisableEXT value)					{ return tcu::Format::Enum<VkValidationFeatureDisableEXT>(getValidationFeatureDisableEXTName, value);										}
-inline tcu::Format::Enum<VkComponentTypeNV>									getComponentTypeNVStr								(VkComponentTypeNV value)								{ return tcu::Format::Enum<VkComponentTypeNV>(getComponentTypeNVName, value);																}
-inline tcu::Format::Enum<VkScopeNV>											getScopeNVStr										(VkScopeNV value)										{ return tcu::Format::Enum<VkScopeNV>(getScopeNVName, value);																				}
-inline tcu::Format::Enum<VkCoverageReductionModeNV>							getCoverageReductionModeNVStr						(VkCoverageReductionModeNV value)						{ return tcu::Format::Enum<VkCoverageReductionModeNV>(getCoverageReductionModeNVName, value);												}
-inline tcu::Format::Enum<VkLineRasterizationModeEXT>						getLineRasterizationModeEXTStr						(VkLineRasterizationModeEXT value)						{ return tcu::Format::Enum<VkLineRasterizationModeEXT>(getLineRasterizationModeEXTName, value);												}
-inline tcu::Format::Enum<VkFullScreenExclusiveEXT>							getFullScreenExclusiveEXTStr						(VkFullScreenExclusiveEXT value)						{ return tcu::Format::Enum<VkFullScreenExclusiveEXT>(getFullScreenExclusiveEXTName, value);													}
+inline tcu::Format::Enum<VkResult>											getResultStr											(VkResult value)											{ return tcu::Format::Enum<VkResult>(getResultName, value);																					}
+inline tcu::Format::Enum<VkStructureType>									getStructureTypeStr										(VkStructureType value)										{ return tcu::Format::Enum<VkStructureType>(getStructureTypeName, value);																	}
+inline tcu::Format::Enum<VkImageLayout>										getImageLayoutStr										(VkImageLayout value)										{ return tcu::Format::Enum<VkImageLayout>(getImageLayoutName, value);																		}
+inline tcu::Format::Enum<VkObjectType>										getObjectTypeStr										(VkObjectType value)										{ return tcu::Format::Enum<VkObjectType>(getObjectTypeName, value);																			}
+inline tcu::Format::Enum<VkVendorId>										getVendorIdStr											(VkVendorId value)											{ return tcu::Format::Enum<VkVendorId>(getVendorIdName, value);																				}
+inline tcu::Format::Enum<VkPipelineCacheHeaderVersion>						getPipelineCacheHeaderVersionStr						(VkPipelineCacheHeaderVersion value)						{ return tcu::Format::Enum<VkPipelineCacheHeaderVersion>(getPipelineCacheHeaderVersionName, value);											}
+inline tcu::Format::Enum<VkSystemAllocationScope>							getSystemAllocationScopeStr								(VkSystemAllocationScope value)								{ return tcu::Format::Enum<VkSystemAllocationScope>(getSystemAllocationScopeName, value);													}
+inline tcu::Format::Enum<VkInternalAllocationType>							getInternalAllocationTypeStr							(VkInternalAllocationType value)							{ return tcu::Format::Enum<VkInternalAllocationType>(getInternalAllocationTypeName, value);													}
+inline tcu::Format::Enum<VkFormat>											getFormatStr											(VkFormat value)											{ return tcu::Format::Enum<VkFormat>(getFormatName, value);																					}
+inline tcu::Format::Enum<VkImageTiling>										getImageTilingStr										(VkImageTiling value)										{ return tcu::Format::Enum<VkImageTiling>(getImageTilingName, value);																		}
+inline tcu::Format::Enum<VkImageType>										getImageTypeStr											(VkImageType value)											{ return tcu::Format::Enum<VkImageType>(getImageTypeName, value);																			}
+inline tcu::Format::Enum<VkPhysicalDeviceType>								getPhysicalDeviceTypeStr								(VkPhysicalDeviceType value)								{ return tcu::Format::Enum<VkPhysicalDeviceType>(getPhysicalDeviceTypeName, value);															}
+inline tcu::Format::Enum<VkQueryType>										getQueryTypeStr											(VkQueryType value)											{ return tcu::Format::Enum<VkQueryType>(getQueryTypeName, value);																			}
+inline tcu::Format::Enum<VkSharingMode>										getSharingModeStr										(VkSharingMode value)										{ return tcu::Format::Enum<VkSharingMode>(getSharingModeName, value);																		}
+inline tcu::Format::Enum<VkComponentSwizzle>								getComponentSwizzleStr									(VkComponentSwizzle value)									{ return tcu::Format::Enum<VkComponentSwizzle>(getComponentSwizzleName, value);																}
+inline tcu::Format::Enum<VkImageViewType>									getImageViewTypeStr										(VkImageViewType value)										{ return tcu::Format::Enum<VkImageViewType>(getImageViewTypeName, value);																	}
+inline tcu::Format::Enum<VkBlendFactor>										getBlendFactorStr										(VkBlendFactor value)										{ return tcu::Format::Enum<VkBlendFactor>(getBlendFactorName, value);																		}
+inline tcu::Format::Enum<VkBlendOp>											getBlendOpStr											(VkBlendOp value)											{ return tcu::Format::Enum<VkBlendOp>(getBlendOpName, value);																				}
+inline tcu::Format::Enum<VkCompareOp>										getCompareOpStr											(VkCompareOp value)											{ return tcu::Format::Enum<VkCompareOp>(getCompareOpName, value);																			}
+inline tcu::Format::Enum<VkDynamicState>									getDynamicStateStr										(VkDynamicState value)										{ return tcu::Format::Enum<VkDynamicState>(getDynamicStateName, value);																		}
+inline tcu::Format::Enum<VkFrontFace>										getFrontFaceStr											(VkFrontFace value)											{ return tcu::Format::Enum<VkFrontFace>(getFrontFaceName, value);																			}
+inline tcu::Format::Enum<VkVertexInputRate>									getVertexInputRateStr									(VkVertexInputRate value)									{ return tcu::Format::Enum<VkVertexInputRate>(getVertexInputRateName, value);																}
+inline tcu::Format::Enum<VkPrimitiveTopology>								getPrimitiveTopologyStr									(VkPrimitiveTopology value)									{ return tcu::Format::Enum<VkPrimitiveTopology>(getPrimitiveTopologyName, value);															}
+inline tcu::Format::Enum<VkPolygonMode>										getPolygonModeStr										(VkPolygonMode value)										{ return tcu::Format::Enum<VkPolygonMode>(getPolygonModeName, value);																		}
+inline tcu::Format::Enum<VkStencilOp>										getStencilOpStr											(VkStencilOp value)											{ return tcu::Format::Enum<VkStencilOp>(getStencilOpName, value);																			}
+inline tcu::Format::Enum<VkLogicOp>											getLogicOpStr											(VkLogicOp value)											{ return tcu::Format::Enum<VkLogicOp>(getLogicOpName, value);																				}
+inline tcu::Format::Enum<VkBorderColor>										getBorderColorStr										(VkBorderColor value)										{ return tcu::Format::Enum<VkBorderColor>(getBorderColorName, value);																		}
+inline tcu::Format::Enum<VkFilter>											getFilterStr											(VkFilter value)											{ return tcu::Format::Enum<VkFilter>(getFilterName, value);																					}
+inline tcu::Format::Enum<VkSamplerAddressMode>								getSamplerAddressModeStr								(VkSamplerAddressMode value)								{ return tcu::Format::Enum<VkSamplerAddressMode>(getSamplerAddressModeName, value);															}
+inline tcu::Format::Enum<VkSamplerMipmapMode>								getSamplerMipmapModeStr									(VkSamplerMipmapMode value)									{ return tcu::Format::Enum<VkSamplerMipmapMode>(getSamplerMipmapModeName, value);															}
+inline tcu::Format::Enum<VkDescriptorType>									getDescriptorTypeStr									(VkDescriptorType value)									{ return tcu::Format::Enum<VkDescriptorType>(getDescriptorTypeName, value);																	}
+inline tcu::Format::Enum<VkAttachmentLoadOp>								getAttachmentLoadOpStr									(VkAttachmentLoadOp value)									{ return tcu::Format::Enum<VkAttachmentLoadOp>(getAttachmentLoadOpName, value);																}
+inline tcu::Format::Enum<VkAttachmentStoreOp>								getAttachmentStoreOpStr									(VkAttachmentStoreOp value)									{ return tcu::Format::Enum<VkAttachmentStoreOp>(getAttachmentStoreOpName, value);															}
+inline tcu::Format::Enum<VkPipelineBindPoint>								getPipelineBindPointStr									(VkPipelineBindPoint value)									{ return tcu::Format::Enum<VkPipelineBindPoint>(getPipelineBindPointName, value);															}
+inline tcu::Format::Enum<VkCommandBufferLevel>								getCommandBufferLevelStr								(VkCommandBufferLevel value)								{ return tcu::Format::Enum<VkCommandBufferLevel>(getCommandBufferLevelName, value);															}
+inline tcu::Format::Enum<VkIndexType>										getIndexTypeStr											(VkIndexType value)											{ return tcu::Format::Enum<VkIndexType>(getIndexTypeName, value);																			}
+inline tcu::Format::Enum<VkSubpassContents>									getSubpassContentsStr									(VkSubpassContents value)									{ return tcu::Format::Enum<VkSubpassContents>(getSubpassContentsName, value);																}
+inline tcu::Format::Enum<VkPointClippingBehavior>							getPointClippingBehaviorStr								(VkPointClippingBehavior value)								{ return tcu::Format::Enum<VkPointClippingBehavior>(getPointClippingBehaviorName, value);													}
+inline tcu::Format::Enum<VkTessellationDomainOrigin>						getTessellationDomainOriginStr							(VkTessellationDomainOrigin value)							{ return tcu::Format::Enum<VkTessellationDomainOrigin>(getTessellationDomainOriginName, value);												}
+inline tcu::Format::Enum<VkSamplerYcbcrModelConversion>						getSamplerYcbcrModelConversionStr						(VkSamplerYcbcrModelConversion value)						{ return tcu::Format::Enum<VkSamplerYcbcrModelConversion>(getSamplerYcbcrModelConversionName, value);										}
+inline tcu::Format::Enum<VkSamplerYcbcrRange>								getSamplerYcbcrRangeStr									(VkSamplerYcbcrRange value)									{ return tcu::Format::Enum<VkSamplerYcbcrRange>(getSamplerYcbcrRangeName, value);															}
+inline tcu::Format::Enum<VkChromaLocation>									getChromaLocationStr									(VkChromaLocation value)									{ return tcu::Format::Enum<VkChromaLocation>(getChromaLocationName, value);																	}
+inline tcu::Format::Enum<VkDescriptorUpdateTemplateType>					getDescriptorUpdateTemplateTypeStr						(VkDescriptorUpdateTemplateType value)						{ return tcu::Format::Enum<VkDescriptorUpdateTemplateType>(getDescriptorUpdateTemplateTypeName, value);										}
+inline tcu::Format::Enum<VkDriverId>										getDriverIdStr											(VkDriverId value)											{ return tcu::Format::Enum<VkDriverId>(getDriverIdName, value);																				}
+inline tcu::Format::Enum<VkShaderFloatControlsIndependence>					getShaderFloatControlsIndependenceStr					(VkShaderFloatControlsIndependence value)					{ return tcu::Format::Enum<VkShaderFloatControlsIndependence>(getShaderFloatControlsIndependenceName, value);								}
+inline tcu::Format::Enum<VkSamplerReductionMode>							getSamplerReductionModeStr								(VkSamplerReductionMode value)								{ return tcu::Format::Enum<VkSamplerReductionMode>(getSamplerReductionModeName, value);														}
+inline tcu::Format::Enum<VkSemaphoreType>									getSemaphoreTypeStr										(VkSemaphoreType value)										{ return tcu::Format::Enum<VkSemaphoreType>(getSemaphoreTypeName, value);																	}
+inline tcu::Format::Enum<VkPresentModeKHR>									getPresentModeKHRStr									(VkPresentModeKHR value)									{ return tcu::Format::Enum<VkPresentModeKHR>(getPresentModeKHRName, value);																	}
+inline tcu::Format::Enum<VkColorSpaceKHR>									getColorSpaceKHRStr										(VkColorSpaceKHR value)										{ return tcu::Format::Enum<VkColorSpaceKHR>(getColorSpaceKHRName, value);																	}
+inline tcu::Format::Enum<VkPerformanceCounterUnitKHR>						getPerformanceCounterUnitKHRStr							(VkPerformanceCounterUnitKHR value)							{ return tcu::Format::Enum<VkPerformanceCounterUnitKHR>(getPerformanceCounterUnitKHRName, value);											}
+inline tcu::Format::Enum<VkPerformanceCounterScopeKHR>						getPerformanceCounterScopeKHRStr						(VkPerformanceCounterScopeKHR value)						{ return tcu::Format::Enum<VkPerformanceCounterScopeKHR>(getPerformanceCounterScopeKHRName, value);											}
+inline tcu::Format::Enum<VkPerformanceCounterStorageKHR>					getPerformanceCounterStorageKHRStr						(VkPerformanceCounterStorageKHR value)						{ return tcu::Format::Enum<VkPerformanceCounterStorageKHR>(getPerformanceCounterStorageKHRName, value);										}
+inline tcu::Format::Enum<VkPipelineExecutableStatisticFormatKHR>			getPipelineExecutableStatisticFormatKHRStr				(VkPipelineExecutableStatisticFormatKHR value)				{ return tcu::Format::Enum<VkPipelineExecutableStatisticFormatKHR>(getPipelineExecutableStatisticFormatKHRName, value);						}
+inline tcu::Format::Enum<VkDebugReportObjectTypeEXT>						getDebugReportObjectTypeEXTStr							(VkDebugReportObjectTypeEXT value)							{ return tcu::Format::Enum<VkDebugReportObjectTypeEXT>(getDebugReportObjectTypeEXTName, value);												}
+inline tcu::Format::Enum<VkRasterizationOrderAMD>							getRasterizationOrderAMDStr								(VkRasterizationOrderAMD value)								{ return tcu::Format::Enum<VkRasterizationOrderAMD>(getRasterizationOrderAMDName, value);													}
+inline tcu::Format::Enum<VkShaderInfoTypeAMD>								getShaderInfoTypeAMDStr									(VkShaderInfoTypeAMD value)									{ return tcu::Format::Enum<VkShaderInfoTypeAMD>(getShaderInfoTypeAMDName, value);															}
+inline tcu::Format::Enum<VkValidationCheckEXT>								getValidationCheckEXTStr								(VkValidationCheckEXT value)								{ return tcu::Format::Enum<VkValidationCheckEXT>(getValidationCheckEXTName, value);															}
+inline tcu::Format::Enum<VkDisplayPowerStateEXT>							getDisplayPowerStateEXTStr								(VkDisplayPowerStateEXT value)								{ return tcu::Format::Enum<VkDisplayPowerStateEXT>(getDisplayPowerStateEXTName, value);														}
+inline tcu::Format::Enum<VkDeviceEventTypeEXT>								getDeviceEventTypeEXTStr								(VkDeviceEventTypeEXT value)								{ return tcu::Format::Enum<VkDeviceEventTypeEXT>(getDeviceEventTypeEXTName, value);															}
+inline tcu::Format::Enum<VkDisplayEventTypeEXT>								getDisplayEventTypeEXTStr								(VkDisplayEventTypeEXT value)								{ return tcu::Format::Enum<VkDisplayEventTypeEXT>(getDisplayEventTypeEXTName, value);														}
+inline tcu::Format::Enum<VkViewportCoordinateSwizzleNV>						getViewportCoordinateSwizzleNVStr						(VkViewportCoordinateSwizzleNV value)						{ return tcu::Format::Enum<VkViewportCoordinateSwizzleNV>(getViewportCoordinateSwizzleNVName, value);										}
+inline tcu::Format::Enum<VkDiscardRectangleModeEXT>							getDiscardRectangleModeEXTStr							(VkDiscardRectangleModeEXT value)							{ return tcu::Format::Enum<VkDiscardRectangleModeEXT>(getDiscardRectangleModeEXTName, value);												}
+inline tcu::Format::Enum<VkConservativeRasterizationModeEXT>				getConservativeRasterizationModeEXTStr					(VkConservativeRasterizationModeEXT value)					{ return tcu::Format::Enum<VkConservativeRasterizationModeEXT>(getConservativeRasterizationModeEXTName, value);								}
+inline tcu::Format::Enum<VkBlendOverlapEXT>									getBlendOverlapEXTStr									(VkBlendOverlapEXT value)									{ return tcu::Format::Enum<VkBlendOverlapEXT>(getBlendOverlapEXTName, value);																}
+inline tcu::Format::Enum<VkCoverageModulationModeNV>						getCoverageModulationModeNVStr							(VkCoverageModulationModeNV value)							{ return tcu::Format::Enum<VkCoverageModulationModeNV>(getCoverageModulationModeNVName, value);												}
+inline tcu::Format::Enum<VkValidationCacheHeaderVersionEXT>					getValidationCacheHeaderVersionEXTStr					(VkValidationCacheHeaderVersionEXT value)					{ return tcu::Format::Enum<VkValidationCacheHeaderVersionEXT>(getValidationCacheHeaderVersionEXTName, value);								}
+inline tcu::Format::Enum<VkShadingRatePaletteEntryNV>						getShadingRatePaletteEntryNVStr							(VkShadingRatePaletteEntryNV value)							{ return tcu::Format::Enum<VkShadingRatePaletteEntryNV>(getShadingRatePaletteEntryNVName, value);											}
+inline tcu::Format::Enum<VkCoarseSampleOrderTypeNV>							getCoarseSampleOrderTypeNVStr							(VkCoarseSampleOrderTypeNV value)							{ return tcu::Format::Enum<VkCoarseSampleOrderTypeNV>(getCoarseSampleOrderTypeNVName, value);												}
+inline tcu::Format::Enum<VkRayTracingShaderGroupTypeKHR>					getRayTracingShaderGroupTypeKHRStr						(VkRayTracingShaderGroupTypeKHR value)						{ return tcu::Format::Enum<VkRayTracingShaderGroupTypeKHR>(getRayTracingShaderGroupTypeKHRName, value);										}
+inline tcu::Format::Enum<VkGeometryTypeKHR>									getGeometryTypeKHRStr									(VkGeometryTypeKHR value)									{ return tcu::Format::Enum<VkGeometryTypeKHR>(getGeometryTypeKHRName, value);																}
+inline tcu::Format::Enum<VkAccelerationStructureTypeKHR>					getAccelerationStructureTypeKHRStr						(VkAccelerationStructureTypeKHR value)						{ return tcu::Format::Enum<VkAccelerationStructureTypeKHR>(getAccelerationStructureTypeKHRName, value);										}
+inline tcu::Format::Enum<VkCopyAccelerationStructureModeKHR>				getCopyAccelerationStructureModeKHRStr					(VkCopyAccelerationStructureModeKHR value)					{ return tcu::Format::Enum<VkCopyAccelerationStructureModeKHR>(getCopyAccelerationStructureModeKHRName, value);								}
+inline tcu::Format::Enum<VkAccelerationStructureMemoryRequirementsTypeKHR>	getAccelerationStructureMemoryRequirementsTypeKHRStr	(VkAccelerationStructureMemoryRequirementsTypeKHR value)	{ return tcu::Format::Enum<VkAccelerationStructureMemoryRequirementsTypeKHR>(getAccelerationStructureMemoryRequirementsTypeKHRName, value);	}
+inline tcu::Format::Enum<VkQueueGlobalPriorityEXT>							getQueueGlobalPriorityEXTStr							(VkQueueGlobalPriorityEXT value)							{ return tcu::Format::Enum<VkQueueGlobalPriorityEXT>(getQueueGlobalPriorityEXTName, value);													}
+inline tcu::Format::Enum<VkTimeDomainEXT>									getTimeDomainEXTStr										(VkTimeDomainEXT value)										{ return tcu::Format::Enum<VkTimeDomainEXT>(getTimeDomainEXTName, value);																	}
+inline tcu::Format::Enum<VkMemoryOverallocationBehaviorAMD>					getMemoryOverallocationBehaviorAMDStr					(VkMemoryOverallocationBehaviorAMD value)					{ return tcu::Format::Enum<VkMemoryOverallocationBehaviorAMD>(getMemoryOverallocationBehaviorAMDName, value);								}
+inline tcu::Format::Enum<VkPerformanceConfigurationTypeINTEL>				getPerformanceConfigurationTypeINTELStr					(VkPerformanceConfigurationTypeINTEL value)					{ return tcu::Format::Enum<VkPerformanceConfigurationTypeINTEL>(getPerformanceConfigurationTypeINTELName, value);							}
+inline tcu::Format::Enum<VkQueryPoolSamplingModeINTEL>						getQueryPoolSamplingModeINTELStr						(VkQueryPoolSamplingModeINTEL value)						{ return tcu::Format::Enum<VkQueryPoolSamplingModeINTEL>(getQueryPoolSamplingModeINTELName, value);											}
+inline tcu::Format::Enum<VkPerformanceOverrideTypeINTEL>					getPerformanceOverrideTypeINTELStr						(VkPerformanceOverrideTypeINTEL value)						{ return tcu::Format::Enum<VkPerformanceOverrideTypeINTEL>(getPerformanceOverrideTypeINTELName, value);										}
+inline tcu::Format::Enum<VkPerformanceParameterTypeINTEL>					getPerformanceParameterTypeINTELStr						(VkPerformanceParameterTypeINTEL value)						{ return tcu::Format::Enum<VkPerformanceParameterTypeINTEL>(getPerformanceParameterTypeINTELName, value);									}
+inline tcu::Format::Enum<VkPerformanceValueTypeINTEL>						getPerformanceValueTypeINTELStr							(VkPerformanceValueTypeINTEL value)							{ return tcu::Format::Enum<VkPerformanceValueTypeINTEL>(getPerformanceValueTypeINTELName, value);											}
+inline tcu::Format::Enum<VkValidationFeatureEnableEXT>						getValidationFeatureEnableEXTStr						(VkValidationFeatureEnableEXT value)						{ return tcu::Format::Enum<VkValidationFeatureEnableEXT>(getValidationFeatureEnableEXTName, value);											}
+inline tcu::Format::Enum<VkValidationFeatureDisableEXT>						getValidationFeatureDisableEXTStr						(VkValidationFeatureDisableEXT value)						{ return tcu::Format::Enum<VkValidationFeatureDisableEXT>(getValidationFeatureDisableEXTName, value);										}
+inline tcu::Format::Enum<VkComponentTypeNV>									getComponentTypeNVStr									(VkComponentTypeNV value)									{ return tcu::Format::Enum<VkComponentTypeNV>(getComponentTypeNVName, value);																}
+inline tcu::Format::Enum<VkScopeNV>											getScopeNVStr											(VkScopeNV value)											{ return tcu::Format::Enum<VkScopeNV>(getScopeNVName, value);																				}
+inline tcu::Format::Enum<VkCoverageReductionModeNV>							getCoverageReductionModeNVStr							(VkCoverageReductionModeNV value)							{ return tcu::Format::Enum<VkCoverageReductionModeNV>(getCoverageReductionModeNVName, value);												}
+inline tcu::Format::Enum<VkLineRasterizationModeEXT>						getLineRasterizationModeEXTStr							(VkLineRasterizationModeEXT value)							{ return tcu::Format::Enum<VkLineRasterizationModeEXT>(getLineRasterizationModeEXTName, value);												}
+inline tcu::Format::Enum<VkIndirectCommandsTokenTypeNV>						getIndirectCommandsTokenTypeNVStr						(VkIndirectCommandsTokenTypeNV value)						{ return tcu::Format::Enum<VkIndirectCommandsTokenTypeNV>(getIndirectCommandsTokenTypeNVName, value);										}
+inline tcu::Format::Enum<VkAccelerationStructureBuildTypeKHR>				getAccelerationStructureBuildTypeKHRStr					(VkAccelerationStructureBuildTypeKHR value)					{ return tcu::Format::Enum<VkAccelerationStructureBuildTypeKHR>(getAccelerationStructureBuildTypeKHRName, value);							}
+inline tcu::Format::Enum<VkFullScreenExclusiveEXT>							getFullScreenExclusiveEXTStr							(VkFullScreenExclusiveEXT value)							{ return tcu::Format::Enum<VkFullScreenExclusiveEXT>(getFullScreenExclusiveEXTName, value);													}
 
-inline std::ostream&	operator<<	(std::ostream& s, VkPipelineCacheHeaderVersion value)						{ return s << getPipelineCacheHeaderVersionStr(value);						}
 inline std::ostream&	operator<<	(std::ostream& s, VkResult value)											{ return s << getResultStr(value);											}
 inline std::ostream&	operator<<	(std::ostream& s, VkStructureType value)									{ return s << getStructureTypeStr(value);									}
+inline std::ostream&	operator<<	(std::ostream& s, VkImageLayout value)										{ return s << getImageLayoutStr(value);										}
+inline std::ostream&	operator<<	(std::ostream& s, VkObjectType value)										{ return s << getObjectTypeStr(value);										}
+inline std::ostream&	operator<<	(std::ostream& s, VkVendorId value)											{ return s << getVendorIdStr(value);										}
+inline std::ostream&	operator<<	(std::ostream& s, VkPipelineCacheHeaderVersion value)						{ return s << getPipelineCacheHeaderVersionStr(value);						}
 inline std::ostream&	operator<<	(std::ostream& s, VkSystemAllocationScope value)							{ return s << getSystemAllocationScopeStr(value);							}
 inline std::ostream&	operator<<	(std::ostream& s, VkInternalAllocationType value)							{ return s << getInternalAllocationTypeStr(value);							}
 inline std::ostream&	operator<<	(std::ostream& s, VkFormat value)											{ return s << getFormatStr(value);											}
-inline std::ostream&	operator<<	(std::ostream& s, VkImageType value)										{ return s << getImageTypeStr(value);										}
 inline std::ostream&	operator<<	(std::ostream& s, VkImageTiling value)										{ return s << getImageTilingStr(value);										}
+inline std::ostream&	operator<<	(std::ostream& s, VkImageType value)										{ return s << getImageTypeStr(value);										}
 inline std::ostream&	operator<<	(std::ostream& s, VkPhysicalDeviceType value)								{ return s << getPhysicalDeviceTypeStr(value);								}
 inline std::ostream&	operator<<	(std::ostream& s, VkQueryType value)										{ return s << getQueryTypeStr(value);										}
 inline std::ostream&	operator<<	(std::ostream& s, VkSharingMode value)										{ return s << getSharingModeStr(value);										}
-inline std::ostream&	operator<<	(std::ostream& s, VkImageLayout value)										{ return s << getImageLayoutStr(value);										}
-inline std::ostream&	operator<<	(std::ostream& s, VkImageViewType value)									{ return s << getImageViewTypeStr(value);									}
 inline std::ostream&	operator<<	(std::ostream& s, VkComponentSwizzle value)									{ return s << getComponentSwizzleStr(value);								}
+inline std::ostream&	operator<<	(std::ostream& s, VkImageViewType value)									{ return s << getImageViewTypeStr(value);									}
+inline std::ostream&	operator<<	(std::ostream& s, VkBlendFactor value)										{ return s << getBlendFactorStr(value);										}
+inline std::ostream&	operator<<	(std::ostream& s, VkBlendOp value)											{ return s << getBlendOpStr(value);											}
+inline std::ostream&	operator<<	(std::ostream& s, VkCompareOp value)										{ return s << getCompareOpStr(value);										}
+inline std::ostream&	operator<<	(std::ostream& s, VkDynamicState value)										{ return s << getDynamicStateStr(value);									}
+inline std::ostream&	operator<<	(std::ostream& s, VkFrontFace value)										{ return s << getFrontFaceStr(value);										}
 inline std::ostream&	operator<<	(std::ostream& s, VkVertexInputRate value)									{ return s << getVertexInputRateStr(value);									}
 inline std::ostream&	operator<<	(std::ostream& s, VkPrimitiveTopology value)								{ return s << getPrimitiveTopologyStr(value);								}
 inline std::ostream&	operator<<	(std::ostream& s, VkPolygonMode value)										{ return s << getPolygonModeStr(value);										}
-inline std::ostream&	operator<<	(std::ostream& s, VkFrontFace value)										{ return s << getFrontFaceStr(value);										}
-inline std::ostream&	operator<<	(std::ostream& s, VkCompareOp value)										{ return s << getCompareOpStr(value);										}
 inline std::ostream&	operator<<	(std::ostream& s, VkStencilOp value)										{ return s << getStencilOpStr(value);										}
 inline std::ostream&	operator<<	(std::ostream& s, VkLogicOp value)											{ return s << getLogicOpStr(value);											}
-inline std::ostream&	operator<<	(std::ostream& s, VkBlendFactor value)										{ return s << getBlendFactorStr(value);										}
-inline std::ostream&	operator<<	(std::ostream& s, VkBlendOp value)											{ return s << getBlendOpStr(value);											}
-inline std::ostream&	operator<<	(std::ostream& s, VkDynamicState value)										{ return s << getDynamicStateStr(value);									}
-inline std::ostream&	operator<<	(std::ostream& s, VkFilter value)											{ return s << getFilterStr(value);											}
-inline std::ostream&	operator<<	(std::ostream& s, VkSamplerMipmapMode value)								{ return s << getSamplerMipmapModeStr(value);								}
-inline std::ostream&	operator<<	(std::ostream& s, VkSamplerAddressMode value)								{ return s << getSamplerAddressModeStr(value);								}
 inline std::ostream&	operator<<	(std::ostream& s, VkBorderColor value)										{ return s << getBorderColorStr(value);										}
+inline std::ostream&	operator<<	(std::ostream& s, VkFilter value)											{ return s << getFilterStr(value);											}
+inline std::ostream&	operator<<	(std::ostream& s, VkSamplerAddressMode value)								{ return s << getSamplerAddressModeStr(value);								}
+inline std::ostream&	operator<<	(std::ostream& s, VkSamplerMipmapMode value)								{ return s << getSamplerMipmapModeStr(value);								}
 inline std::ostream&	operator<<	(std::ostream& s, VkDescriptorType value)									{ return s << getDescriptorTypeStr(value);									}
 inline std::ostream&	operator<<	(std::ostream& s, VkAttachmentLoadOp value)									{ return s << getAttachmentLoadOpStr(value);								}
 inline std::ostream&	operator<<	(std::ostream& s, VkAttachmentStoreOp value)								{ return s << getAttachmentStoreOpStr(value);								}
@@ -218,8 +220,6 @@
 inline std::ostream&	operator<<	(std::ostream& s, VkCommandBufferLevel value)								{ return s << getCommandBufferLevelStr(value);								}
 inline std::ostream&	operator<<	(std::ostream& s, VkIndexType value)										{ return s << getIndexTypeStr(value);										}
 inline std::ostream&	operator<<	(std::ostream& s, VkSubpassContents value)									{ return s << getSubpassContentsStr(value);									}
-inline std::ostream&	operator<<	(std::ostream& s, VkObjectType value)										{ return s << getObjectTypeStr(value);										}
-inline std::ostream&	operator<<	(std::ostream& s, VkVendorId value)											{ return s << getVendorIdStr(value);										}
 inline std::ostream&	operator<<	(std::ostream& s, VkPointClippingBehavior value)							{ return s << getPointClippingBehaviorStr(value);							}
 inline std::ostream&	operator<<	(std::ostream& s, VkTessellationDomainOrigin value)							{ return s << getTessellationDomainOriginStr(value);						}
 inline std::ostream&	operator<<	(std::ostream& s, VkSamplerYcbcrModelConversion value)						{ return s << getSamplerYcbcrModelConversionStr(value);						}
@@ -230,8 +230,8 @@
 inline std::ostream&	operator<<	(std::ostream& s, VkShaderFloatControlsIndependence value)					{ return s << getShaderFloatControlsIndependenceStr(value);					}
 inline std::ostream&	operator<<	(std::ostream& s, VkSamplerReductionMode value)								{ return s << getSamplerReductionModeStr(value);							}
 inline std::ostream&	operator<<	(std::ostream& s, VkSemaphoreType value)									{ return s << getSemaphoreTypeStr(value);									}
-inline std::ostream&	operator<<	(std::ostream& s, VkColorSpaceKHR value)									{ return s << getColorSpaceKHRStr(value);									}
 inline std::ostream&	operator<<	(std::ostream& s, VkPresentModeKHR value)									{ return s << getPresentModeKHRStr(value);									}
+inline std::ostream&	operator<<	(std::ostream& s, VkColorSpaceKHR value)									{ return s << getColorSpaceKHRStr(value);									}
 inline std::ostream&	operator<<	(std::ostream& s, VkPerformanceCounterUnitKHR value)						{ return s << getPerformanceCounterUnitKHRStr(value);						}
 inline std::ostream&	operator<<	(std::ostream& s, VkPerformanceCounterScopeKHR value)						{ return s << getPerformanceCounterScopeKHRStr(value);						}
 inline std::ostream&	operator<<	(std::ostream& s, VkPerformanceCounterStorageKHR value)						{ return s << getPerformanceCounterStorageKHRStr(value);					}
@@ -240,8 +240,6 @@
 inline std::ostream&	operator<<	(std::ostream& s, VkRasterizationOrderAMD value)							{ return s << getRasterizationOrderAMDStr(value);							}
 inline std::ostream&	operator<<	(std::ostream& s, VkShaderInfoTypeAMD value)								{ return s << getShaderInfoTypeAMDStr(value);								}
 inline std::ostream&	operator<<	(std::ostream& s, VkValidationCheckEXT value)								{ return s << getValidationCheckEXTStr(value);								}
-inline std::ostream&	operator<<	(std::ostream& s, VkIndirectCommandsTokenTypeNVX value)						{ return s << getIndirectCommandsTokenTypeNVXStr(value);					}
-inline std::ostream&	operator<<	(std::ostream& s, VkObjectEntryTypeNVX value)								{ return s << getObjectEntryTypeNVXStr(value);								}
 inline std::ostream&	operator<<	(std::ostream& s, VkDisplayPowerStateEXT value)								{ return s << getDisplayPowerStateEXTStr(value);							}
 inline std::ostream&	operator<<	(std::ostream& s, VkDeviceEventTypeEXT value)								{ return s << getDeviceEventTypeEXTStr(value);								}
 inline std::ostream&	operator<<	(std::ostream& s, VkDisplayEventTypeEXT value)								{ return s << getDisplayEventTypeEXTStr(value);								}
@@ -253,11 +251,11 @@
 inline std::ostream&	operator<<	(std::ostream& s, VkValidationCacheHeaderVersionEXT value)					{ return s << getValidationCacheHeaderVersionEXTStr(value);					}
 inline std::ostream&	operator<<	(std::ostream& s, VkShadingRatePaletteEntryNV value)						{ return s << getShadingRatePaletteEntryNVStr(value);						}
 inline std::ostream&	operator<<	(std::ostream& s, VkCoarseSampleOrderTypeNV value)							{ return s << getCoarseSampleOrderTypeNVStr(value);							}
-inline std::ostream&	operator<<	(std::ostream& s, VkAccelerationStructureTypeNV value)						{ return s << getAccelerationStructureTypeNVStr(value);						}
-inline std::ostream&	operator<<	(std::ostream& s, VkRayTracingShaderGroupTypeNV value)						{ return s << getRayTracingShaderGroupTypeNVStr(value);						}
-inline std::ostream&	operator<<	(std::ostream& s, VkGeometryTypeNV value)									{ return s << getGeometryTypeNVStr(value);									}
-inline std::ostream&	operator<<	(std::ostream& s, VkCopyAccelerationStructureModeNV value)					{ return s << getCopyAccelerationStructureModeNVStr(value);					}
-inline std::ostream&	operator<<	(std::ostream& s, VkAccelerationStructureMemoryRequirementsTypeNV value)	{ return s << getAccelerationStructureMemoryRequirementsTypeNVStr(value);	}
+inline std::ostream&	operator<<	(std::ostream& s, VkRayTracingShaderGroupTypeKHR value)						{ return s << getRayTracingShaderGroupTypeKHRStr(value);					}
+inline std::ostream&	operator<<	(std::ostream& s, VkGeometryTypeKHR value)									{ return s << getGeometryTypeKHRStr(value);									}
+inline std::ostream&	operator<<	(std::ostream& s, VkAccelerationStructureTypeKHR value)						{ return s << getAccelerationStructureTypeKHRStr(value);					}
+inline std::ostream&	operator<<	(std::ostream& s, VkCopyAccelerationStructureModeKHR value)					{ return s << getCopyAccelerationStructureModeKHRStr(value);				}
+inline std::ostream&	operator<<	(std::ostream& s, VkAccelerationStructureMemoryRequirementsTypeKHR value)	{ return s << getAccelerationStructureMemoryRequirementsTypeKHRStr(value);	}
 inline std::ostream&	operator<<	(std::ostream& s, VkQueueGlobalPriorityEXT value)							{ return s << getQueueGlobalPriorityEXTStr(value);							}
 inline std::ostream&	operator<<	(std::ostream& s, VkTimeDomainEXT value)									{ return s << getTimeDomainEXTStr(value);									}
 inline std::ostream&	operator<<	(std::ostream& s, VkMemoryOverallocationBehaviorAMD value)					{ return s << getMemoryOverallocationBehaviorAMDStr(value);					}
@@ -272,20 +270,23 @@
 inline std::ostream&	operator<<	(std::ostream& s, VkScopeNV value)											{ return s << getScopeNVStr(value);											}
 inline std::ostream&	operator<<	(std::ostream& s, VkCoverageReductionModeNV value)							{ return s << getCoverageReductionModeNVStr(value);							}
 inline std::ostream&	operator<<	(std::ostream& s, VkLineRasterizationModeEXT value)							{ return s << getLineRasterizationModeEXTStr(value);						}
+inline std::ostream&	operator<<	(std::ostream& s, VkIndirectCommandsTokenTypeNV value)						{ return s << getIndirectCommandsTokenTypeNVStr(value);						}
+inline std::ostream&	operator<<	(std::ostream& s, VkAccelerationStructureBuildTypeKHR value)				{ return s << getAccelerationStructureBuildTypeKHRStr(value);				}
 inline std::ostream&	operator<<	(std::ostream& s, VkFullScreenExclusiveEXT value)							{ return s << getFullScreenExclusiveEXTStr(value);							}
 
+tcu::Format::Bitfield<32>	getAccessFlagsStr											(VkAccessFlags value);
+tcu::Format::Bitfield<32>	getImageAspectFlagsStr										(VkImageAspectFlags value);
 tcu::Format::Bitfield<32>	getFormatFeatureFlagsStr									(VkFormatFeatureFlags value);
-tcu::Format::Bitfield<32>	getImageUsageFlagsStr										(VkImageUsageFlags value);
 tcu::Format::Bitfield<32>	getImageCreateFlagsStr										(VkImageCreateFlags value);
 tcu::Format::Bitfield<32>	getSampleCountFlagsStr										(VkSampleCountFlags value);
-tcu::Format::Bitfield<32>	getQueueFlagsStr											(VkQueueFlags value);
-tcu::Format::Bitfield<32>	getMemoryPropertyFlagsStr									(VkMemoryPropertyFlags value);
+tcu::Format::Bitfield<32>	getImageUsageFlagsStr										(VkImageUsageFlags value);
 tcu::Format::Bitfield<32>	getMemoryHeapFlagsStr										(VkMemoryHeapFlags value);
+tcu::Format::Bitfield<32>	getMemoryPropertyFlagsStr									(VkMemoryPropertyFlags value);
+tcu::Format::Bitfield<32>	getQueueFlagsStr											(VkQueueFlags value);
 tcu::Format::Bitfield<32>	getDeviceQueueCreateFlagsStr								(VkDeviceQueueCreateFlags value);
 tcu::Format::Bitfield<32>	getPipelineStageFlagsStr									(VkPipelineStageFlags value);
-tcu::Format::Bitfield<32>	getImageAspectFlagsStr										(VkImageAspectFlags value);
-tcu::Format::Bitfield<32>	getSparseImageFormatFlagsStr								(VkSparseImageFormatFlags value);
 tcu::Format::Bitfield<32>	getSparseMemoryBindFlagsStr									(VkSparseMemoryBindFlags value);
+tcu::Format::Bitfield<32>	getSparseImageFormatFlagsStr								(VkSparseImageFormatFlags value);
 tcu::Format::Bitfield<32>	getFenceCreateFlagsStr										(VkFenceCreateFlags value);
 tcu::Format::Bitfield<32>	getQueryPipelineStatisticFlagsStr							(VkQueryPipelineStatisticFlags value);
 tcu::Format::Bitfield<32>	getQueryResultFlagsStr										(VkQueryResultFlags value);
@@ -293,20 +294,20 @@
 tcu::Format::Bitfield<32>	getBufferUsageFlagsStr										(VkBufferUsageFlags value);
 tcu::Format::Bitfield<32>	getImageViewCreateFlagsStr									(VkImageViewCreateFlags value);
 tcu::Format::Bitfield<32>	getShaderModuleCreateFlagsStr								(VkShaderModuleCreateFlags value);
+tcu::Format::Bitfield<32>	getPipelineCacheCreateFlagsStr								(VkPipelineCacheCreateFlags value);
+tcu::Format::Bitfield<32>	getColorComponentFlagsStr									(VkColorComponentFlags value);
 tcu::Format::Bitfield<32>	getPipelineCreateFlagsStr									(VkPipelineCreateFlags value);
 tcu::Format::Bitfield<32>	getPipelineShaderStageCreateFlagsStr						(VkPipelineShaderStageCreateFlags value);
 tcu::Format::Bitfield<32>	getShaderStageFlagsStr										(VkShaderStageFlags value);
 tcu::Format::Bitfield<32>	getCullModeFlagsStr											(VkCullModeFlags value);
-tcu::Format::Bitfield<32>	getColorComponentFlagsStr									(VkColorComponentFlags value);
 tcu::Format::Bitfield<32>	getSamplerCreateFlagsStr									(VkSamplerCreateFlags value);
-tcu::Format::Bitfield<32>	getDescriptorSetLayoutCreateFlagsStr						(VkDescriptorSetLayoutCreateFlags value);
 tcu::Format::Bitfield<32>	getDescriptorPoolCreateFlagsStr								(VkDescriptorPoolCreateFlags value);
+tcu::Format::Bitfield<32>	getDescriptorSetLayoutCreateFlagsStr						(VkDescriptorSetLayoutCreateFlags value);
+tcu::Format::Bitfield<32>	getAttachmentDescriptionFlagsStr							(VkAttachmentDescriptionFlags value);
+tcu::Format::Bitfield<32>	getDependencyFlagsStr										(VkDependencyFlags value);
 tcu::Format::Bitfield<32>	getFramebufferCreateFlagsStr								(VkFramebufferCreateFlags value);
 tcu::Format::Bitfield<32>	getRenderPassCreateFlagsStr									(VkRenderPassCreateFlags value);
-tcu::Format::Bitfield<32>	getAttachmentDescriptionFlagsStr							(VkAttachmentDescriptionFlags value);
 tcu::Format::Bitfield<32>	getSubpassDescriptionFlagsStr								(VkSubpassDescriptionFlags value);
-tcu::Format::Bitfield<32>	getAccessFlagsStr											(VkAccessFlags value);
-tcu::Format::Bitfield<32>	getDependencyFlagsStr										(VkDependencyFlags value);
 tcu::Format::Bitfield<32>	getCommandPoolCreateFlagsStr								(VkCommandPoolCreateFlags value);
 tcu::Format::Bitfield<32>	getCommandPoolResetFlagsStr									(VkCommandPoolResetFlags value);
 tcu::Format::Bitfield<32>	getCommandBufferUsageFlagsStr								(VkCommandBufferUsageFlags value);
@@ -338,18 +339,20 @@
 tcu::Format::Bitfield<32>	getExternalMemoryHandleTypeFlagsNVStr						(VkExternalMemoryHandleTypeFlagsNV value);
 tcu::Format::Bitfield<32>	getExternalMemoryFeatureFlagsNVStr							(VkExternalMemoryFeatureFlagsNV value);
 tcu::Format::Bitfield<32>	getConditionalRenderingFlagsEXTStr							(VkConditionalRenderingFlagsEXT value);
-tcu::Format::Bitfield<32>	getIndirectCommandsLayoutUsageFlagsNVXStr					(VkIndirectCommandsLayoutUsageFlagsNVX value);
-tcu::Format::Bitfield<32>	getObjectEntryUsageFlagsNVXStr								(VkObjectEntryUsageFlagsNVX value);
 tcu::Format::Bitfield<32>	getSurfaceCounterFlagsEXTStr								(VkSurfaceCounterFlagsEXT value);
 tcu::Format::Bitfield<32>	getDebugUtilsMessageSeverityFlagsEXTStr						(VkDebugUtilsMessageSeverityFlagsEXT value);
 tcu::Format::Bitfield<32>	getDebugUtilsMessageTypeFlagsEXTStr							(VkDebugUtilsMessageTypeFlagsEXT value);
-tcu::Format::Bitfield<32>	getGeometryFlagsNVStr										(VkGeometryFlagsNV value);
-tcu::Format::Bitfield<32>	getGeometryInstanceFlagsNVStr								(VkGeometryInstanceFlagsNV value);
-tcu::Format::Bitfield<32>	getBuildAccelerationStructureFlagsNVStr						(VkBuildAccelerationStructureFlagsNV value);
+tcu::Format::Bitfield<32>	getGeometryFlagsKHRStr										(VkGeometryFlagsKHR value);
+tcu::Format::Bitfield<32>	getGeometryInstanceFlagsKHRStr								(VkGeometryInstanceFlagsKHR value);
+tcu::Format::Bitfield<32>	getBuildAccelerationStructureFlagsKHRStr					(VkBuildAccelerationStructureFlagsKHR value);
 tcu::Format::Bitfield<32>	getPipelineCompilerControlFlagsAMDStr						(VkPipelineCompilerControlFlagsAMD value);
 tcu::Format::Bitfield<32>	getPipelineCreationFeedbackFlagsEXTStr						(VkPipelineCreationFeedbackFlagsEXT value);
 tcu::Format::Bitfield<32>	getShaderCorePropertiesFlagsAMDStr							(VkShaderCorePropertiesFlagsAMD value);
 tcu::Format::Bitfield<32>	getToolPurposeFlagsEXTStr									(VkToolPurposeFlagsEXT value);
+tcu::Format::Bitfield<32>	getIndirectStateFlagsNVStr									(VkIndirectStateFlagsNV value);
+tcu::Format::Bitfield<32>	getIndirectCommandsLayoutUsageFlagsNVStr					(VkIndirectCommandsLayoutUsageFlagsNV value);
+tcu::Format::Bitfield<32>	getPrivateDataSlotCreateFlagsEXTStr							(VkPrivateDataSlotCreateFlagsEXT value);
+tcu::Format::Bitfield<32>	getDeviceDiagnosticsConfigFlagsNVStr						(VkDeviceDiagnosticsConfigFlagsNV value);
 tcu::Format::Bitfield<32>	getInstanceCreateFlagsStr									(VkInstanceCreateFlags value);
 tcu::Format::Bitfield<32>	getDeviceCreateFlagsStr										(VkDeviceCreateFlags value);
 tcu::Format::Bitfield<32>	getMemoryMapFlagsStr										(VkMemoryMapFlags value);
@@ -357,7 +360,6 @@
 tcu::Format::Bitfield<32>	getEventCreateFlagsStr										(VkEventCreateFlags value);
 tcu::Format::Bitfield<32>	getQueryPoolCreateFlagsStr									(VkQueryPoolCreateFlags value);
 tcu::Format::Bitfield<32>	getBufferViewCreateFlagsStr									(VkBufferViewCreateFlags value);
-tcu::Format::Bitfield<32>	getPipelineCacheCreateFlagsStr								(VkPipelineCacheCreateFlags value);
 tcu::Format::Bitfield<32>	getPipelineVertexInputStateCreateFlagsStr					(VkPipelineVertexInputStateCreateFlags value);
 tcu::Format::Bitfield<32>	getPipelineInputAssemblyStateCreateFlagsStr					(VkPipelineInputAssemblyStateCreateFlags value);
 tcu::Format::Bitfield<32>	getPipelineTessellationStateCreateFlagsStr					(VkPipelineTessellationStateCreateFlags value);
@@ -396,39 +398,52 @@
 tcu::Format::Bitfield<32>	getWin32SurfaceCreateFlagsKHRStr							(VkWin32SurfaceCreateFlagsKHR value);
 tcu::Format::Bitfield<32>	getXcbSurfaceCreateFlagsKHRStr								(VkXcbSurfaceCreateFlagsKHR value);
 tcu::Format::Bitfield<32>	getXlibSurfaceCreateFlagsKHRStr								(VkXlibSurfaceCreateFlagsKHR value);
+tcu::Format::Bitfield<32>	getBuildAccelerationStructureFlagsNVStr						(VkBuildAccelerationStructureFlagsNV value);
 
-std::ostream&	operator<<	(std::ostream& s, const VkApplicationInfo& value);
-std::ostream&	operator<<	(std::ostream& s, const VkInstanceCreateInfo& value);
-std::ostream&	operator<<	(std::ostream& s, const VkAllocationCallbacks& value);
-std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceFeatures& value);
-std::ostream&	operator<<	(std::ostream& s, const VkFormatProperties& value);
+std::ostream&	operator<<	(std::ostream& s, const VkExtent2D& value);
 std::ostream&	operator<<	(std::ostream& s, const VkExtent3D& value);
+std::ostream&	operator<<	(std::ostream& s, const VkOffset2D& value);
+std::ostream&	operator<<	(std::ostream& s, const VkOffset3D& value);
+std::ostream&	operator<<	(std::ostream& s, const VkRect2D& value);
+std::ostream&	operator<<	(std::ostream& s, const VkBaseInStructure& value);
+std::ostream&	operator<<	(std::ostream& s, const VkBaseOutStructure& value);
+std::ostream&	operator<<	(std::ostream& s, const VkBufferMemoryBarrier& value);
+std::ostream&	operator<<	(std::ostream& s, const VkDispatchIndirectCommand& value);
+std::ostream&	operator<<	(std::ostream& s, const VkDrawIndexedIndirectCommand& value);
+std::ostream&	operator<<	(std::ostream& s, const VkDrawIndirectCommand& value);
+std::ostream&	operator<<	(std::ostream& s, const VkImageSubresourceRange& value);
+std::ostream&	operator<<	(std::ostream& s, const VkImageMemoryBarrier& value);
+std::ostream&	operator<<	(std::ostream& s, const VkMemoryBarrier& value);
+std::ostream&	operator<<	(std::ostream& s, const VkAllocationCallbacks& value);
+std::ostream&	operator<<	(std::ostream& s, const VkApplicationInfo& value);
+std::ostream&	operator<<	(std::ostream& s, const VkFormatProperties& value);
 std::ostream&	operator<<	(std::ostream& s, const VkImageFormatProperties& value);
+std::ostream&	operator<<	(std::ostream& s, const VkInstanceCreateInfo& value);
+std::ostream&	operator<<	(std::ostream& s, const VkMemoryHeap& value);
+std::ostream&	operator<<	(std::ostream& s, const VkMemoryType& value);
+std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceFeatures& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceLimits& value);
+std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceMemoryProperties& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceSparseProperties& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceProperties& value);
 std::ostream&	operator<<	(std::ostream& s, const VkQueueFamilyProperties& value);
-std::ostream&	operator<<	(std::ostream& s, const VkMemoryType& value);
-std::ostream&	operator<<	(std::ostream& s, const VkMemoryHeap& value);
-std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceMemoryProperties& value);
 std::ostream&	operator<<	(std::ostream& s, const VkDeviceQueueCreateInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkDeviceCreateInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkExtensionProperties& value);
 std::ostream&	operator<<	(std::ostream& s, const VkLayerProperties& value);
 std::ostream&	operator<<	(std::ostream& s, const VkSubmitInfo& value);
-std::ostream&	operator<<	(std::ostream& s, const VkMemoryAllocateInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkMappedMemoryRange& value);
+std::ostream&	operator<<	(std::ostream& s, const VkMemoryAllocateInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkMemoryRequirements& value);
-std::ostream&	operator<<	(std::ostream& s, const VkSparseImageFormatProperties& value);
-std::ostream&	operator<<	(std::ostream& s, const VkSparseImageMemoryRequirements& value);
 std::ostream&	operator<<	(std::ostream& s, const VkSparseMemoryBind& value);
 std::ostream&	operator<<	(std::ostream& s, const VkSparseBufferMemoryBindInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkSparseImageOpaqueMemoryBindInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkImageSubresource& value);
-std::ostream&	operator<<	(std::ostream& s, const VkOffset3D& value);
 std::ostream&	operator<<	(std::ostream& s, const VkSparseImageMemoryBind& value);
 std::ostream&	operator<<	(std::ostream& s, const VkSparseImageMemoryBindInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkBindSparseInfo& value);
+std::ostream&	operator<<	(std::ostream& s, const VkSparseImageFormatProperties& value);
+std::ostream&	operator<<	(std::ostream& s, const VkSparseImageMemoryRequirements& value);
 std::ostream&	operator<<	(std::ostream& s, const VkFenceCreateInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkSemaphoreCreateInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkEventCreateInfo& value);
@@ -438,22 +453,19 @@
 std::ostream&	operator<<	(std::ostream& s, const VkImageCreateInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkSubresourceLayout& value);
 std::ostream&	operator<<	(std::ostream& s, const VkComponentMapping& value);
-std::ostream&	operator<<	(std::ostream& s, const VkImageSubresourceRange& value);
 std::ostream&	operator<<	(std::ostream& s, const VkImageViewCreateInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkShaderModuleCreateInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPipelineCacheCreateInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkSpecializationMapEntry& value);
 std::ostream&	operator<<	(std::ostream& s, const VkSpecializationInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPipelineShaderStageCreateInfo& value);
+std::ostream&	operator<<	(std::ostream& s, const VkComputePipelineCreateInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkVertexInputBindingDescription& value);
 std::ostream&	operator<<	(std::ostream& s, const VkVertexInputAttributeDescription& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPipelineVertexInputStateCreateInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPipelineInputAssemblyStateCreateInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPipelineTessellationStateCreateInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkViewport& value);
-std::ostream&	operator<<	(std::ostream& s, const VkOffset2D& value);
-std::ostream&	operator<<	(std::ostream& s, const VkExtent2D& value);
-std::ostream&	operator<<	(std::ostream& s, const VkRect2D& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPipelineViewportStateCreateInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPipelineRasterizationStateCreateInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPipelineMultisampleStateCreateInfo& value);
@@ -463,22 +475,21 @@
 std::ostream&	operator<<	(std::ostream& s, const VkPipelineColorBlendStateCreateInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPipelineDynamicStateCreateInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkGraphicsPipelineCreateInfo& value);
-std::ostream&	operator<<	(std::ostream& s, const VkComputePipelineCreateInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPushConstantRange& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPipelineLayoutCreateInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkSamplerCreateInfo& value);
-std::ostream&	operator<<	(std::ostream& s, const VkDescriptorSetLayoutBinding& value);
-std::ostream&	operator<<	(std::ostream& s, const VkDescriptorSetLayoutCreateInfo& value);
+std::ostream&	operator<<	(std::ostream& s, const VkCopyDescriptorSet& value);
+std::ostream&	operator<<	(std::ostream& s, const VkDescriptorBufferInfo& value);
+std::ostream&	operator<<	(std::ostream& s, const VkDescriptorImageInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkDescriptorPoolSize& value);
 std::ostream&	operator<<	(std::ostream& s, const VkDescriptorPoolCreateInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkDescriptorSetAllocateInfo& value);
-std::ostream&	operator<<	(std::ostream& s, const VkDescriptorImageInfo& value);
-std::ostream&	operator<<	(std::ostream& s, const VkDescriptorBufferInfo& value);
+std::ostream&	operator<<	(std::ostream& s, const VkDescriptorSetLayoutBinding& value);
+std::ostream&	operator<<	(std::ostream& s, const VkDescriptorSetLayoutCreateInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkWriteDescriptorSet& value);
-std::ostream&	operator<<	(std::ostream& s, const VkCopyDescriptorSet& value);
-std::ostream&	operator<<	(std::ostream& s, const VkFramebufferCreateInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkAttachmentDescription& value);
 std::ostream&	operator<<	(std::ostream& s, const VkAttachmentReference& value);
+std::ostream&	operator<<	(std::ostream& s, const VkFramebufferCreateInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkSubpassDescription& value);
 std::ostream&	operator<<	(std::ostream& s, const VkSubpassDependency& value);
 std::ostream&	operator<<	(std::ostream& s, const VkRenderPassCreateInfo& value);
@@ -488,24 +499,16 @@
 std::ostream&	operator<<	(std::ostream& s, const VkCommandBufferBeginInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkBufferCopy& value);
 std::ostream&	operator<<	(std::ostream& s, const VkImageSubresourceLayers& value);
-std::ostream&	operator<<	(std::ostream& s, const VkImageCopy& value);
-std::ostream&	operator<<	(std::ostream& s, const VkImageBlit& value);
 std::ostream&	operator<<	(std::ostream& s, const VkBufferImageCopy& value);
 std::ostream&	operator<<	(std::ostream& s, const VkClearColorValue& value);
 std::ostream&	operator<<	(std::ostream& s, const VkClearDepthStencilValue& value);
 std::ostream&	operator<<	(std::ostream& s, const VkClearValue& value);
 std::ostream&	operator<<	(std::ostream& s, const VkClearAttachment& value);
 std::ostream&	operator<<	(std::ostream& s, const VkClearRect& value);
+std::ostream&	operator<<	(std::ostream& s, const VkImageBlit& value);
+std::ostream&	operator<<	(std::ostream& s, const VkImageCopy& value);
 std::ostream&	operator<<	(std::ostream& s, const VkImageResolve& value);
-std::ostream&	operator<<	(std::ostream& s, const VkMemoryBarrier& value);
-std::ostream&	operator<<	(std::ostream& s, const VkBufferMemoryBarrier& value);
-std::ostream&	operator<<	(std::ostream& s, const VkImageMemoryBarrier& value);
 std::ostream&	operator<<	(std::ostream& s, const VkRenderPassBeginInfo& value);
-std::ostream&	operator<<	(std::ostream& s, const VkDispatchIndirectCommand& value);
-std::ostream&	operator<<	(std::ostream& s, const VkDrawIndexedIndirectCommand& value);
-std::ostream&	operator<<	(std::ostream& s, const VkDrawIndirectCommand& value);
-std::ostream&	operator<<	(std::ostream& s, const VkBaseOutStructure& value);
-std::ostream&	operator<<	(std::ostream& s, const VkBaseInStructure& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceSubgroupProperties& value);
 std::ostream&	operator<<	(std::ostream& s, const VkBindBufferMemoryInfo& value);
 std::ostream&	operator<<	(std::ostream& s, const VkBindImageMemoryInfo& value);
@@ -635,12 +638,12 @@
 std::ostream&	operator<<	(std::ostream& s, const VkDeviceGroupPresentCapabilitiesKHR& value);
 std::ostream&	operator<<	(std::ostream& s, const VkDeviceGroupPresentInfoKHR& value);
 std::ostream&	operator<<	(std::ostream& s, const VkDeviceGroupSwapchainCreateInfoKHR& value);
-std::ostream&	operator<<	(std::ostream& s, const VkDisplayPropertiesKHR& value);
 std::ostream&	operator<<	(std::ostream& s, const VkDisplayModeParametersKHR& value);
-std::ostream&	operator<<	(std::ostream& s, const VkDisplayModePropertiesKHR& value);
 std::ostream&	operator<<	(std::ostream& s, const VkDisplayModeCreateInfoKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkDisplayModePropertiesKHR& value);
 std::ostream&	operator<<	(std::ostream& s, const VkDisplayPlaneCapabilitiesKHR& value);
 std::ostream&	operator<<	(std::ostream& s, const VkDisplayPlanePropertiesKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkDisplayPropertiesKHR& value);
 std::ostream&	operator<<	(std::ostream& s, const VkDisplaySurfaceCreateInfoKHR& value);
 std::ostream&	operator<<	(std::ostream& s, const VkDisplayPresentInfoKHR& value);
 std::ostream&	operator<<	(std::ostream& s, const VkImportMemoryFdInfoKHR& value);
@@ -692,6 +695,7 @@
 std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceTransformFeedbackPropertiesEXT& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPipelineRasterizationStateStreamCreateInfoEXT& value);
 std::ostream&	operator<<	(std::ostream& s, const VkImageViewHandleInfoNVX& value);
+std::ostream&	operator<<	(std::ostream& s, const VkImageViewAddressPropertiesNVX& value);
 std::ostream&	operator<<	(std::ostream& s, const VkTextureLODGatherFormatPropertiesAMD& value);
 std::ostream&	operator<<	(std::ostream& s, const VkShaderResourceUsageAMD& value);
 std::ostream&	operator<<	(std::ostream& s, const VkShaderStatisticsInfoAMD& value);
@@ -706,20 +710,6 @@
 std::ostream&	operator<<	(std::ostream& s, const VkConditionalRenderingBeginInfoEXT& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceConditionalRenderingFeaturesEXT& value);
 std::ostream&	operator<<	(std::ostream& s, const VkCommandBufferInheritanceConditionalRenderingInfoEXT& value);
-std::ostream&	operator<<	(std::ostream& s, const VkDeviceGeneratedCommandsFeaturesNVX& value);
-std::ostream&	operator<<	(std::ostream& s, const VkDeviceGeneratedCommandsLimitsNVX& value);
-std::ostream&	operator<<	(std::ostream& s, const VkIndirectCommandsTokenNVX& value);
-std::ostream&	operator<<	(std::ostream& s, const VkIndirectCommandsLayoutTokenNVX& value);
-std::ostream&	operator<<	(std::ostream& s, const VkIndirectCommandsLayoutCreateInfoNVX& value);
-std::ostream&	operator<<	(std::ostream& s, const VkCmdProcessCommandsInfoNVX& value);
-std::ostream&	operator<<	(std::ostream& s, const VkCmdReserveSpaceForCommandsInfoNVX& value);
-std::ostream&	operator<<	(std::ostream& s, const VkObjectTableCreateInfoNVX& value);
-std::ostream&	operator<<	(std::ostream& s, const VkObjectTableEntryNVX& value);
-std::ostream&	operator<<	(std::ostream& s, const VkObjectTablePipelineEntryNVX& value);
-std::ostream&	operator<<	(std::ostream& s, const VkObjectTableDescriptorSetEntryNVX& value);
-std::ostream&	operator<<	(std::ostream& s, const VkObjectTableVertexBufferEntryNVX& value);
-std::ostream&	operator<<	(std::ostream& s, const VkObjectTableIndexBufferEntryNVX& value);
-std::ostream&	operator<<	(std::ostream& s, const VkObjectTablePushConstantEntryNVX& value);
 std::ostream&	operator<<	(std::ostream& s, const VkViewportWScalingNV& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPipelineViewportWScalingStateCreateInfoNV& value);
 std::ostream&	operator<<	(std::ostream& s, const VkSurfaceCapabilities2EXT& value);
@@ -742,11 +732,11 @@
 std::ostream&	operator<<	(std::ostream& s, const VkPipelineRasterizationDepthClipStateCreateInfoEXT& value);
 std::ostream&	operator<<	(std::ostream& s, const VkXYColorEXT& value);
 std::ostream&	operator<<	(std::ostream& s, const VkHdrMetadataEXT& value);
-std::ostream&	operator<<	(std::ostream& s, const VkDebugUtilsObjectNameInfoEXT& value);
-std::ostream&	operator<<	(std::ostream& s, const VkDebugUtilsObjectTagInfoEXT& value);
 std::ostream&	operator<<	(std::ostream& s, const VkDebugUtilsLabelEXT& value);
+std::ostream&	operator<<	(std::ostream& s, const VkDebugUtilsObjectNameInfoEXT& value);
 std::ostream&	operator<<	(std::ostream& s, const VkDebugUtilsMessengerCallbackDataEXT& value);
 std::ostream&	operator<<	(std::ostream& s, const VkDebugUtilsMessengerCreateInfoEXT& value);
+std::ostream&	operator<<	(std::ostream& s, const VkDebugUtilsObjectTagInfoEXT& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceInlineUniformBlockFeaturesEXT& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceInlineUniformBlockPropertiesEXT& value);
 std::ostream&	operator<<	(std::ostream& s, const VkWriteDescriptorSetInlineUniformBlockEXT& value);
@@ -789,10 +779,13 @@
 std::ostream&	operator<<	(std::ostream& s, const VkGeometryNV& value);
 std::ostream&	operator<<	(std::ostream& s, const VkAccelerationStructureInfoNV& value);
 std::ostream&	operator<<	(std::ostream& s, const VkAccelerationStructureCreateInfoNV& value);
-std::ostream&	operator<<	(std::ostream& s, const VkBindAccelerationStructureMemoryInfoNV& value);
-std::ostream&	operator<<	(std::ostream& s, const VkWriteDescriptorSetAccelerationStructureNV& value);
+std::ostream&	operator<<	(std::ostream& s, const VkBindAccelerationStructureMemoryInfoKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkWriteDescriptorSetAccelerationStructureKHR& value);
 std::ostream&	operator<<	(std::ostream& s, const VkAccelerationStructureMemoryRequirementsInfoNV& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceRayTracingPropertiesNV& value);
+std::ostream&	operator<<	(std::ostream& s, const VkTransformMatrixKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkAabbPositionsKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkAccelerationStructureInstanceKHR& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPipelineRepresentativeFragmentTestStateCreateInfoNV& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceImageViewImageFormatInfoEXT& value);
@@ -825,7 +818,7 @@
 std::ostream&	operator<<	(std::ostream& s, const VkPerformanceValueDataINTEL& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPerformanceValueINTEL& value);
 std::ostream&	operator<<	(std::ostream& s, const VkInitializePerformanceApiInfoINTEL& value);
-std::ostream&	operator<<	(std::ostream& s, const VkQueryPoolCreateInfoINTEL& value);
+std::ostream&	operator<<	(std::ostream& s, const VkQueryPoolPerformanceQueryCreateInfoINTEL& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPerformanceMarkerInfoINTEL& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPerformanceStreamMarkerInfoINTEL& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPerformanceOverrideInfoINTEL& value);
@@ -862,9 +855,38 @@
 std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceLineRasterizationPropertiesEXT& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPipelineRasterizationLineStateCreateInfoEXT& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceIndexTypeUint8FeaturesEXT& value);
+std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT& value);
+std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV& value);
+std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV& value);
+std::ostream&	operator<<	(std::ostream& s, const VkGraphicsShaderGroupCreateInfoNV& value);
+std::ostream&	operator<<	(std::ostream& s, const VkGraphicsPipelineShaderGroupsCreateInfoNV& value);
+std::ostream&	operator<<	(std::ostream& s, const VkBindShaderGroupIndirectCommandNV& value);
+std::ostream&	operator<<	(std::ostream& s, const VkBindIndexBufferIndirectCommandNV& value);
+std::ostream&	operator<<	(std::ostream& s, const VkBindVertexBufferIndirectCommandNV& value);
+std::ostream&	operator<<	(std::ostream& s, const VkSetStateFlagsIndirectCommandNV& value);
+std::ostream&	operator<<	(std::ostream& s, const VkIndirectCommandsStreamNV& value);
+std::ostream&	operator<<	(std::ostream& s, const VkIndirectCommandsLayoutTokenNV& value);
+std::ostream&	operator<<	(std::ostream& s, const VkIndirectCommandsLayoutCreateInfoNV& value);
+std::ostream&	operator<<	(std::ostream& s, const VkGeneratedCommandsInfoNV& value);
+std::ostream&	operator<<	(std::ostream& s, const VkGeneratedCommandsMemoryRequirementsInfoNV& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT& value);
+std::ostream&	operator<<	(std::ostream& s, const VkRenderPassTransformBeginInfoQCOM& value);
+std::ostream&	operator<<	(std::ostream& s, const VkCommandBufferInheritanceRenderPassTransformInfoQCOM& value);
+std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceRobustness2FeaturesEXT& value);
+std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceRobustness2PropertiesEXT& value);
+std::ostream&	operator<<	(std::ostream& s, const VkSamplerCustomBorderColorCreateInfoEXT& value);
+std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceCustomBorderColorPropertiesEXT& value);
+std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceCustomBorderColorFeaturesEXT& value);
+std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDevicePrivateDataFeaturesEXT& value);
+std::ostream&	operator<<	(std::ostream& s, const VkDevicePrivateDataCreateInfoEXT& value);
+std::ostream&	operator<<	(std::ostream& s, const VkPrivateDataSlotCreateInfoEXT& value);
+std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT& value);
+std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceDiagnosticsConfigFeaturesNV& value);
+std::ostream&	operator<<	(std::ostream& s, const VkDeviceDiagnosticsConfigCreateInfoNV& value);
+std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT& value);
+std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT& value);
 std::ostream&	operator<<	(std::ostream& s, const VkAndroidSurfaceCreateInfoKHR& value);
 std::ostream&	operator<<	(std::ostream& s, const VkAndroidHardwareBufferUsageANDROID& value);
 std::ostream&	operator<<	(std::ostream& s, const VkAndroidHardwareBufferPropertiesANDROID& value);
@@ -872,6 +894,32 @@
 std::ostream&	operator<<	(std::ostream& s, const VkImportAndroidHardwareBufferInfoANDROID& value);
 std::ostream&	operator<<	(std::ostream& s, const VkMemoryGetAndroidHardwareBufferInfoANDROID& value);
 std::ostream&	operator<<	(std::ostream& s, const VkExternalFormatANDROID& value);
+std::ostream&	operator<<	(std::ostream& s, const VkDeferredOperationInfoKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkPipelineLibraryCreateInfoKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkDeviceOrHostAddressKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkDeviceOrHostAddressConstKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkAccelerationStructureBuildOffsetInfoKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkRayTracingShaderGroupCreateInfoKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkRayTracingPipelineInterfaceCreateInfoKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkRayTracingPipelineCreateInfoKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkAccelerationStructureGeometryTrianglesDataKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkAccelerationStructureGeometryAabbsDataKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkAccelerationStructureGeometryInstancesDataKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkAccelerationStructureGeometryDataKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkAccelerationStructureGeometryKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkAccelerationStructureBuildGeometryInfoKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkAccelerationStructureCreateGeometryTypeInfoKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkAccelerationStructureCreateInfoKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkAccelerationStructureMemoryRequirementsInfoKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceRayTracingFeaturesKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkPhysicalDeviceRayTracingPropertiesKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkAccelerationStructureDeviceAddressInfoKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkAccelerationStructureVersionKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkStridedBufferRegionKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkTraceRaysIndirectCommandKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkCopyAccelerationStructureToMemoryInfoKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkCopyMemoryToAccelerationStructureInfoKHR& value);
+std::ostream&	operator<<	(std::ostream& s, const VkCopyAccelerationStructureInfoKHR& value);
 std::ostream&	operator<<	(std::ostream& s, const VkImagePipeSurfaceCreateInfoFUCHSIA& value);
 std::ostream&	operator<<	(std::ostream& s, const VkStreamDescriptorSurfaceCreateInfoGGP& value);
 std::ostream&	operator<<	(std::ostream& s, const VkPresentFrameTokenGGP& value);
diff --git a/external/vulkancts/framework/vulkan/vkStrUtilImpl.inl b/external/vulkancts/framework/vulkan/vkStrUtilImpl.inl
index 51a536b..9832e7c 100644
--- a/external/vulkancts/framework/vulkan/vkStrUtilImpl.inl
+++ b/external/vulkancts/framework/vulkan/vkStrUtilImpl.inl
@@ -1,6 +1,8 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  */
+template<> const char*	getTypeName<VkBuffer>							(void) { return "VkBuffer";							}
+template<> const char*	getTypeName<VkImage>							(void) { return "VkImage";							}
 template<> const char*	getTypeName<VkInstance>							(void) { return "VkInstance";						}
 template<> const char*	getTypeName<VkPhysicalDevice>					(void) { return "VkPhysicalDevice";					}
 template<> const char*	getTypeName<VkDevice>							(void) { return "VkDevice";							}
@@ -9,8 +11,6 @@
 template<> const char*	getTypeName<VkCommandBuffer>					(void) { return "VkCommandBuffer";					}
 template<> const char*	getTypeName<VkFence>							(void) { return "VkFence";							}
 template<> const char*	getTypeName<VkDeviceMemory>						(void) { return "VkDeviceMemory";					}
-template<> const char*	getTypeName<VkBuffer>							(void) { return "VkBuffer";							}
-template<> const char*	getTypeName<VkImage>							(void) { return "VkImage";							}
 template<> const char*	getTypeName<VkEvent>							(void) { return "VkEvent";							}
 template<> const char*	getTypeName<VkQueryPool>						(void) { return "VkQueryPool";						}
 template<> const char*	getTypeName<VkBufferView>						(void) { return "VkBufferView";						}
@@ -18,12 +18,12 @@
 template<> const char*	getTypeName<VkShaderModule>						(void) { return "VkShaderModule";					}
 template<> const char*	getTypeName<VkPipelineCache>					(void) { return "VkPipelineCache";					}
 template<> const char*	getTypeName<VkPipelineLayout>					(void) { return "VkPipelineLayout";					}
-template<> const char*	getTypeName<VkRenderPass>						(void) { return "VkRenderPass";						}
 template<> const char*	getTypeName<VkPipeline>							(void) { return "VkPipeline";						}
+template<> const char*	getTypeName<VkRenderPass>						(void) { return "VkRenderPass";						}
 template<> const char*	getTypeName<VkDescriptorSetLayout>				(void) { return "VkDescriptorSetLayout";			}
 template<> const char*	getTypeName<VkSampler>							(void) { return "VkSampler";						}
-template<> const char*	getTypeName<VkDescriptorPool>					(void) { return "VkDescriptorPool";					}
 template<> const char*	getTypeName<VkDescriptorSet>					(void) { return "VkDescriptorSet";					}
+template<> const char*	getTypeName<VkDescriptorPool>					(void) { return "VkDescriptorPool";					}
 template<> const char*	getTypeName<VkFramebuffer>						(void) { return "VkFramebuffer";					}
 template<> const char*	getTypeName<VkCommandPool>						(void) { return "VkCommandPool";					}
 template<> const char*	getTypeName<VkSamplerYcbcrConversion>			(void) { return "VkSamplerYcbcrConversion";			}
@@ -33,12 +33,14 @@
 template<> const char*	getTypeName<VkDisplayKHR>						(void) { return "VkDisplayKHR";						}
 template<> const char*	getTypeName<VkDisplayModeKHR>					(void) { return "VkDisplayModeKHR";					}
 template<> const char*	getTypeName<VkDebugReportCallbackEXT>			(void) { return "VkDebugReportCallbackEXT";			}
-template<> const char*	getTypeName<VkObjectTableNVX>					(void) { return "VkObjectTableNVX";					}
-template<> const char*	getTypeName<VkIndirectCommandsLayoutNVX>		(void) { return "VkIndirectCommandsLayoutNVX";		}
 template<> const char*	getTypeName<VkDebugUtilsMessengerEXT>			(void) { return "VkDebugUtilsMessengerEXT";			}
 template<> const char*	getTypeName<VkValidationCacheEXT>				(void) { return "VkValidationCacheEXT";				}
-template<> const char*	getTypeName<VkAccelerationStructureNV>			(void) { return "VkAccelerationStructureNV";		}
+template<> const char*	getTypeName<VkAccelerationStructureKHR>			(void) { return "VkAccelerationStructureKHR";		}
 template<> const char*	getTypeName<VkPerformanceConfigurationINTEL>	(void) { return "VkPerformanceConfigurationINTEL";	}
+template<> const char*	getTypeName<VkIndirectCommandsLayoutNV>			(void) { return "VkIndirectCommandsLayoutNV";		}
+template<> const char*	getTypeName<VkPrivateDataSlotEXT>				(void) { return "VkPrivateDataSlotEXT";				}
+template<> const char*	getTypeName<VkDeferredOperationKHR>				(void) { return "VkDeferredOperationKHR";			}
+template<> const char*	getTypeName<VkAccelerationStructureNV>			(void) { return "VkAccelerationStructureNV";		}
 
 namespace pt
 {
@@ -67,16 +69,6 @@
 std::ostream& operator<< (std::ostream& s, CAMetalLayer					v) { return s << tcu::toHex(v.internal); }
 }
 
-const char* getPipelineCacheHeaderVersionName (VkPipelineCacheHeaderVersion value)
-{
-	switch (value)
-	{
-		case VK_PIPELINE_CACHE_HEADER_VERSION_ONE:		return "VK_PIPELINE_CACHE_HEADER_VERSION_ONE";
-		case VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM:	return "VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM";
-		default:										return DE_NULL;
-	}
-}
-
 const char* getResultName (VkResult value)
 {
 	switch (value)
@@ -111,9 +103,15 @@
 		case VK_ERROR_INCOMPATIBLE_DISPLAY_KHR:						return "VK_ERROR_INCOMPATIBLE_DISPLAY_KHR";
 		case VK_ERROR_VALIDATION_FAILED_EXT:						return "VK_ERROR_VALIDATION_FAILED_EXT";
 		case VK_ERROR_INVALID_SHADER_NV:							return "VK_ERROR_INVALID_SHADER_NV";
+		case VK_ERROR_INCOMPATIBLE_VERSION_KHR:						return "VK_ERROR_INCOMPATIBLE_VERSION_KHR";
 		case VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT:	return "VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT";
 		case VK_ERROR_NOT_PERMITTED_EXT:							return "VK_ERROR_NOT_PERMITTED_EXT";
 		case VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT:			return "VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT";
+		case VK_THREAD_IDLE_KHR:									return "VK_THREAD_IDLE_KHR";
+		case VK_THREAD_DONE_KHR:									return "VK_THREAD_DONE_KHR";
+		case VK_OPERATION_DEFERRED_KHR:								return "VK_OPERATION_DEFERRED_KHR";
+		case VK_OPERATION_NOT_DEFERRED_KHR:							return "VK_OPERATION_NOT_DEFERRED_KHR";
+		case VK_PIPELINE_COMPILE_REQUIRED_EXT:						return "VK_PIPELINE_COMPILE_REQUIRED_EXT";
 		case VK_RESULT_MAX_ENUM:									return "VK_RESULT_MAX_ENUM";
 		default:													return DE_NULL;
 	}
@@ -315,6 +313,7 @@
 		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT";
 		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT";
 		case VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX:										return "VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX";
+		case VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX:								return "VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX";
 		case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:						return "VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD";
 		case VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP:						return "VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP";
 		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV";
@@ -347,12 +346,6 @@
 		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT";
 		case VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT:							return "VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT";
 		case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR:												return "VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR";
-		case VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX:									return "VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX";
-		case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX:						return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX";
-		case VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX:									return "VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX";
-		case VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX:							return "VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX";
-		case VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX:							return "VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX";
-		case VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX:							return "VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX";
 		case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV:				return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV";
 		case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT:										return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT";
 		case VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT:											return "VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT";
@@ -416,6 +409,26 @@
 		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT";
 		case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT";
 		case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV:					return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV";
+		case VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR:						return "VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR";
+		case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:					return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR";
+		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR:					return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR";
+		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_GEOMETRY_TYPE_INFO_KHR:			return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_GEOMETRY_TYPE_INFO_KHR";
+		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR:					return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR";
+		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR:					return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR";
+		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR:				return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR";
+		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR:				return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR";
+		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR:								return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR";
+		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_KHR:				return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_KHR";
+		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_KHR:								return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_KHR";
+		case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR:							return "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR";
+		case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR:					return "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR";
+		case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR:					return "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR";
+		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_FEATURES_KHR:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_FEATURES_KHR";
+		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_KHR:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_KHR";
+		case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR:							return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR";
+		case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR:						return "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR";
+		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR:							return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR";
+		case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR:					return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR";
 		case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV:				return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV";
 		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV";
 		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV";
@@ -436,8 +449,6 @@
 		case VK_STRUCTURE_TYPE_GEOMETRY_NV:														return "VK_STRUCTURE_TYPE_GEOMETRY_NV";
 		case VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV:											return "VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV";
 		case VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV:												return "VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV";
-		case VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV:						return "VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV";
-		case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV:					return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV";
 		case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV:				return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV";
 		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV";
 		case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV:							return "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV";
@@ -470,7 +481,7 @@
 		case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV:												return "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV";
 		case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:							return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV";
 		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL";
-		case VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL:									return "VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL";
+		case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL:					return "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL";
 		case VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL:							return "VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL";
 		case VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL:									return "VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL";
 		case VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL:							return "VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL";
@@ -514,6 +525,8 @@
 		case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT:				return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT";
 		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT";
 		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT";
+		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT";
+		case VK_STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR:										return "VK_STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR";
 		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:		return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR";
 		case VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR:												return "VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR";
 		case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR:								return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR";
@@ -521,13 +534,139 @@
 		case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR:								return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR";
 		case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR:					return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR";
 		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT:	return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT";
+		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV";
+		case VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV:							return "VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV";
+		case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV:					return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV";
+		case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV:								return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV";
+		case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV:							return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV";
+		case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV:										return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV";
+		case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV:					return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV";
+		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV";
 		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT";
 		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT";
+		case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM:		return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM";
+		case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM:							return "VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM";
+		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT";
+		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT";
+		case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT:						return "VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT";
+		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT";
+		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT";
+		case VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR:								return "VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR";
+		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT:						return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT";
+		case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT";
+		case VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT";
+		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT:	return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT";
+		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV:					return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV";
+		case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV:						return "VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV";
+		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:				return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT";
+		case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT:			return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT";
+		case VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT:								return "VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT";
 		case VK_STRUCTURE_TYPE_MAX_ENUM:														return "VK_STRUCTURE_TYPE_MAX_ENUM";
 		default:																				return DE_NULL;
 	}
 }
 
+const char* getImageLayoutName (VkImageLayout value)
+{
+	switch (value)
+	{
+		case VK_IMAGE_LAYOUT_UNDEFINED:										return "VK_IMAGE_LAYOUT_UNDEFINED";
+		case VK_IMAGE_LAYOUT_GENERAL:										return "VK_IMAGE_LAYOUT_GENERAL";
+		case VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL:						return "VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL";
+		case VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL:				return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL";
+		case VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL:				return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL";
+		case VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL:						return "VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL";
+		case VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL:							return "VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL";
+		case VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL:							return "VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL";
+		case VK_IMAGE_LAYOUT_PREINITIALIZED:								return "VK_IMAGE_LAYOUT_PREINITIALIZED";
+		case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL:	return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL";
+		case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL:	return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL";
+		case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL:						return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL";
+		case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL:						return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL";
+		case VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL:					return "VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL";
+		case VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL:						return "VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL";
+		case VK_IMAGE_LAYOUT_PRESENT_SRC_KHR:								return "VK_IMAGE_LAYOUT_PRESENT_SRC_KHR";
+		case VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR:							return "VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR";
+		case VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV:						return "VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV";
+		case VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT:				return "VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT";
+		case VK_IMAGE_LAYOUT_MAX_ENUM:										return "VK_IMAGE_LAYOUT_MAX_ENUM";
+		default:															return DE_NULL;
+	}
+}
+
+const char* getObjectTypeName (VkObjectType value)
+{
+	switch (value)
+	{
+		case VK_OBJECT_TYPE_UNKNOWN:							return "VK_OBJECT_TYPE_UNKNOWN";
+		case VK_OBJECT_TYPE_INSTANCE:							return "VK_OBJECT_TYPE_INSTANCE";
+		case VK_OBJECT_TYPE_PHYSICAL_DEVICE:					return "VK_OBJECT_TYPE_PHYSICAL_DEVICE";
+		case VK_OBJECT_TYPE_DEVICE:								return "VK_OBJECT_TYPE_DEVICE";
+		case VK_OBJECT_TYPE_QUEUE:								return "VK_OBJECT_TYPE_QUEUE";
+		case VK_OBJECT_TYPE_SEMAPHORE:							return "VK_OBJECT_TYPE_SEMAPHORE";
+		case VK_OBJECT_TYPE_COMMAND_BUFFER:						return "VK_OBJECT_TYPE_COMMAND_BUFFER";
+		case VK_OBJECT_TYPE_FENCE:								return "VK_OBJECT_TYPE_FENCE";
+		case VK_OBJECT_TYPE_DEVICE_MEMORY:						return "VK_OBJECT_TYPE_DEVICE_MEMORY";
+		case VK_OBJECT_TYPE_BUFFER:								return "VK_OBJECT_TYPE_BUFFER";
+		case VK_OBJECT_TYPE_IMAGE:								return "VK_OBJECT_TYPE_IMAGE";
+		case VK_OBJECT_TYPE_EVENT:								return "VK_OBJECT_TYPE_EVENT";
+		case VK_OBJECT_TYPE_QUERY_POOL:							return "VK_OBJECT_TYPE_QUERY_POOL";
+		case VK_OBJECT_TYPE_BUFFER_VIEW:						return "VK_OBJECT_TYPE_BUFFER_VIEW";
+		case VK_OBJECT_TYPE_IMAGE_VIEW:							return "VK_OBJECT_TYPE_IMAGE_VIEW";
+		case VK_OBJECT_TYPE_SHADER_MODULE:						return "VK_OBJECT_TYPE_SHADER_MODULE";
+		case VK_OBJECT_TYPE_PIPELINE_CACHE:						return "VK_OBJECT_TYPE_PIPELINE_CACHE";
+		case VK_OBJECT_TYPE_PIPELINE_LAYOUT:					return "VK_OBJECT_TYPE_PIPELINE_LAYOUT";
+		case VK_OBJECT_TYPE_RENDER_PASS:						return "VK_OBJECT_TYPE_RENDER_PASS";
+		case VK_OBJECT_TYPE_PIPELINE:							return "VK_OBJECT_TYPE_PIPELINE";
+		case VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT:				return "VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT";
+		case VK_OBJECT_TYPE_SAMPLER:							return "VK_OBJECT_TYPE_SAMPLER";
+		case VK_OBJECT_TYPE_DESCRIPTOR_POOL:					return "VK_OBJECT_TYPE_DESCRIPTOR_POOL";
+		case VK_OBJECT_TYPE_DESCRIPTOR_SET:						return "VK_OBJECT_TYPE_DESCRIPTOR_SET";
+		case VK_OBJECT_TYPE_FRAMEBUFFER:						return "VK_OBJECT_TYPE_FRAMEBUFFER";
+		case VK_OBJECT_TYPE_COMMAND_POOL:						return "VK_OBJECT_TYPE_COMMAND_POOL";
+		case VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION:			return "VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION";
+		case VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE:			return "VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE";
+		case VK_OBJECT_TYPE_SURFACE_KHR:						return "VK_OBJECT_TYPE_SURFACE_KHR";
+		case VK_OBJECT_TYPE_SWAPCHAIN_KHR:						return "VK_OBJECT_TYPE_SWAPCHAIN_KHR";
+		case VK_OBJECT_TYPE_DISPLAY_KHR:						return "VK_OBJECT_TYPE_DISPLAY_KHR";
+		case VK_OBJECT_TYPE_DISPLAY_MODE_KHR:					return "VK_OBJECT_TYPE_DISPLAY_MODE_KHR";
+		case VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT:			return "VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT";
+		case VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT:			return "VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT";
+		case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR:			return "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR";
+		case VK_OBJECT_TYPE_VALIDATION_CACHE_EXT:				return "VK_OBJECT_TYPE_VALIDATION_CACHE_EXT";
+		case VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL:	return "VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL";
+		case VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR:				return "VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR";
+		case VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV:		return "VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV";
+		case VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT:				return "VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT";
+		case VK_OBJECT_TYPE_MAX_ENUM:							return "VK_OBJECT_TYPE_MAX_ENUM";
+		default:												return DE_NULL;
+	}
+}
+
+const char* getVendorIdName (VkVendorId value)
+{
+	switch (value)
+	{
+		case VK_VENDOR_ID_VIV:		return "VK_VENDOR_ID_VIV";
+		case VK_VENDOR_ID_VSI:		return "VK_VENDOR_ID_VSI";
+		case VK_VENDOR_ID_KAZAN:	return "VK_VENDOR_ID_KAZAN";
+		case VK_VENDOR_ID_CODEPLAY:	return "VK_VENDOR_ID_CODEPLAY";
+		case VK_VENDOR_ID_MESA:		return "VK_VENDOR_ID_MESA";
+		case VK_VENDOR_ID_MAX_ENUM:	return "VK_VENDOR_ID_MAX_ENUM";
+		default:					return DE_NULL;
+	}
+}
+
+const char* getPipelineCacheHeaderVersionName (VkPipelineCacheHeaderVersion value)
+{
+	switch (value)
+	{
+		case VK_PIPELINE_CACHE_HEADER_VERSION_ONE:		return "VK_PIPELINE_CACHE_HEADER_VERSION_ONE";
+		case VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM:	return "VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM";
+		default:										return DE_NULL;
+	}
+}
+
 const char* getSystemAllocationScopeName (VkSystemAllocationScope value)
 {
 	switch (value)
@@ -802,18 +941,6 @@
 	}
 }
 
-const char* getImageTypeName (VkImageType value)
-{
-	switch (value)
-	{
-		case VK_IMAGE_TYPE_1D:			return "VK_IMAGE_TYPE_1D";
-		case VK_IMAGE_TYPE_2D:			return "VK_IMAGE_TYPE_2D";
-		case VK_IMAGE_TYPE_3D:			return "VK_IMAGE_TYPE_3D";
-		case VK_IMAGE_TYPE_MAX_ENUM:	return "VK_IMAGE_TYPE_MAX_ENUM";
-		default:						return DE_NULL;
-	}
-}
-
 const char* getImageTilingName (VkImageTiling value)
 {
 	switch (value)
@@ -826,6 +953,18 @@
 	}
 }
 
+const char* getImageTypeName (VkImageType value)
+{
+	switch (value)
+	{
+		case VK_IMAGE_TYPE_1D:			return "VK_IMAGE_TYPE_1D";
+		case VK_IMAGE_TYPE_2D:			return "VK_IMAGE_TYPE_2D";
+		case VK_IMAGE_TYPE_3D:			return "VK_IMAGE_TYPE_3D";
+		case VK_IMAGE_TYPE_MAX_ENUM:	return "VK_IMAGE_TYPE_MAX_ENUM";
+		default:						return DE_NULL;
+	}
+}
+
 const char* getPhysicalDeviceTypeName (VkPhysicalDeviceType value)
 {
 	switch (value)
@@ -844,15 +983,16 @@
 {
 	switch (value)
 	{
-		case VK_QUERY_TYPE_OCCLUSION:									return "VK_QUERY_TYPE_OCCLUSION";
-		case VK_QUERY_TYPE_PIPELINE_STATISTICS:							return "VK_QUERY_TYPE_PIPELINE_STATISTICS";
-		case VK_QUERY_TYPE_TIMESTAMP:									return "VK_QUERY_TYPE_TIMESTAMP";
-		case VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT:				return "VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT";
-		case VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR:						return "VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR";
-		case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV:	return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV";
-		case VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL:						return "VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL";
-		case VK_QUERY_TYPE_MAX_ENUM:									return "VK_QUERY_TYPE_MAX_ENUM";
-		default:														return DE_NULL;
+		case VK_QUERY_TYPE_OCCLUSION:										return "VK_QUERY_TYPE_OCCLUSION";
+		case VK_QUERY_TYPE_PIPELINE_STATISTICS:								return "VK_QUERY_TYPE_PIPELINE_STATISTICS";
+		case VK_QUERY_TYPE_TIMESTAMP:										return "VK_QUERY_TYPE_TIMESTAMP";
+		case VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT:					return "VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT";
+		case VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR:							return "VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR";
+		case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR:		return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR";
+		case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR:	return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR";
+		case VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL:							return "VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL";
+		case VK_QUERY_TYPE_MAX_ENUM:										return "VK_QUERY_TYPE_MAX_ENUM";
+		default:															return DE_NULL;
 	}
 }
 
@@ -867,50 +1007,6 @@
 	}
 }
 
-const char* getImageLayoutName (VkImageLayout value)
-{
-	switch (value)
-	{
-		case VK_IMAGE_LAYOUT_UNDEFINED:										return "VK_IMAGE_LAYOUT_UNDEFINED";
-		case VK_IMAGE_LAYOUT_GENERAL:										return "VK_IMAGE_LAYOUT_GENERAL";
-		case VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL:						return "VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL";
-		case VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL:				return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL";
-		case VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL:				return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL";
-		case VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL:						return "VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL";
-		case VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL:							return "VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL";
-		case VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL:							return "VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL";
-		case VK_IMAGE_LAYOUT_PREINITIALIZED:								return "VK_IMAGE_LAYOUT_PREINITIALIZED";
-		case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL:	return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL";
-		case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL:	return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL";
-		case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL:						return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL";
-		case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL:						return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL";
-		case VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL:					return "VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL";
-		case VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL:						return "VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL";
-		case VK_IMAGE_LAYOUT_PRESENT_SRC_KHR:								return "VK_IMAGE_LAYOUT_PRESENT_SRC_KHR";
-		case VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR:							return "VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR";
-		case VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV:						return "VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV";
-		case VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT:				return "VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT";
-		case VK_IMAGE_LAYOUT_MAX_ENUM:										return "VK_IMAGE_LAYOUT_MAX_ENUM";
-		default:															return DE_NULL;
-	}
-}
-
-const char* getImageViewTypeName (VkImageViewType value)
-{
-	switch (value)
-	{
-		case VK_IMAGE_VIEW_TYPE_1D:			return "VK_IMAGE_VIEW_TYPE_1D";
-		case VK_IMAGE_VIEW_TYPE_2D:			return "VK_IMAGE_VIEW_TYPE_2D";
-		case VK_IMAGE_VIEW_TYPE_3D:			return "VK_IMAGE_VIEW_TYPE_3D";
-		case VK_IMAGE_VIEW_TYPE_CUBE:		return "VK_IMAGE_VIEW_TYPE_CUBE";
-		case VK_IMAGE_VIEW_TYPE_1D_ARRAY:	return "VK_IMAGE_VIEW_TYPE_1D_ARRAY";
-		case VK_IMAGE_VIEW_TYPE_2D_ARRAY:	return "VK_IMAGE_VIEW_TYPE_2D_ARRAY";
-		case VK_IMAGE_VIEW_TYPE_CUBE_ARRAY:	return "VK_IMAGE_VIEW_TYPE_CUBE_ARRAY";
-		case VK_IMAGE_VIEW_TYPE_MAX_ENUM:	return "VK_IMAGE_VIEW_TYPE_MAX_ENUM";
-		default:							return DE_NULL;
-	}
-}
-
 const char* getComponentSwizzleName (VkComponentSwizzle value)
 {
 	switch (value)
@@ -927,120 +1023,22 @@
 	}
 }
 
-const char* getVertexInputRateName (VkVertexInputRate value)
+const char* getImageViewTypeName (VkImageViewType value)
 {
 	switch (value)
 	{
-		case VK_VERTEX_INPUT_RATE_VERTEX:	return "VK_VERTEX_INPUT_RATE_VERTEX";
-		case VK_VERTEX_INPUT_RATE_INSTANCE:	return "VK_VERTEX_INPUT_RATE_INSTANCE";
-		case VK_VERTEX_INPUT_RATE_MAX_ENUM:	return "VK_VERTEX_INPUT_RATE_MAX_ENUM";
+		case VK_IMAGE_VIEW_TYPE_1D:			return "VK_IMAGE_VIEW_TYPE_1D";
+		case VK_IMAGE_VIEW_TYPE_2D:			return "VK_IMAGE_VIEW_TYPE_2D";
+		case VK_IMAGE_VIEW_TYPE_3D:			return "VK_IMAGE_VIEW_TYPE_3D";
+		case VK_IMAGE_VIEW_TYPE_CUBE:		return "VK_IMAGE_VIEW_TYPE_CUBE";
+		case VK_IMAGE_VIEW_TYPE_1D_ARRAY:	return "VK_IMAGE_VIEW_TYPE_1D_ARRAY";
+		case VK_IMAGE_VIEW_TYPE_2D_ARRAY:	return "VK_IMAGE_VIEW_TYPE_2D_ARRAY";
+		case VK_IMAGE_VIEW_TYPE_CUBE_ARRAY:	return "VK_IMAGE_VIEW_TYPE_CUBE_ARRAY";
+		case VK_IMAGE_VIEW_TYPE_MAX_ENUM:	return "VK_IMAGE_VIEW_TYPE_MAX_ENUM";
 		default:							return DE_NULL;
 	}
 }
 
-const char* getPrimitiveTopologyName (VkPrimitiveTopology value)
-{
-	switch (value)
-	{
-		case VK_PRIMITIVE_TOPOLOGY_POINT_LIST:						return "VK_PRIMITIVE_TOPOLOGY_POINT_LIST";
-		case VK_PRIMITIVE_TOPOLOGY_LINE_LIST:						return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST";
-		case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP:						return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP";
-		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST:					return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST";
-		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP:					return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP";
-		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN:					return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN";
-		case VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY:		return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY";
-		case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY:		return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY";
-		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY:	return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY";
-		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY:	return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY";
-		case VK_PRIMITIVE_TOPOLOGY_PATCH_LIST:						return "VK_PRIMITIVE_TOPOLOGY_PATCH_LIST";
-		case VK_PRIMITIVE_TOPOLOGY_MAX_ENUM:						return "VK_PRIMITIVE_TOPOLOGY_MAX_ENUM";
-		default:													return DE_NULL;
-	}
-}
-
-const char* getPolygonModeName (VkPolygonMode value)
-{
-	switch (value)
-	{
-		case VK_POLYGON_MODE_FILL:				return "VK_POLYGON_MODE_FILL";
-		case VK_POLYGON_MODE_LINE:				return "VK_POLYGON_MODE_LINE";
-		case VK_POLYGON_MODE_POINT:				return "VK_POLYGON_MODE_POINT";
-		case VK_POLYGON_MODE_FILL_RECTANGLE_NV:	return "VK_POLYGON_MODE_FILL_RECTANGLE_NV";
-		case VK_POLYGON_MODE_MAX_ENUM:			return "VK_POLYGON_MODE_MAX_ENUM";
-		default:								return DE_NULL;
-	}
-}
-
-const char* getFrontFaceName (VkFrontFace value)
-{
-	switch (value)
-	{
-		case VK_FRONT_FACE_COUNTER_CLOCKWISE:	return "VK_FRONT_FACE_COUNTER_CLOCKWISE";
-		case VK_FRONT_FACE_CLOCKWISE:			return "VK_FRONT_FACE_CLOCKWISE";
-		case VK_FRONT_FACE_MAX_ENUM:			return "VK_FRONT_FACE_MAX_ENUM";
-		default:								return DE_NULL;
-	}
-}
-
-const char* getCompareOpName (VkCompareOp value)
-{
-	switch (value)
-	{
-		case VK_COMPARE_OP_NEVER:				return "VK_COMPARE_OP_NEVER";
-		case VK_COMPARE_OP_LESS:				return "VK_COMPARE_OP_LESS";
-		case VK_COMPARE_OP_EQUAL:				return "VK_COMPARE_OP_EQUAL";
-		case VK_COMPARE_OP_LESS_OR_EQUAL:		return "VK_COMPARE_OP_LESS_OR_EQUAL";
-		case VK_COMPARE_OP_GREATER:				return "VK_COMPARE_OP_GREATER";
-		case VK_COMPARE_OP_NOT_EQUAL:			return "VK_COMPARE_OP_NOT_EQUAL";
-		case VK_COMPARE_OP_GREATER_OR_EQUAL:	return "VK_COMPARE_OP_GREATER_OR_EQUAL";
-		case VK_COMPARE_OP_ALWAYS:				return "VK_COMPARE_OP_ALWAYS";
-		case VK_COMPARE_OP_MAX_ENUM:			return "VK_COMPARE_OP_MAX_ENUM";
-		default:								return DE_NULL;
-	}
-}
-
-const char* getStencilOpName (VkStencilOp value)
-{
-	switch (value)
-	{
-		case VK_STENCIL_OP_KEEP:				return "VK_STENCIL_OP_KEEP";
-		case VK_STENCIL_OP_ZERO:				return "VK_STENCIL_OP_ZERO";
-		case VK_STENCIL_OP_REPLACE:				return "VK_STENCIL_OP_REPLACE";
-		case VK_STENCIL_OP_INCREMENT_AND_CLAMP:	return "VK_STENCIL_OP_INCREMENT_AND_CLAMP";
-		case VK_STENCIL_OP_DECREMENT_AND_CLAMP:	return "VK_STENCIL_OP_DECREMENT_AND_CLAMP";
-		case VK_STENCIL_OP_INVERT:				return "VK_STENCIL_OP_INVERT";
-		case VK_STENCIL_OP_INCREMENT_AND_WRAP:	return "VK_STENCIL_OP_INCREMENT_AND_WRAP";
-		case VK_STENCIL_OP_DECREMENT_AND_WRAP:	return "VK_STENCIL_OP_DECREMENT_AND_WRAP";
-		case VK_STENCIL_OP_MAX_ENUM:			return "VK_STENCIL_OP_MAX_ENUM";
-		default:								return DE_NULL;
-	}
-}
-
-const char* getLogicOpName (VkLogicOp value)
-{
-	switch (value)
-	{
-		case VK_LOGIC_OP_CLEAR:			return "VK_LOGIC_OP_CLEAR";
-		case VK_LOGIC_OP_AND:			return "VK_LOGIC_OP_AND";
-		case VK_LOGIC_OP_AND_REVERSE:	return "VK_LOGIC_OP_AND_REVERSE";
-		case VK_LOGIC_OP_COPY:			return "VK_LOGIC_OP_COPY";
-		case VK_LOGIC_OP_AND_INVERTED:	return "VK_LOGIC_OP_AND_INVERTED";
-		case VK_LOGIC_OP_NO_OP:			return "VK_LOGIC_OP_NO_OP";
-		case VK_LOGIC_OP_XOR:			return "VK_LOGIC_OP_XOR";
-		case VK_LOGIC_OP_OR:			return "VK_LOGIC_OP_OR";
-		case VK_LOGIC_OP_NOR:			return "VK_LOGIC_OP_NOR";
-		case VK_LOGIC_OP_EQUIVALENT:	return "VK_LOGIC_OP_EQUIVALENT";
-		case VK_LOGIC_OP_INVERT:		return "VK_LOGIC_OP_INVERT";
-		case VK_LOGIC_OP_OR_REVERSE:	return "VK_LOGIC_OP_OR_REVERSE";
-		case VK_LOGIC_OP_COPY_INVERTED:	return "VK_LOGIC_OP_COPY_INVERTED";
-		case VK_LOGIC_OP_OR_INVERTED:	return "VK_LOGIC_OP_OR_INVERTED";
-		case VK_LOGIC_OP_NAND:			return "VK_LOGIC_OP_NAND";
-		case VK_LOGIC_OP_SET:			return "VK_LOGIC_OP_SET";
-		case VK_LOGIC_OP_MAX_ENUM:		return "VK_LOGIC_OP_MAX_ENUM";
-		default:						return DE_NULL;
-	}
-}
-
 const char* getBlendFactorName (VkBlendFactor value)
 {
 	switch (value)
@@ -1129,6 +1127,23 @@
 	}
 }
 
+const char* getCompareOpName (VkCompareOp value)
+{
+	switch (value)
+	{
+		case VK_COMPARE_OP_NEVER:				return "VK_COMPARE_OP_NEVER";
+		case VK_COMPARE_OP_LESS:				return "VK_COMPARE_OP_LESS";
+		case VK_COMPARE_OP_EQUAL:				return "VK_COMPARE_OP_EQUAL";
+		case VK_COMPARE_OP_LESS_OR_EQUAL:		return "VK_COMPARE_OP_LESS_OR_EQUAL";
+		case VK_COMPARE_OP_GREATER:				return "VK_COMPARE_OP_GREATER";
+		case VK_COMPARE_OP_NOT_EQUAL:			return "VK_COMPARE_OP_NOT_EQUAL";
+		case VK_COMPARE_OP_GREATER_OR_EQUAL:	return "VK_COMPARE_OP_GREATER_OR_EQUAL";
+		case VK_COMPARE_OP_ALWAYS:				return "VK_COMPARE_OP_ALWAYS";
+		case VK_COMPARE_OP_MAX_ENUM:			return "VK_COMPARE_OP_MAX_ENUM";
+		default:								return DE_NULL;
+	}
+}
+
 const char* getDynamicStateName (VkDynamicState value)
 {
 	switch (value)
@@ -1149,11 +1164,137 @@
 		case VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV:	return "VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV";
 		case VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV:				return "VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV";
 		case VK_DYNAMIC_STATE_LINE_STIPPLE_EXT:					return "VK_DYNAMIC_STATE_LINE_STIPPLE_EXT";
+		case VK_DYNAMIC_STATE_CULL_MODE_EXT:					return "VK_DYNAMIC_STATE_CULL_MODE_EXT";
+		case VK_DYNAMIC_STATE_FRONT_FACE_EXT:					return "VK_DYNAMIC_STATE_FRONT_FACE_EXT";
+		case VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT:			return "VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT";
+		case VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT:			return "VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT";
+		case VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT:			return "VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT";
+		case VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT:	return "VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT";
+		case VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT:			return "VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT";
+		case VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT:			return "VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT";
+		case VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT:				return "VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT";
+		case VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT:		return "VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT";
+		case VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT:			return "VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT";
+		case VK_DYNAMIC_STATE_STENCIL_OP_EXT:					return "VK_DYNAMIC_STATE_STENCIL_OP_EXT";
 		case VK_DYNAMIC_STATE_MAX_ENUM:							return "VK_DYNAMIC_STATE_MAX_ENUM";
 		default:												return DE_NULL;
 	}
 }
 
+const char* getFrontFaceName (VkFrontFace value)
+{
+	switch (value)
+	{
+		case VK_FRONT_FACE_COUNTER_CLOCKWISE:	return "VK_FRONT_FACE_COUNTER_CLOCKWISE";
+		case VK_FRONT_FACE_CLOCKWISE:			return "VK_FRONT_FACE_CLOCKWISE";
+		case VK_FRONT_FACE_MAX_ENUM:			return "VK_FRONT_FACE_MAX_ENUM";
+		default:								return DE_NULL;
+	}
+}
+
+const char* getVertexInputRateName (VkVertexInputRate value)
+{
+	switch (value)
+	{
+		case VK_VERTEX_INPUT_RATE_VERTEX:	return "VK_VERTEX_INPUT_RATE_VERTEX";
+		case VK_VERTEX_INPUT_RATE_INSTANCE:	return "VK_VERTEX_INPUT_RATE_INSTANCE";
+		case VK_VERTEX_INPUT_RATE_MAX_ENUM:	return "VK_VERTEX_INPUT_RATE_MAX_ENUM";
+		default:							return DE_NULL;
+	}
+}
+
+const char* getPrimitiveTopologyName (VkPrimitiveTopology value)
+{
+	switch (value)
+	{
+		case VK_PRIMITIVE_TOPOLOGY_POINT_LIST:						return "VK_PRIMITIVE_TOPOLOGY_POINT_LIST";
+		case VK_PRIMITIVE_TOPOLOGY_LINE_LIST:						return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST";
+		case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP:						return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP";
+		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST:					return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST";
+		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP:					return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP";
+		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN:					return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN";
+		case VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY:		return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY";
+		case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY:		return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY";
+		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY:	return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY";
+		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY:	return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY";
+		case VK_PRIMITIVE_TOPOLOGY_PATCH_LIST:						return "VK_PRIMITIVE_TOPOLOGY_PATCH_LIST";
+		case VK_PRIMITIVE_TOPOLOGY_MAX_ENUM:						return "VK_PRIMITIVE_TOPOLOGY_MAX_ENUM";
+		default:													return DE_NULL;
+	}
+}
+
+const char* getPolygonModeName (VkPolygonMode value)
+{
+	switch (value)
+	{
+		case VK_POLYGON_MODE_FILL:				return "VK_POLYGON_MODE_FILL";
+		case VK_POLYGON_MODE_LINE:				return "VK_POLYGON_MODE_LINE";
+		case VK_POLYGON_MODE_POINT:				return "VK_POLYGON_MODE_POINT";
+		case VK_POLYGON_MODE_FILL_RECTANGLE_NV:	return "VK_POLYGON_MODE_FILL_RECTANGLE_NV";
+		case VK_POLYGON_MODE_MAX_ENUM:			return "VK_POLYGON_MODE_MAX_ENUM";
+		default:								return DE_NULL;
+	}
+}
+
+const char* getStencilOpName (VkStencilOp value)
+{
+	switch (value)
+	{
+		case VK_STENCIL_OP_KEEP:				return "VK_STENCIL_OP_KEEP";
+		case VK_STENCIL_OP_ZERO:				return "VK_STENCIL_OP_ZERO";
+		case VK_STENCIL_OP_REPLACE:				return "VK_STENCIL_OP_REPLACE";
+		case VK_STENCIL_OP_INCREMENT_AND_CLAMP:	return "VK_STENCIL_OP_INCREMENT_AND_CLAMP";
+		case VK_STENCIL_OP_DECREMENT_AND_CLAMP:	return "VK_STENCIL_OP_DECREMENT_AND_CLAMP";
+		case VK_STENCIL_OP_INVERT:				return "VK_STENCIL_OP_INVERT";
+		case VK_STENCIL_OP_INCREMENT_AND_WRAP:	return "VK_STENCIL_OP_INCREMENT_AND_WRAP";
+		case VK_STENCIL_OP_DECREMENT_AND_WRAP:	return "VK_STENCIL_OP_DECREMENT_AND_WRAP";
+		case VK_STENCIL_OP_MAX_ENUM:			return "VK_STENCIL_OP_MAX_ENUM";
+		default:								return DE_NULL;
+	}
+}
+
+const char* getLogicOpName (VkLogicOp value)
+{
+	switch (value)
+	{
+		case VK_LOGIC_OP_CLEAR:			return "VK_LOGIC_OP_CLEAR";
+		case VK_LOGIC_OP_AND:			return "VK_LOGIC_OP_AND";
+		case VK_LOGIC_OP_AND_REVERSE:	return "VK_LOGIC_OP_AND_REVERSE";
+		case VK_LOGIC_OP_COPY:			return "VK_LOGIC_OP_COPY";
+		case VK_LOGIC_OP_AND_INVERTED:	return "VK_LOGIC_OP_AND_INVERTED";
+		case VK_LOGIC_OP_NO_OP:			return "VK_LOGIC_OP_NO_OP";
+		case VK_LOGIC_OP_XOR:			return "VK_LOGIC_OP_XOR";
+		case VK_LOGIC_OP_OR:			return "VK_LOGIC_OP_OR";
+		case VK_LOGIC_OP_NOR:			return "VK_LOGIC_OP_NOR";
+		case VK_LOGIC_OP_EQUIVALENT:	return "VK_LOGIC_OP_EQUIVALENT";
+		case VK_LOGIC_OP_INVERT:		return "VK_LOGIC_OP_INVERT";
+		case VK_LOGIC_OP_OR_REVERSE:	return "VK_LOGIC_OP_OR_REVERSE";
+		case VK_LOGIC_OP_COPY_INVERTED:	return "VK_LOGIC_OP_COPY_INVERTED";
+		case VK_LOGIC_OP_OR_INVERTED:	return "VK_LOGIC_OP_OR_INVERTED";
+		case VK_LOGIC_OP_NAND:			return "VK_LOGIC_OP_NAND";
+		case VK_LOGIC_OP_SET:			return "VK_LOGIC_OP_SET";
+		case VK_LOGIC_OP_MAX_ENUM:		return "VK_LOGIC_OP_MAX_ENUM";
+		default:						return DE_NULL;
+	}
+}
+
+const char* getBorderColorName (VkBorderColor value)
+{
+	switch (value)
+	{
+		case VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK:	return "VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK";
+		case VK_BORDER_COLOR_INT_TRANSPARENT_BLACK:		return "VK_BORDER_COLOR_INT_TRANSPARENT_BLACK";
+		case VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK:		return "VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK";
+		case VK_BORDER_COLOR_INT_OPAQUE_BLACK:			return "VK_BORDER_COLOR_INT_OPAQUE_BLACK";
+		case VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE:		return "VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE";
+		case VK_BORDER_COLOR_INT_OPAQUE_WHITE:			return "VK_BORDER_COLOR_INT_OPAQUE_WHITE";
+		case VK_BORDER_COLOR_FLOAT_CUSTOM_EXT:			return "VK_BORDER_COLOR_FLOAT_CUSTOM_EXT";
+		case VK_BORDER_COLOR_INT_CUSTOM_EXT:			return "VK_BORDER_COLOR_INT_CUSTOM_EXT";
+		case VK_BORDER_COLOR_MAX_ENUM:					return "VK_BORDER_COLOR_MAX_ENUM";
+		default:										return DE_NULL;
+	}
+}
+
 const char* getFilterName (VkFilter value)
 {
 	switch (value)
@@ -1166,17 +1307,6 @@
 	}
 }
 
-const char* getSamplerMipmapModeName (VkSamplerMipmapMode value)
-{
-	switch (value)
-	{
-		case VK_SAMPLER_MIPMAP_MODE_NEAREST:	return "VK_SAMPLER_MIPMAP_MODE_NEAREST";
-		case VK_SAMPLER_MIPMAP_MODE_LINEAR:		return "VK_SAMPLER_MIPMAP_MODE_LINEAR";
-		case VK_SAMPLER_MIPMAP_MODE_MAX_ENUM:	return "VK_SAMPLER_MIPMAP_MODE_MAX_ENUM";
-		default:								return DE_NULL;
-	}
-}
-
 const char* getSamplerAddressModeName (VkSamplerAddressMode value)
 {
 	switch (value)
@@ -1191,18 +1321,14 @@
 	}
 }
 
-const char* getBorderColorName (VkBorderColor value)
+const char* getSamplerMipmapModeName (VkSamplerMipmapMode value)
 {
 	switch (value)
 	{
-		case VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK:	return "VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK";
-		case VK_BORDER_COLOR_INT_TRANSPARENT_BLACK:		return "VK_BORDER_COLOR_INT_TRANSPARENT_BLACK";
-		case VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK:		return "VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK";
-		case VK_BORDER_COLOR_INT_OPAQUE_BLACK:			return "VK_BORDER_COLOR_INT_OPAQUE_BLACK";
-		case VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE:		return "VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE";
-		case VK_BORDER_COLOR_INT_OPAQUE_WHITE:			return "VK_BORDER_COLOR_INT_OPAQUE_WHITE";
-		case VK_BORDER_COLOR_MAX_ENUM:					return "VK_BORDER_COLOR_MAX_ENUM";
-		default:										return DE_NULL;
+		case VK_SAMPLER_MIPMAP_MODE_NEAREST:	return "VK_SAMPLER_MIPMAP_MODE_NEAREST";
+		case VK_SAMPLER_MIPMAP_MODE_LINEAR:		return "VK_SAMPLER_MIPMAP_MODE_LINEAR";
+		case VK_SAMPLER_MIPMAP_MODE_MAX_ENUM:	return "VK_SAMPLER_MIPMAP_MODE_MAX_ENUM";
+		default:								return DE_NULL;
 	}
 }
 
@@ -1222,7 +1348,7 @@
 		case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC:		return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC";
 		case VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT:			return "VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT";
 		case VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT:	return "VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT";
-		case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV:	return "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV";
+		case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR:	return "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR";
 		case VK_DESCRIPTOR_TYPE_MAX_ENUM:					return "VK_DESCRIPTOR_TYPE_MAX_ENUM";
 		default:											return DE_NULL;
 	}
@@ -1246,6 +1372,7 @@
 	{
 		case VK_ATTACHMENT_STORE_OP_STORE:		return "VK_ATTACHMENT_STORE_OP_STORE";
 		case VK_ATTACHMENT_STORE_OP_DONT_CARE:	return "VK_ATTACHMENT_STORE_OP_DONT_CARE";
+		case VK_ATTACHMENT_STORE_OP_NONE_QCOM:	return "VK_ATTACHMENT_STORE_OP_NONE_QCOM";
 		case VK_ATTACHMENT_STORE_OP_MAX_ENUM:	return "VK_ATTACHMENT_STORE_OP_MAX_ENUM";
 		default:								return DE_NULL;
 	}
@@ -1255,11 +1382,11 @@
 {
 	switch (value)
 	{
-		case VK_PIPELINE_BIND_POINT_GRAPHICS:		return "VK_PIPELINE_BIND_POINT_GRAPHICS";
-		case VK_PIPELINE_BIND_POINT_COMPUTE:		return "VK_PIPELINE_BIND_POINT_COMPUTE";
-		case VK_PIPELINE_BIND_POINT_RAY_TRACING_NV:	return "VK_PIPELINE_BIND_POINT_RAY_TRACING_NV";
-		case VK_PIPELINE_BIND_POINT_MAX_ENUM:		return "VK_PIPELINE_BIND_POINT_MAX_ENUM";
-		default:									return DE_NULL;
+		case VK_PIPELINE_BIND_POINT_GRAPHICS:			return "VK_PIPELINE_BIND_POINT_GRAPHICS";
+		case VK_PIPELINE_BIND_POINT_COMPUTE:			return "VK_PIPELINE_BIND_POINT_COMPUTE";
+		case VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR:	return "VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR";
+		case VK_PIPELINE_BIND_POINT_MAX_ENUM:			return "VK_PIPELINE_BIND_POINT_MAX_ENUM";
+		default:										return DE_NULL;
 	}
 }
 
@@ -1280,7 +1407,7 @@
 	{
 		case VK_INDEX_TYPE_UINT16:		return "VK_INDEX_TYPE_UINT16";
 		case VK_INDEX_TYPE_UINT32:		return "VK_INDEX_TYPE_UINT32";
-		case VK_INDEX_TYPE_NONE_NV:		return "VK_INDEX_TYPE_NONE_NV";
+		case VK_INDEX_TYPE_NONE_KHR:	return "VK_INDEX_TYPE_NONE_KHR";
 		case VK_INDEX_TYPE_UINT8_EXT:	return "VK_INDEX_TYPE_UINT8_EXT";
 		case VK_INDEX_TYPE_MAX_ENUM:	return "VK_INDEX_TYPE_MAX_ENUM";
 		default:						return DE_NULL;
@@ -1298,66 +1425,6 @@
 	}
 }
 
-const char* getObjectTypeName (VkObjectType value)
-{
-	switch (value)
-	{
-		case VK_OBJECT_TYPE_UNKNOWN:							return "VK_OBJECT_TYPE_UNKNOWN";
-		case VK_OBJECT_TYPE_INSTANCE:							return "VK_OBJECT_TYPE_INSTANCE";
-		case VK_OBJECT_TYPE_PHYSICAL_DEVICE:					return "VK_OBJECT_TYPE_PHYSICAL_DEVICE";
-		case VK_OBJECT_TYPE_DEVICE:								return "VK_OBJECT_TYPE_DEVICE";
-		case VK_OBJECT_TYPE_QUEUE:								return "VK_OBJECT_TYPE_QUEUE";
-		case VK_OBJECT_TYPE_SEMAPHORE:							return "VK_OBJECT_TYPE_SEMAPHORE";
-		case VK_OBJECT_TYPE_COMMAND_BUFFER:						return "VK_OBJECT_TYPE_COMMAND_BUFFER";
-		case VK_OBJECT_TYPE_FENCE:								return "VK_OBJECT_TYPE_FENCE";
-		case VK_OBJECT_TYPE_DEVICE_MEMORY:						return "VK_OBJECT_TYPE_DEVICE_MEMORY";
-		case VK_OBJECT_TYPE_BUFFER:								return "VK_OBJECT_TYPE_BUFFER";
-		case VK_OBJECT_TYPE_IMAGE:								return "VK_OBJECT_TYPE_IMAGE";
-		case VK_OBJECT_TYPE_EVENT:								return "VK_OBJECT_TYPE_EVENT";
-		case VK_OBJECT_TYPE_QUERY_POOL:							return "VK_OBJECT_TYPE_QUERY_POOL";
-		case VK_OBJECT_TYPE_BUFFER_VIEW:						return "VK_OBJECT_TYPE_BUFFER_VIEW";
-		case VK_OBJECT_TYPE_IMAGE_VIEW:							return "VK_OBJECT_TYPE_IMAGE_VIEW";
-		case VK_OBJECT_TYPE_SHADER_MODULE:						return "VK_OBJECT_TYPE_SHADER_MODULE";
-		case VK_OBJECT_TYPE_PIPELINE_CACHE:						return "VK_OBJECT_TYPE_PIPELINE_CACHE";
-		case VK_OBJECT_TYPE_PIPELINE_LAYOUT:					return "VK_OBJECT_TYPE_PIPELINE_LAYOUT";
-		case VK_OBJECT_TYPE_RENDER_PASS:						return "VK_OBJECT_TYPE_RENDER_PASS";
-		case VK_OBJECT_TYPE_PIPELINE:							return "VK_OBJECT_TYPE_PIPELINE";
-		case VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT:				return "VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT";
-		case VK_OBJECT_TYPE_SAMPLER:							return "VK_OBJECT_TYPE_SAMPLER";
-		case VK_OBJECT_TYPE_DESCRIPTOR_POOL:					return "VK_OBJECT_TYPE_DESCRIPTOR_POOL";
-		case VK_OBJECT_TYPE_DESCRIPTOR_SET:						return "VK_OBJECT_TYPE_DESCRIPTOR_SET";
-		case VK_OBJECT_TYPE_FRAMEBUFFER:						return "VK_OBJECT_TYPE_FRAMEBUFFER";
-		case VK_OBJECT_TYPE_COMMAND_POOL:						return "VK_OBJECT_TYPE_COMMAND_POOL";
-		case VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION:			return "VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION";
-		case VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE:			return "VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE";
-		case VK_OBJECT_TYPE_SURFACE_KHR:						return "VK_OBJECT_TYPE_SURFACE_KHR";
-		case VK_OBJECT_TYPE_SWAPCHAIN_KHR:						return "VK_OBJECT_TYPE_SWAPCHAIN_KHR";
-		case VK_OBJECT_TYPE_DISPLAY_KHR:						return "VK_OBJECT_TYPE_DISPLAY_KHR";
-		case VK_OBJECT_TYPE_DISPLAY_MODE_KHR:					return "VK_OBJECT_TYPE_DISPLAY_MODE_KHR";
-		case VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT:			return "VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT";
-		case VK_OBJECT_TYPE_OBJECT_TABLE_NVX:					return "VK_OBJECT_TYPE_OBJECT_TABLE_NVX";
-		case VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX:		return "VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX";
-		case VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT:			return "VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT";
-		case VK_OBJECT_TYPE_VALIDATION_CACHE_EXT:				return "VK_OBJECT_TYPE_VALIDATION_CACHE_EXT";
-		case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV:			return "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV";
-		case VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL:	return "VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL";
-		case VK_OBJECT_TYPE_MAX_ENUM:							return "VK_OBJECT_TYPE_MAX_ENUM";
-		default:												return DE_NULL;
-	}
-}
-
-const char* getVendorIdName (VkVendorId value)
-{
-	switch (value)
-	{
-		case VK_VENDOR_ID_VIV:		return "VK_VENDOR_ID_VIV";
-		case VK_VENDOR_ID_VSI:		return "VK_VENDOR_ID_VSI";
-		case VK_VENDOR_ID_KAZAN:	return "VK_VENDOR_ID_KAZAN";
-		case VK_VENDOR_ID_MAX_ENUM:	return "VK_VENDOR_ID_MAX_ENUM";
-		default:					return DE_NULL;
-	}
-}
-
 const char* getPointClippingBehaviorName (VkPointClippingBehavior value)
 {
 	switch (value)
@@ -1443,6 +1510,7 @@
 		case VK_DRIVER_ID_GOOGLE_SWIFTSHADER:			return "VK_DRIVER_ID_GOOGLE_SWIFTSHADER";
 		case VK_DRIVER_ID_GGP_PROPRIETARY:				return "VK_DRIVER_ID_GGP_PROPRIETARY";
 		case VK_DRIVER_ID_BROADCOM_PROPRIETARY:			return "VK_DRIVER_ID_BROADCOM_PROPRIETARY";
+		case VK_DRIVER_ID_MESA_LLVMPIPE:				return "VK_DRIVER_ID_MESA_LLVMPIPE";
 		case VK_DRIVER_ID_MAX_ENUM:						return "VK_DRIVER_ID_MAX_ENUM";
 		default:										return DE_NULL;
 	}
@@ -1483,6 +1551,21 @@
 	}
 }
 
+const char* getPresentModeKHRName (VkPresentModeKHR value)
+{
+	switch (value)
+	{
+		case VK_PRESENT_MODE_IMMEDIATE_KHR:					return "VK_PRESENT_MODE_IMMEDIATE_KHR";
+		case VK_PRESENT_MODE_MAILBOX_KHR:					return "VK_PRESENT_MODE_MAILBOX_KHR";
+		case VK_PRESENT_MODE_FIFO_KHR:						return "VK_PRESENT_MODE_FIFO_KHR";
+		case VK_PRESENT_MODE_FIFO_RELAXED_KHR:				return "VK_PRESENT_MODE_FIFO_RELAXED_KHR";
+		case VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR:		return "VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR";
+		case VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR:	return "VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR";
+		case VK_PRESENT_MODE_MAX_ENUM_KHR:					return "VK_PRESENT_MODE_MAX_ENUM_KHR";
+		default:											return DE_NULL;
+	}
+}
+
 const char* getColorSpaceKHRName (VkColorSpaceKHR value)
 {
 	switch (value)
@@ -1508,21 +1591,6 @@
 	}
 }
 
-const char* getPresentModeKHRName (VkPresentModeKHR value)
-{
-	switch (value)
-	{
-		case VK_PRESENT_MODE_IMMEDIATE_KHR:					return "VK_PRESENT_MODE_IMMEDIATE_KHR";
-		case VK_PRESENT_MODE_MAILBOX_KHR:					return "VK_PRESENT_MODE_MAILBOX_KHR";
-		case VK_PRESENT_MODE_FIFO_KHR:						return "VK_PRESENT_MODE_FIFO_KHR";
-		case VK_PRESENT_MODE_FIFO_RELAXED_KHR:				return "VK_PRESENT_MODE_FIFO_RELAXED_KHR";
-		case VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR:		return "VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR";
-		case VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR:	return "VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR";
-		case VK_PRESENT_MODE_MAX_ENUM_KHR:					return "VK_PRESENT_MODE_MAX_ENUM_KHR";
-		default:											return DE_NULL;
-	}
-}
-
 const char* getPerformanceCounterUnitKHRName (VkPerformanceCounterUnitKHR value)
 {
 	switch (value)
@@ -1618,12 +1686,10 @@
 		case VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT:		return "VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT";
 		case VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT:					return "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT";
 		case VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT";
-		case VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT:				return "VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT";
-		case VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT:	return "VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT";
 		case VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT:			return "VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT";
 		case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT:		return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT";
 		case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT:	return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT";
-		case VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT:		return "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT";
+		case VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT:	return "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT";
 		case VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT:						return "VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT";
 		default:															return DE_NULL;
 	}
@@ -1663,37 +1729,6 @@
 	}
 }
 
-const char* getIndirectCommandsTokenTypeNVXName (VkIndirectCommandsTokenTypeNVX value)
-{
-	switch (value)
-	{
-		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX:			return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX";
-		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX:	return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX";
-		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX";
-		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX";
-		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX";
-		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX";
-		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX:				return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX";
-		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX:			return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX";
-		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NVX:			return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NVX";
-		default:													return DE_NULL;
-	}
-}
-
-const char* getObjectEntryTypeNVXName (VkObjectEntryTypeNVX value)
-{
-	switch (value)
-	{
-		case VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX:	return "VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX";
-		case VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX:			return "VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX";
-		case VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX:		return "VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX";
-		case VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX:	return "VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX";
-		case VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX:	return "VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX";
-		case VK_OBJECT_ENTRY_TYPE_MAX_ENUM_NVX:			return "VK_OBJECT_ENTRY_TYPE_MAX_ENUM_NVX";
-		default:										return DE_NULL;
-	}
-}
-
 const char* getDisplayPowerStateEXTName (VkDisplayPowerStateEXT value)
 {
 	switch (value)
@@ -1835,59 +1870,62 @@
 	}
 }
 
-const char* getAccelerationStructureTypeNVName (VkAccelerationStructureTypeNV value)
+const char* getRayTracingShaderGroupTypeKHRName (VkRayTracingShaderGroupTypeKHR value)
 {
 	switch (value)
 	{
-		case VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV:		return "VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV";
-		case VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV:	return "VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV";
-		case VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_NV:		return "VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_NV";
-		default:												return DE_NULL;
-	}
-}
-
-const char* getRayTracingShaderGroupTypeNVName (VkRayTracingShaderGroupTypeNV value)
-{
-	switch (value)
-	{
-		case VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV:				return "VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV";
-		case VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV:	return "VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV";
-		case VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV:	return "VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV";
-		case VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_NV:				return "VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_NV";
+		case VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR:				return "VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR";
+		case VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR:	return "VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR";
+		case VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR:	return "VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR";
+		case VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR:				return "VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR";
 		default:														return DE_NULL;
 	}
 }
 
-const char* getGeometryTypeNVName (VkGeometryTypeNV value)
+const char* getGeometryTypeKHRName (VkGeometryTypeKHR value)
 {
 	switch (value)
 	{
-		case VK_GEOMETRY_TYPE_TRIANGLES_NV:	return "VK_GEOMETRY_TYPE_TRIANGLES_NV";
-		case VK_GEOMETRY_TYPE_AABBS_NV:		return "VK_GEOMETRY_TYPE_AABBS_NV";
-		case VK_GEOMETRY_TYPE_MAX_ENUM_NV:	return "VK_GEOMETRY_TYPE_MAX_ENUM_NV";
-		default:							return DE_NULL;
+		case VK_GEOMETRY_TYPE_TRIANGLES_KHR:	return "VK_GEOMETRY_TYPE_TRIANGLES_KHR";
+		case VK_GEOMETRY_TYPE_AABBS_KHR:		return "VK_GEOMETRY_TYPE_AABBS_KHR";
+		case VK_GEOMETRY_TYPE_INSTANCES_KHR:	return "VK_GEOMETRY_TYPE_INSTANCES_KHR";
+		case VK_GEOMETRY_TYPE_MAX_ENUM_KHR:		return "VK_GEOMETRY_TYPE_MAX_ENUM_KHR";
+		default:								return DE_NULL;
 	}
 }
 
-const char* getCopyAccelerationStructureModeNVName (VkCopyAccelerationStructureModeNV value)
+const char* getAccelerationStructureTypeKHRName (VkAccelerationStructureTypeKHR value)
 {
 	switch (value)
 	{
-		case VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV:		return "VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV";
-		case VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV:	return "VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV";
-		case VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_NV:	return "VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_NV";
+		case VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR:		return "VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR";
+		case VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR:	return "VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR";
+		case VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR:		return "VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR";
 		default:												return DE_NULL;
 	}
 }
 
-const char* getAccelerationStructureMemoryRequirementsTypeNVName (VkAccelerationStructureMemoryRequirementsTypeNV value)
+const char* getCopyAccelerationStructureModeKHRName (VkCopyAccelerationStructureModeKHR value)
 {
 	switch (value)
 	{
-		case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV:			return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV";
-		case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV:	return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV";
-		case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV:	return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV";
-		case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV:		return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV";
+		case VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR:			return "VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR";
+		case VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR:		return "VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR";
+		case VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR:		return "VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR";
+		case VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR:	return "VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR";
+		case VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR:		return "VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR";
+		default:													return DE_NULL;
+	}
+}
+
+const char* getAccelerationStructureMemoryRequirementsTypeKHRName (VkAccelerationStructureMemoryRequirementsTypeKHR value)
+{
+	switch (value)
+	{
+		case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR:			return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR";
+		case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_KHR:	return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_KHR";
+		case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_KHR:	return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_KHR";
+		case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_KHR:		return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_KHR";
 		default:																	return DE_NULL;
 	}
 }
@@ -1993,6 +2031,7 @@
 		case VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT:							return "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT";
 		case VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT:	return "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT";
 		case VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT:						return "VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT";
+		case VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT:							return "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT";
 		case VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT:								return "VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT";
 		default:																	return DE_NULL;
 	}
@@ -2071,6 +2110,35 @@
 	}
 }
 
+const char* getIndirectCommandsTokenTypeNVName (VkIndirectCommandsTokenTypeNV value)
+{
+	switch (value)
+	{
+		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV:	return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV";
+		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV:	return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV";
+		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV:	return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV";
+		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV:	return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV";
+		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV:	return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV";
+		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV:	return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV";
+		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV:			return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV";
+		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV";
+		case VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV:		return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV";
+		default:												return DE_NULL;
+	}
+}
+
+const char* getAccelerationStructureBuildTypeKHRName (VkAccelerationStructureBuildTypeKHR value)
+{
+	switch (value)
+	{
+		case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR:				return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR";
+		case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR:			return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR";
+		case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR:	return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR";
+		case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR:			return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR";
+		default:														return DE_NULL;
+	}
+}
+
 const char* getFullScreenExclusiveEXTName (VkFullScreenExclusiveEXT value)
 {
 	switch (value)
@@ -2084,6 +2152,68 @@
 	}
 }
 
+tcu::Format::Bitfield<32> getAccessFlagsStr (VkAccessFlags value)
+{
+	static const tcu::Format::BitDesc s_desc[] =
+	{
+		tcu::Format::BitDesc(VK_ACCESS_INDIRECT_COMMAND_READ_BIT,					"VK_ACCESS_INDIRECT_COMMAND_READ_BIT"),
+		tcu::Format::BitDesc(VK_ACCESS_INDEX_READ_BIT,								"VK_ACCESS_INDEX_READ_BIT"),
+		tcu::Format::BitDesc(VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,					"VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT"),
+		tcu::Format::BitDesc(VK_ACCESS_UNIFORM_READ_BIT,							"VK_ACCESS_UNIFORM_READ_BIT"),
+		tcu::Format::BitDesc(VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,					"VK_ACCESS_INPUT_ATTACHMENT_READ_BIT"),
+		tcu::Format::BitDesc(VK_ACCESS_SHADER_READ_BIT,								"VK_ACCESS_SHADER_READ_BIT"),
+		tcu::Format::BitDesc(VK_ACCESS_SHADER_WRITE_BIT,							"VK_ACCESS_SHADER_WRITE_BIT"),
+		tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,					"VK_ACCESS_COLOR_ATTACHMENT_READ_BIT"),
+		tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,					"VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT"),
+		tcu::Format::BitDesc(VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,			"VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT"),
+		tcu::Format::BitDesc(VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,			"VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"),
+		tcu::Format::BitDesc(VK_ACCESS_TRANSFER_READ_BIT,							"VK_ACCESS_TRANSFER_READ_BIT"),
+		tcu::Format::BitDesc(VK_ACCESS_TRANSFER_WRITE_BIT,							"VK_ACCESS_TRANSFER_WRITE_BIT"),
+		tcu::Format::BitDesc(VK_ACCESS_HOST_READ_BIT,								"VK_ACCESS_HOST_READ_BIT"),
+		tcu::Format::BitDesc(VK_ACCESS_HOST_WRITE_BIT,								"VK_ACCESS_HOST_WRITE_BIT"),
+		tcu::Format::BitDesc(VK_ACCESS_MEMORY_READ_BIT,								"VK_ACCESS_MEMORY_READ_BIT"),
+		tcu::Format::BitDesc(VK_ACCESS_MEMORY_WRITE_BIT,							"VK_ACCESS_MEMORY_WRITE_BIT"),
+		tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,			"VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT"),
+		tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,		"VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"),
+		tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,	"VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"),
+		tcu::Format::BitDesc(VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT,			"VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT"),
+		tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,	"VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"),
+		tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,			"VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR"),
+		tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,		"VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR"),
+		tcu::Format::BitDesc(VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV,				"VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV"),
+		tcu::Format::BitDesc(VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,			"VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT"),
+		tcu::Format::BitDesc(VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV,				"VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV"),
+		tcu::Format::BitDesc(VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV,				"VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV"),
+		tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV,			"VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV"),
+		tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV,			"VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV"),
+		tcu::Format::BitDesc(VK_ACCESS_FLAG_BITS_MAX_ENUM,							"VK_ACCESS_FLAG_BITS_MAX_ENUM"),
+	};
+	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+tcu::Format::Bitfield<32> getImageAspectFlagsStr (VkImageAspectFlags value)
+{
+	static const tcu::Format::BitDesc s_desc[] =
+	{
+		tcu::Format::BitDesc(VK_IMAGE_ASPECT_COLOR_BIT,					"VK_IMAGE_ASPECT_COLOR_BIT"),
+		tcu::Format::BitDesc(VK_IMAGE_ASPECT_DEPTH_BIT,					"VK_IMAGE_ASPECT_DEPTH_BIT"),
+		tcu::Format::BitDesc(VK_IMAGE_ASPECT_STENCIL_BIT,				"VK_IMAGE_ASPECT_STENCIL_BIT"),
+		tcu::Format::BitDesc(VK_IMAGE_ASPECT_METADATA_BIT,				"VK_IMAGE_ASPECT_METADATA_BIT"),
+		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_0_BIT,				"VK_IMAGE_ASPECT_PLANE_0_BIT"),
+		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_1_BIT,				"VK_IMAGE_ASPECT_PLANE_1_BIT"),
+		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_2_BIT,				"VK_IMAGE_ASPECT_PLANE_2_BIT"),
+		tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT,	"VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT"),
+		tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT,	"VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT"),
+		tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT,	"VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT"),
+		tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT,	"VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT"),
+		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_0_BIT_KHR,			"VK_IMAGE_ASPECT_PLANE_0_BIT_KHR"),
+		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_1_BIT_KHR,			"VK_IMAGE_ASPECT_PLANE_1_BIT_KHR"),
+		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_2_BIT_KHR,			"VK_IMAGE_ASPECT_PLANE_2_BIT_KHR"),
+		tcu::Format::BitDesc(VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM,		"VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM"),
+	};
+	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
 tcu::Format::Bitfield<32> getFormatFeatureFlagsStr (VkFormatFeatureFlags value)
 {
 	static const tcu::Format::BitDesc s_desc[] =
@@ -2112,6 +2242,7 @@
 		tcu::Format::BitDesc(VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,														"VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT"),
 		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,													"VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT"),
 		tcu::Format::BitDesc(VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG,												"VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG"),
+		tcu::Format::BitDesc(VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR,									"VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR"),
 		tcu::Format::BitDesc(VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT,													"VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT"),
 		tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR,															"VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR"),
 		tcu::Format::BitDesc(VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR,															"VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR"),
@@ -2129,25 +2260,6 @@
 	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getImageUsageFlagsStr (VkImageUsageFlags value)
-{
-	static const tcu::Format::BitDesc s_desc[] =
-	{
-		tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSFER_SRC_BIT,				"VK_IMAGE_USAGE_TRANSFER_SRC_BIT"),
-		tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSFER_DST_BIT,				"VK_IMAGE_USAGE_TRANSFER_DST_BIT"),
-		tcu::Format::BitDesc(VK_IMAGE_USAGE_SAMPLED_BIT,					"VK_IMAGE_USAGE_SAMPLED_BIT"),
-		tcu::Format::BitDesc(VK_IMAGE_USAGE_STORAGE_BIT,					"VK_IMAGE_USAGE_STORAGE_BIT"),
-		tcu::Format::BitDesc(VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,			"VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT"),
-		tcu::Format::BitDesc(VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,	"VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT"),
-		tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,		"VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT"),
-		tcu::Format::BitDesc(VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,			"VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT"),
-		tcu::Format::BitDesc(VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV,		"VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV"),
-		tcu::Format::BitDesc(VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,	"VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT"),
-		tcu::Format::BitDesc(VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM,				"VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM"),
-	};
-	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
-}
-
 tcu::Format::Bitfield<32> getImageCreateFlagsStr (VkImageCreateFlags value)
 {
 	static const tcu::Format::BitDesc s_desc[] =
@@ -2194,16 +2306,33 @@
 	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getQueueFlagsStr (VkQueueFlags value)
+tcu::Format::Bitfield<32> getImageUsageFlagsStr (VkImageUsageFlags value)
 {
 	static const tcu::Format::BitDesc s_desc[] =
 	{
-		tcu::Format::BitDesc(VK_QUEUE_GRAPHICS_BIT,			"VK_QUEUE_GRAPHICS_BIT"),
-		tcu::Format::BitDesc(VK_QUEUE_COMPUTE_BIT,			"VK_QUEUE_COMPUTE_BIT"),
-		tcu::Format::BitDesc(VK_QUEUE_TRANSFER_BIT,			"VK_QUEUE_TRANSFER_BIT"),
-		tcu::Format::BitDesc(VK_QUEUE_SPARSE_BINDING_BIT,	"VK_QUEUE_SPARSE_BINDING_BIT"),
-		tcu::Format::BitDesc(VK_QUEUE_PROTECTED_BIT,		"VK_QUEUE_PROTECTED_BIT"),
-		tcu::Format::BitDesc(VK_QUEUE_FLAG_BITS_MAX_ENUM,	"VK_QUEUE_FLAG_BITS_MAX_ENUM"),
+		tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSFER_SRC_BIT,				"VK_IMAGE_USAGE_TRANSFER_SRC_BIT"),
+		tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSFER_DST_BIT,				"VK_IMAGE_USAGE_TRANSFER_DST_BIT"),
+		tcu::Format::BitDesc(VK_IMAGE_USAGE_SAMPLED_BIT,					"VK_IMAGE_USAGE_SAMPLED_BIT"),
+		tcu::Format::BitDesc(VK_IMAGE_USAGE_STORAGE_BIT,					"VK_IMAGE_USAGE_STORAGE_BIT"),
+		tcu::Format::BitDesc(VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,			"VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT"),
+		tcu::Format::BitDesc(VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,	"VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT"),
+		tcu::Format::BitDesc(VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT,		"VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT"),
+		tcu::Format::BitDesc(VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,			"VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT"),
+		tcu::Format::BitDesc(VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV,		"VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV"),
+		tcu::Format::BitDesc(VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT,	"VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT"),
+		tcu::Format::BitDesc(VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM,				"VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM"),
+	};
+	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+tcu::Format::Bitfield<32> getMemoryHeapFlagsStr (VkMemoryHeapFlags value)
+{
+	static const tcu::Format::BitDesc s_desc[] =
+	{
+		tcu::Format::BitDesc(VK_MEMORY_HEAP_DEVICE_LOCAL_BIT,		"VK_MEMORY_HEAP_DEVICE_LOCAL_BIT"),
+		tcu::Format::BitDesc(VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,		"VK_MEMORY_HEAP_MULTI_INSTANCE_BIT"),
+		tcu::Format::BitDesc(VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR,	"VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR"),
+		tcu::Format::BitDesc(VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM,		"VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM"),
 	};
 	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
@@ -2225,14 +2354,16 @@
 	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getMemoryHeapFlagsStr (VkMemoryHeapFlags value)
+tcu::Format::Bitfield<32> getQueueFlagsStr (VkQueueFlags value)
 {
 	static const tcu::Format::BitDesc s_desc[] =
 	{
-		tcu::Format::BitDesc(VK_MEMORY_HEAP_DEVICE_LOCAL_BIT,		"VK_MEMORY_HEAP_DEVICE_LOCAL_BIT"),
-		tcu::Format::BitDesc(VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,		"VK_MEMORY_HEAP_MULTI_INSTANCE_BIT"),
-		tcu::Format::BitDesc(VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR,	"VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR"),
-		tcu::Format::BitDesc(VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM,		"VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM"),
+		tcu::Format::BitDesc(VK_QUEUE_GRAPHICS_BIT,			"VK_QUEUE_GRAPHICS_BIT"),
+		tcu::Format::BitDesc(VK_QUEUE_COMPUTE_BIT,			"VK_QUEUE_COMPUTE_BIT"),
+		tcu::Format::BitDesc(VK_QUEUE_TRANSFER_BIT,			"VK_QUEUE_TRANSFER_BIT"),
+		tcu::Format::BitDesc(VK_QUEUE_SPARSE_BINDING_BIT,	"VK_QUEUE_SPARSE_BINDING_BIT"),
+		tcu::Format::BitDesc(VK_QUEUE_PROTECTED_BIT,		"VK_QUEUE_PROTECTED_BIT"),
+		tcu::Format::BitDesc(VK_QUEUE_FLAG_BITS_MAX_ENUM,	"VK_QUEUE_FLAG_BITS_MAX_ENUM"),
 	};
 	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
@@ -2251,56 +2382,45 @@
 {
 	static const tcu::Format::BitDesc s_desc[] =
 	{
-		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,						"VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT"),
-		tcu::Format::BitDesc(VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,					"VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT"),
-		tcu::Format::BitDesc(VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,					"VK_PIPELINE_STAGE_VERTEX_INPUT_BIT"),
-		tcu::Format::BitDesc(VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,					"VK_PIPELINE_STAGE_VERTEX_SHADER_BIT"),
-		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,		"VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT"),
-		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT,	"VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT"),
-		tcu::Format::BitDesc(VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT,					"VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT"),
-		tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,					"VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT"),
-		tcu::Format::BitDesc(VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,			"VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT"),
-		tcu::Format::BitDesc(VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,				"VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT"),
-		tcu::Format::BitDesc(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,			"VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT"),
-		tcu::Format::BitDesc(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,					"VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT"),
-		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TRANSFER_BIT,						"VK_PIPELINE_STAGE_TRANSFER_BIT"),
-		tcu::Format::BitDesc(VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,					"VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT"),
-		tcu::Format::BitDesc(VK_PIPELINE_STAGE_HOST_BIT,							"VK_PIPELINE_STAGE_HOST_BIT"),
-		tcu::Format::BitDesc(VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,					"VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT"),
-		tcu::Format::BitDesc(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,					"VK_PIPELINE_STAGE_ALL_COMMANDS_BIT"),
-		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT,			"VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT"),
-		tcu::Format::BitDesc(VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT,		"VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT"),
-		tcu::Format::BitDesc(VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX,				"VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX"),
-		tcu::Format::BitDesc(VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV,			"VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV"),
-		tcu::Format::BitDesc(VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV,			"VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV"),
-		tcu::Format::BitDesc(VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV,	"VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV"),
-		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV,					"VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV"),
-		tcu::Format::BitDesc(VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV,					"VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV"),
-		tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT,	"VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT"),
-		tcu::Format::BitDesc(VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM,					"VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM"),
+		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,							"VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT"),
+		tcu::Format::BitDesc(VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT,						"VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT"),
+		tcu::Format::BitDesc(VK_PIPELINE_STAGE_VERTEX_INPUT_BIT,						"VK_PIPELINE_STAGE_VERTEX_INPUT_BIT"),
+		tcu::Format::BitDesc(VK_PIPELINE_STAGE_VERTEX_SHADER_BIT,						"VK_PIPELINE_STAGE_VERTEX_SHADER_BIT"),
+		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT,			"VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT"),
+		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT,		"VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT"),
+		tcu::Format::BitDesc(VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT,						"VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT"),
+		tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,						"VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT"),
+		tcu::Format::BitDesc(VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT,				"VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT"),
+		tcu::Format::BitDesc(VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,					"VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT"),
+		tcu::Format::BitDesc(VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,				"VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT"),
+		tcu::Format::BitDesc(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,						"VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT"),
+		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TRANSFER_BIT,							"VK_PIPELINE_STAGE_TRANSFER_BIT"),
+		tcu::Format::BitDesc(VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,						"VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT"),
+		tcu::Format::BitDesc(VK_PIPELINE_STAGE_HOST_BIT,								"VK_PIPELINE_STAGE_HOST_BIT"),
+		tcu::Format::BitDesc(VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,						"VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT"),
+		tcu::Format::BitDesc(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,						"VK_PIPELINE_STAGE_ALL_COMMANDS_BIT"),
+		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT,				"VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT"),
+		tcu::Format::BitDesc(VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT,			"VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT"),
+		tcu::Format::BitDesc(VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,				"VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR"),
+		tcu::Format::BitDesc(VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,	"VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR"),
+		tcu::Format::BitDesc(VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV,				"VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV"),
+		tcu::Format::BitDesc(VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV,						"VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV"),
+		tcu::Format::BitDesc(VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV,						"VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV"),
+		tcu::Format::BitDesc(VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT,		"VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT"),
+		tcu::Format::BitDesc(VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV,				"VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV"),
+		tcu::Format::BitDesc(VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV,				"VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV"),
+		tcu::Format::BitDesc(VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV,		"VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV"),
+		tcu::Format::BitDesc(VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM,						"VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM"),
 	};
 	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getImageAspectFlagsStr (VkImageAspectFlags value)
+tcu::Format::Bitfield<32> getSparseMemoryBindFlagsStr (VkSparseMemoryBindFlags value)
 {
 	static const tcu::Format::BitDesc s_desc[] =
 	{
-		tcu::Format::BitDesc(VK_IMAGE_ASPECT_COLOR_BIT,					"VK_IMAGE_ASPECT_COLOR_BIT"),
-		tcu::Format::BitDesc(VK_IMAGE_ASPECT_DEPTH_BIT,					"VK_IMAGE_ASPECT_DEPTH_BIT"),
-		tcu::Format::BitDesc(VK_IMAGE_ASPECT_STENCIL_BIT,				"VK_IMAGE_ASPECT_STENCIL_BIT"),
-		tcu::Format::BitDesc(VK_IMAGE_ASPECT_METADATA_BIT,				"VK_IMAGE_ASPECT_METADATA_BIT"),
-		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_0_BIT,				"VK_IMAGE_ASPECT_PLANE_0_BIT"),
-		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_1_BIT,				"VK_IMAGE_ASPECT_PLANE_1_BIT"),
-		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_2_BIT,				"VK_IMAGE_ASPECT_PLANE_2_BIT"),
-		tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT,	"VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT"),
-		tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT,	"VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT"),
-		tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT,	"VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT"),
-		tcu::Format::BitDesc(VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT,	"VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT"),
-		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_0_BIT_KHR,			"VK_IMAGE_ASPECT_PLANE_0_BIT_KHR"),
-		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_1_BIT_KHR,			"VK_IMAGE_ASPECT_PLANE_1_BIT_KHR"),
-		tcu::Format::BitDesc(VK_IMAGE_ASPECT_PLANE_2_BIT_KHR,			"VK_IMAGE_ASPECT_PLANE_2_BIT_KHR"),
-		tcu::Format::BitDesc(VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM,		"VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM"),
+		tcu::Format::BitDesc(VK_SPARSE_MEMORY_BIND_METADATA_BIT,		"VK_SPARSE_MEMORY_BIND_METADATA_BIT"),
+		tcu::Format::BitDesc(VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM,	"VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM"),
 	};
 	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
@@ -2317,16 +2437,6 @@
 	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getSparseMemoryBindFlagsStr (VkSparseMemoryBindFlags value)
-{
-	static const tcu::Format::BitDesc s_desc[] =
-	{
-		tcu::Format::BitDesc(VK_SPARSE_MEMORY_BIND_METADATA_BIT,		"VK_SPARSE_MEMORY_BIND_METADATA_BIT"),
-		tcu::Format::BitDesc(VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM,	"VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM"),
-	};
-	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
-}
-
 tcu::Format::Bitfield<32> getFenceCreateFlagsStr (VkFenceCreateFlags value)
 {
 	static const tcu::Format::BitDesc s_desc[] =
@@ -2403,6 +2513,7 @@
 		tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,			"VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT"),
 		tcu::Format::BitDesc(VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT,	"VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT"),
 		tcu::Format::BitDesc(VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT,				"VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT"),
+		tcu::Format::BitDesc(VK_BUFFER_USAGE_RAY_TRACING_BIT_KHR,						"VK_BUFFER_USAGE_RAY_TRACING_BIT_KHR"),
 		tcu::Format::BitDesc(VK_BUFFER_USAGE_RAY_TRACING_BIT_NV,						"VK_BUFFER_USAGE_RAY_TRACING_BIT_NV"),
 		tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT,				"VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT"),
 		tcu::Format::BitDesc(VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR,				"VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR"),
@@ -2415,8 +2526,9 @@
 {
 	static const tcu::Format::BitDesc s_desc[] =
 	{
-		tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT,	"VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT"),
-		tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM,					"VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM"),
+		tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT,		"VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT"),
+		tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT,	"VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT"),
+		tcu::Format::BitDesc(VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM,						"VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM"),
 	};
 	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
@@ -2430,22 +2542,55 @@
 	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
+tcu::Format::Bitfield<32> getPipelineCacheCreateFlagsStr (VkPipelineCacheCreateFlags value)
+{
+	static const tcu::Format::BitDesc s_desc[] =
+	{
+		tcu::Format::BitDesc(VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT,	"VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT"),
+		tcu::Format::BitDesc(VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM,				"VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM"),
+	};
+	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+tcu::Format::Bitfield<32> getColorComponentFlagsStr (VkColorComponentFlags value)
+{
+	static const tcu::Format::BitDesc s_desc[] =
+	{
+		tcu::Format::BitDesc(VK_COLOR_COMPONENT_R_BIT,				"VK_COLOR_COMPONENT_R_BIT"),
+		tcu::Format::BitDesc(VK_COLOR_COMPONENT_G_BIT,				"VK_COLOR_COMPONENT_G_BIT"),
+		tcu::Format::BitDesc(VK_COLOR_COMPONENT_B_BIT,				"VK_COLOR_COMPONENT_B_BIT"),
+		tcu::Format::BitDesc(VK_COLOR_COMPONENT_A_BIT,				"VK_COLOR_COMPONENT_A_BIT"),
+		tcu::Format::BitDesc(VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM,	"VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM"),
+	};
+	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
 tcu::Format::Bitfield<32> getPipelineCreateFlagsStr (VkPipelineCreateFlags value)
 {
 	static const tcu::Format::BitDesc s_desc[] =
 	{
-		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT,					"VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT"),
-		tcu::Format::BitDesc(VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT,						"VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT"),
-		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DERIVATIVE_BIT,								"VK_PIPELINE_CREATE_DERIVATIVE_BIT"),
-		tcu::Format::BitDesc(VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,			"VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT"),
-		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,							"VK_PIPELINE_CREATE_DISPATCH_BASE_BIT"),
-		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV,						"VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV"),
-		tcu::Format::BitDesc(VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR,					"VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR"),
-		tcu::Format::BitDesc(VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR,	"VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR"),
-		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISPATCH_BASE,								"VK_PIPELINE_CREATE_DISPATCH_BASE"),
-		tcu::Format::BitDesc(VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR,		"VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR"),
-		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISPATCH_BASE_KHR,							"VK_PIPELINE_CREATE_DISPATCH_BASE_KHR"),
-		tcu::Format::BitDesc(VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM,							"VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM"),
+		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT,							"VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT"),
+		tcu::Format::BitDesc(VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT,								"VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT"),
+		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DERIVATIVE_BIT,										"VK_PIPELINE_CREATE_DERIVATIVE_BIT"),
+		tcu::Format::BitDesc(VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,					"VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT"),
+		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,									"VK_PIPELINE_CREATE_DISPATCH_BASE_BIT"),
+		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR,		"VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR"),
+		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR,	"VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR"),
+		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR,			"VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR"),
+		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR,	"VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR"),
+		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR,					"VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR"),
+		tcu::Format::BitDesc(VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR,						"VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR"),
+		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV,								"VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV"),
+		tcu::Format::BitDesc(VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR,							"VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR"),
+		tcu::Format::BitDesc(VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR,			"VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR"),
+		tcu::Format::BitDesc(VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV,							"VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV"),
+		tcu::Format::BitDesc(VK_PIPELINE_CREATE_LIBRARY_BIT_KHR,									"VK_PIPELINE_CREATE_LIBRARY_BIT_KHR"),
+		tcu::Format::BitDesc(VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT,			"VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT"),
+		tcu::Format::BitDesc(VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT,					"VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT"),
+		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISPATCH_BASE,										"VK_PIPELINE_CREATE_DISPATCH_BASE"),
+		tcu::Format::BitDesc(VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR,				"VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR"),
+		tcu::Format::BitDesc(VK_PIPELINE_CREATE_DISPATCH_BASE_KHR,									"VK_PIPELINE_CREATE_DISPATCH_BASE_KHR"),
+		tcu::Format::BitDesc(VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM,									"VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM"),
 	};
 	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
@@ -2473,14 +2618,20 @@
 		tcu::Format::BitDesc(VK_SHADER_STAGE_COMPUTE_BIT,					"VK_SHADER_STAGE_COMPUTE_BIT"),
 		tcu::Format::BitDesc(VK_SHADER_STAGE_ALL_GRAPHICS,					"VK_SHADER_STAGE_ALL_GRAPHICS"),
 		tcu::Format::BitDesc(VK_SHADER_STAGE_ALL,							"VK_SHADER_STAGE_ALL"),
+		tcu::Format::BitDesc(VK_SHADER_STAGE_RAYGEN_BIT_KHR,				"VK_SHADER_STAGE_RAYGEN_BIT_KHR"),
+		tcu::Format::BitDesc(VK_SHADER_STAGE_ANY_HIT_BIT_KHR,				"VK_SHADER_STAGE_ANY_HIT_BIT_KHR"),
+		tcu::Format::BitDesc(VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,			"VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR"),
+		tcu::Format::BitDesc(VK_SHADER_STAGE_MISS_BIT_KHR,					"VK_SHADER_STAGE_MISS_BIT_KHR"),
+		tcu::Format::BitDesc(VK_SHADER_STAGE_INTERSECTION_BIT_KHR,			"VK_SHADER_STAGE_INTERSECTION_BIT_KHR"),
+		tcu::Format::BitDesc(VK_SHADER_STAGE_CALLABLE_BIT_KHR,				"VK_SHADER_STAGE_CALLABLE_BIT_KHR"),
+		tcu::Format::BitDesc(VK_SHADER_STAGE_TASK_BIT_NV,					"VK_SHADER_STAGE_TASK_BIT_NV"),
+		tcu::Format::BitDesc(VK_SHADER_STAGE_MESH_BIT_NV,					"VK_SHADER_STAGE_MESH_BIT_NV"),
 		tcu::Format::BitDesc(VK_SHADER_STAGE_RAYGEN_BIT_NV,					"VK_SHADER_STAGE_RAYGEN_BIT_NV"),
 		tcu::Format::BitDesc(VK_SHADER_STAGE_ANY_HIT_BIT_NV,				"VK_SHADER_STAGE_ANY_HIT_BIT_NV"),
 		tcu::Format::BitDesc(VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV,			"VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV"),
 		tcu::Format::BitDesc(VK_SHADER_STAGE_MISS_BIT_NV,					"VK_SHADER_STAGE_MISS_BIT_NV"),
 		tcu::Format::BitDesc(VK_SHADER_STAGE_INTERSECTION_BIT_NV,			"VK_SHADER_STAGE_INTERSECTION_BIT_NV"),
 		tcu::Format::BitDesc(VK_SHADER_STAGE_CALLABLE_BIT_NV,				"VK_SHADER_STAGE_CALLABLE_BIT_NV"),
-		tcu::Format::BitDesc(VK_SHADER_STAGE_TASK_BIT_NV,					"VK_SHADER_STAGE_TASK_BIT_NV"),
-		tcu::Format::BitDesc(VK_SHADER_STAGE_MESH_BIT_NV,					"VK_SHADER_STAGE_MESH_BIT_NV"),
 		tcu::Format::BitDesc(VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM,			"VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM"),
 	};
 	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
@@ -2499,19 +2650,6 @@
 	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getColorComponentFlagsStr (VkColorComponentFlags value)
-{
-	static const tcu::Format::BitDesc s_desc[] =
-	{
-		tcu::Format::BitDesc(VK_COLOR_COMPONENT_R_BIT,				"VK_COLOR_COMPONENT_R_BIT"),
-		tcu::Format::BitDesc(VK_COLOR_COMPONENT_G_BIT,				"VK_COLOR_COMPONENT_G_BIT"),
-		tcu::Format::BitDesc(VK_COLOR_COMPONENT_B_BIT,				"VK_COLOR_COMPONENT_B_BIT"),
-		tcu::Format::BitDesc(VK_COLOR_COMPONENT_A_BIT,				"VK_COLOR_COMPONENT_A_BIT"),
-		tcu::Format::BitDesc(VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM,	"VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM"),
-	};
-	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
-}
-
 tcu::Format::Bitfield<32> getSamplerCreateFlagsStr (VkSamplerCreateFlags value)
 {
 	static const tcu::Format::BitDesc s_desc[] =
@@ -2523,6 +2661,18 @@
 	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
+tcu::Format::Bitfield<32> getDescriptorPoolCreateFlagsStr (VkDescriptorPoolCreateFlags value)
+{
+	static const tcu::Format::BitDesc s_desc[] =
+	{
+		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,		"VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT"),
+		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,		"VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT"),
+		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT,	"VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT"),
+		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM,			"VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM"),
+	};
+	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
 tcu::Format::Bitfield<32> getDescriptorSetLayoutCreateFlagsStr (VkDescriptorSetLayoutCreateFlags value)
 {
 	static const tcu::Format::BitDesc s_desc[] =
@@ -2535,14 +2685,26 @@
 	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getDescriptorPoolCreateFlagsStr (VkDescriptorPoolCreateFlags value)
+tcu::Format::Bitfield<32> getAttachmentDescriptionFlagsStr (VkAttachmentDescriptionFlags value)
 {
 	static const tcu::Format::BitDesc s_desc[] =
 	{
-		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,		"VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT"),
-		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,		"VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT"),
-		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT,	"VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT"),
-		tcu::Format::BitDesc(VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM,			"VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM"),
+		tcu::Format::BitDesc(VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT,		"VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT"),
+		tcu::Format::BitDesc(VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM,	"VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM"),
+	};
+	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+tcu::Format::Bitfield<32> getDependencyFlagsStr (VkDependencyFlags value)
+{
+	static const tcu::Format::BitDesc s_desc[] =
+	{
+		tcu::Format::BitDesc(VK_DEPENDENCY_BY_REGION_BIT,			"VK_DEPENDENCY_BY_REGION_BIT"),
+		tcu::Format::BitDesc(VK_DEPENDENCY_DEVICE_GROUP_BIT,		"VK_DEPENDENCY_DEVICE_GROUP_BIT"),
+		tcu::Format::BitDesc(VK_DEPENDENCY_VIEW_LOCAL_BIT,			"VK_DEPENDENCY_VIEW_LOCAL_BIT"),
+		tcu::Format::BitDesc(VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR,		"VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR"),
+		tcu::Format::BitDesc(VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR,	"VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR"),
+		tcu::Format::BitDesc(VK_DEPENDENCY_FLAG_BITS_MAX_ENUM,		"VK_DEPENDENCY_FLAG_BITS_MAX_ENUM"),
 	};
 	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
@@ -2562,83 +2724,25 @@
 {
 	static const tcu::Format::BitDesc s_desc[] =
 	{
+		tcu::Format::BitDesc(VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM,	"VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM"),
 		tcu::Format::BitDesc(VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM,	"VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM"),
 	};
 	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getAttachmentDescriptionFlagsStr (VkAttachmentDescriptionFlags value)
-{
-	static const tcu::Format::BitDesc s_desc[] =
-	{
-		tcu::Format::BitDesc(VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT,		"VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT"),
-		tcu::Format::BitDesc(VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM,	"VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM"),
-	};
-	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
-}
-
 tcu::Format::Bitfield<32> getSubpassDescriptionFlagsStr (VkSubpassDescriptionFlags value)
 {
 	static const tcu::Format::BitDesc s_desc[] =
 	{
 		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX,		"VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX"),
 		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX,	"VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX"),
+		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM,			"VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM"),
+		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM,			"VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM"),
 		tcu::Format::BitDesc(VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM,					"VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM"),
 	};
 	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getAccessFlagsStr (VkAccessFlags value)
-{
-	static const tcu::Format::BitDesc s_desc[] =
-	{
-		tcu::Format::BitDesc(VK_ACCESS_INDIRECT_COMMAND_READ_BIT,					"VK_ACCESS_INDIRECT_COMMAND_READ_BIT"),
-		tcu::Format::BitDesc(VK_ACCESS_INDEX_READ_BIT,								"VK_ACCESS_INDEX_READ_BIT"),
-		tcu::Format::BitDesc(VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT,					"VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT"),
-		tcu::Format::BitDesc(VK_ACCESS_UNIFORM_READ_BIT,							"VK_ACCESS_UNIFORM_READ_BIT"),
-		tcu::Format::BitDesc(VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,					"VK_ACCESS_INPUT_ATTACHMENT_READ_BIT"),
-		tcu::Format::BitDesc(VK_ACCESS_SHADER_READ_BIT,								"VK_ACCESS_SHADER_READ_BIT"),
-		tcu::Format::BitDesc(VK_ACCESS_SHADER_WRITE_BIT,							"VK_ACCESS_SHADER_WRITE_BIT"),
-		tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,					"VK_ACCESS_COLOR_ATTACHMENT_READ_BIT"),
-		tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,					"VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT"),
-		tcu::Format::BitDesc(VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT,			"VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT"),
-		tcu::Format::BitDesc(VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,			"VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT"),
-		tcu::Format::BitDesc(VK_ACCESS_TRANSFER_READ_BIT,							"VK_ACCESS_TRANSFER_READ_BIT"),
-		tcu::Format::BitDesc(VK_ACCESS_TRANSFER_WRITE_BIT,							"VK_ACCESS_TRANSFER_WRITE_BIT"),
-		tcu::Format::BitDesc(VK_ACCESS_HOST_READ_BIT,								"VK_ACCESS_HOST_READ_BIT"),
-		tcu::Format::BitDesc(VK_ACCESS_HOST_WRITE_BIT,								"VK_ACCESS_HOST_WRITE_BIT"),
-		tcu::Format::BitDesc(VK_ACCESS_MEMORY_READ_BIT,								"VK_ACCESS_MEMORY_READ_BIT"),
-		tcu::Format::BitDesc(VK_ACCESS_MEMORY_WRITE_BIT,							"VK_ACCESS_MEMORY_WRITE_BIT"),
-		tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,			"VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT"),
-		tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,		"VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT"),
-		tcu::Format::BitDesc(VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,	"VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT"),
-		tcu::Format::BitDesc(VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT,			"VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT"),
-		tcu::Format::BitDesc(VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX,				"VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX"),
-		tcu::Format::BitDesc(VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX,				"VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX"),
-		tcu::Format::BitDesc(VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,	"VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT"),
-		tcu::Format::BitDesc(VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV,				"VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV"),
-		tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV,			"VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV"),
-		tcu::Format::BitDesc(VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV,			"VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV"),
-		tcu::Format::BitDesc(VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,			"VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT"),
-		tcu::Format::BitDesc(VK_ACCESS_FLAG_BITS_MAX_ENUM,							"VK_ACCESS_FLAG_BITS_MAX_ENUM"),
-	};
-	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
-}
-
-tcu::Format::Bitfield<32> getDependencyFlagsStr (VkDependencyFlags value)
-{
-	static const tcu::Format::BitDesc s_desc[] =
-	{
-		tcu::Format::BitDesc(VK_DEPENDENCY_BY_REGION_BIT,			"VK_DEPENDENCY_BY_REGION_BIT"),
-		tcu::Format::BitDesc(VK_DEPENDENCY_DEVICE_GROUP_BIT,		"VK_DEPENDENCY_DEVICE_GROUP_BIT"),
-		tcu::Format::BitDesc(VK_DEPENDENCY_VIEW_LOCAL_BIT,			"VK_DEPENDENCY_VIEW_LOCAL_BIT"),
-		tcu::Format::BitDesc(VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR,		"VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR"),
-		tcu::Format::BitDesc(VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR,	"VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR"),
-		tcu::Format::BitDesc(VK_DEPENDENCY_FLAG_BITS_MAX_ENUM,		"VK_DEPENDENCY_FLAG_BITS_MAX_ENUM"),
-	};
-	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
-}
-
 tcu::Format::Bitfield<32> getCommandPoolCreateFlagsStr (VkCommandPoolCreateFlags value)
 {
 	static const tcu::Format::BitDesc s_desc[] =
@@ -3067,30 +3171,6 @@
 	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getIndirectCommandsLayoutUsageFlagsNVXStr (VkIndirectCommandsLayoutUsageFlagsNVX value)
-{
-	static const tcu::Format::BitDesc s_desc[] =
-	{
-		tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX,	"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX"),
-		tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX,	"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX"),
-		tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX,	"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX"),
-		tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX,	"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX"),
-		tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NVX,		"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NVX"),
-	};
-	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
-}
-
-tcu::Format::Bitfield<32> getObjectEntryUsageFlagsNVXStr (VkObjectEntryUsageFlagsNVX value)
-{
-	static const tcu::Format::BitDesc s_desc[] =
-	{
-		tcu::Format::BitDesc(VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX,		"VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX"),
-		tcu::Format::BitDesc(VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX,			"VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX"),
-		tcu::Format::BitDesc(VK_OBJECT_ENTRY_USAGE_FLAG_BITS_MAX_ENUM_NVX,	"VK_OBJECT_ENTRY_USAGE_FLAG_BITS_MAX_ENUM_NVX"),
-	};
-	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
-}
-
 tcu::Format::Bitfield<32> getSurfaceCounterFlagsEXTStr (VkSurfaceCounterFlagsEXT value)
 {
 	static const tcu::Format::BitDesc s_desc[] =
@@ -3126,40 +3206,51 @@
 	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getGeometryFlagsNVStr (VkGeometryFlagsNV value)
+tcu::Format::Bitfield<32> getGeometryFlagsKHRStr (VkGeometryFlagsKHR value)
 {
 	static const tcu::Format::BitDesc s_desc[] =
 	{
+		tcu::Format::BitDesc(VK_GEOMETRY_OPAQUE_BIT_KHR,							"VK_GEOMETRY_OPAQUE_BIT_KHR"),
+		tcu::Format::BitDesc(VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,	"VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR"),
 		tcu::Format::BitDesc(VK_GEOMETRY_OPAQUE_BIT_NV,								"VK_GEOMETRY_OPAQUE_BIT_NV"),
 		tcu::Format::BitDesc(VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV,	"VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV"),
-		tcu::Format::BitDesc(VK_GEOMETRY_FLAG_BITS_MAX_ENUM_NV,						"VK_GEOMETRY_FLAG_BITS_MAX_ENUM_NV"),
+		tcu::Format::BitDesc(VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR,					"VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR"),
 	};
 	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getGeometryInstanceFlagsNVStr (VkGeometryInstanceFlagsNV value)
+tcu::Format::Bitfield<32> getGeometryInstanceFlagsKHRStr (VkGeometryInstanceFlagsKHR value)
 {
 	static const tcu::Format::BitDesc s_desc[] =
 	{
+		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,		"VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR"),
+		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,	"VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR"),
+		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,						"VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR"),
+		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,					"VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR"),
 		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV,				"VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV"),
 		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV,	"VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV"),
 		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV,						"VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV"),
 		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV,					"VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV"),
-		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_NV,					"VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_NV"),
+		tcu::Format::BitDesc(VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR,					"VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR"),
 	};
 	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
-tcu::Format::Bitfield<32> getBuildAccelerationStructureFlagsNVStr (VkBuildAccelerationStructureFlagsNV value)
+tcu::Format::Bitfield<32> getBuildAccelerationStructureFlagsKHRStr (VkBuildAccelerationStructureFlagsKHR value)
 {
 	static const tcu::Format::BitDesc s_desc[] =
 	{
+		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,		"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR"),
+		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,	"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR"),
+		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,	"VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR"),
+		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,	"VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR"),
+		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,		"VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR"),
 		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV,		"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV"),
 		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV,	"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV"),
 		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV,	"VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV"),
 		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV,	"VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV"),
 		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV,			"VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV"),
-		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_NV,		"VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_NV"),
+		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR,	"VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR"),
 	};
 	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
@@ -3210,6 +3301,49 @@
 	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
 }
 
+tcu::Format::Bitfield<32> getIndirectStateFlagsNVStr (VkIndirectStateFlagsNV value)
+{
+	static const tcu::Format::BitDesc s_desc[] =
+	{
+		tcu::Format::BitDesc(VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV,	"VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV"),
+		tcu::Format::BitDesc(VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV,	"VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV"),
+	};
+	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+tcu::Format::Bitfield<32> getIndirectCommandsLayoutUsageFlagsNVStr (VkIndirectCommandsLayoutUsageFlagsNV value)
+{
+	static const tcu::Format::BitDesc s_desc[] =
+	{
+		tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV,	"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV"),
+		tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV,	"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV"),
+		tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV,	"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV"),
+		tcu::Format::BitDesc(VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV,		"VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV"),
+	};
+	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+tcu::Format::Bitfield<32> getPrivateDataSlotCreateFlagsEXTStr (VkPrivateDataSlotCreateFlagsEXT value)
+{
+	static const tcu::Format::BitDesc s_desc[] =
+	{
+		tcu::Format::BitDesc(VK_PRIVATE_DATA_SLOT_CREATE_FLAG_BITS_MAX_ENUM_EXT,	"VK_PRIVATE_DATA_SLOT_CREATE_FLAG_BITS_MAX_ENUM_EXT"),
+	};
+	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+tcu::Format::Bitfield<32> getDeviceDiagnosticsConfigFlagsNVStr (VkDeviceDiagnosticsConfigFlagsNV value)
+{
+	static const tcu::Format::BitDesc s_desc[] =
+	{
+		tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV,		"VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV"),
+		tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV,		"VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV"),
+		tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV,	"VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV"),
+		tcu::Format::BitDesc(VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV,				"VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV"),
+	};
+	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
 tcu::Format::Bitfield<32> getInstanceCreateFlagsStr (VkInstanceCreateFlags value)
 {
 	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
@@ -3245,11 +3379,6 @@
 	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
-tcu::Format::Bitfield<32> getPipelineCacheCreateFlagsStr (VkPipelineCacheCreateFlags value)
-{
-	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
-}
-
 tcu::Format::Bitfield<32> getPipelineVertexInputStateCreateFlagsStr (VkPipelineVertexInputStateCreateFlags value)
 {
 	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
@@ -3440,6 +3569,192 @@
 	return tcu::Format::Bitfield<32>(value, DE_NULL, DE_NULL);
 }
 
+tcu::Format::Bitfield<32> getBuildAccelerationStructureFlagsNVStr (VkBuildAccelerationStructureFlagsNV value)
+{
+	static const tcu::Format::BitDesc s_desc[] =
+	{
+		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,		"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR"),
+		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,	"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR"),
+		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,	"VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR"),
+		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,	"VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR"),
+		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,		"VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR"),
+		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV,		"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV"),
+		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV,	"VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV"),
+		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV,	"VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV"),
+		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV,	"VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV"),
+		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV,			"VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV"),
+		tcu::Format::BitDesc(VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR,	"VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR"),
+	};
+	return tcu::Format::Bitfield<32>(value, DE_ARRAY_BEGIN(s_desc), DE_ARRAY_END(s_desc));
+}
+
+std::ostream& operator<< (std::ostream& s, const VkExtent2D& value)
+{
+	s << "VkExtent2D = {\n";
+	s << "\twidth = " << value.width << '\n';
+	s << "\theight = " << value.height << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkExtent3D& value)
+{
+	s << "VkExtent3D = {\n";
+	s << "\twidth = " << value.width << '\n';
+	s << "\theight = " << value.height << '\n';
+	s << "\tdepth = " << value.depth << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkOffset2D& value)
+{
+	s << "VkOffset2D = {\n";
+	s << "\tx = " << value.x << '\n';
+	s << "\ty = " << value.y << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkOffset3D& value)
+{
+	s << "VkOffset3D = {\n";
+	s << "\tx = " << value.x << '\n';
+	s << "\ty = " << value.y << '\n';
+	s << "\tz = " << value.z << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkRect2D& value)
+{
+	s << "VkRect2D = {\n";
+	s << "\toffset = " << value.offset << '\n';
+	s << "\textent = " << value.extent << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkBaseInStructure& value)
+{
+	s << "VkBaseInStructure = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkBaseOutStructure& value)
+{
+	s << "VkBaseOutStructure = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkBufferMemoryBarrier& value)
+{
+	s << "VkBufferMemoryBarrier = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
+	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
+	s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
+	s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
+	s << "\tbuffer = " << value.buffer << '\n';
+	s << "\toffset = " << value.offset << '\n';
+	s << "\tsize = " << value.size << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkDispatchIndirectCommand& value)
+{
+	s << "VkDispatchIndirectCommand = {\n";
+	s << "\tx = " << value.x << '\n';
+	s << "\ty = " << value.y << '\n';
+	s << "\tz = " << value.z << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkDrawIndexedIndirectCommand& value)
+{
+	s << "VkDrawIndexedIndirectCommand = {\n";
+	s << "\tindexCount = " << value.indexCount << '\n';
+	s << "\tinstanceCount = " << value.instanceCount << '\n';
+	s << "\tfirstIndex = " << value.firstIndex << '\n';
+	s << "\tvertexOffset = " << value.vertexOffset << '\n';
+	s << "\tfirstInstance = " << value.firstInstance << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkDrawIndirectCommand& value)
+{
+	s << "VkDrawIndirectCommand = {\n";
+	s << "\tvertexCount = " << value.vertexCount << '\n';
+	s << "\tinstanceCount = " << value.instanceCount << '\n';
+	s << "\tfirstVertex = " << value.firstVertex << '\n';
+	s << "\tfirstInstance = " << value.firstInstance << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkImageSubresourceRange& value)
+{
+	s << "VkImageSubresourceRange = {\n";
+	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
+	s << "\tbaseMipLevel = " << value.baseMipLevel << '\n';
+	s << "\tlevelCount = " << value.levelCount << '\n';
+	s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
+	s << "\tlayerCount = " << value.layerCount << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkImageMemoryBarrier& value)
+{
+	s << "VkImageMemoryBarrier = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
+	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
+	s << "\toldLayout = " << value.oldLayout << '\n';
+	s << "\tnewLayout = " << value.newLayout << '\n';
+	s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
+	s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
+	s << "\timage = " << value.image << '\n';
+	s << "\tsubresourceRange = " << value.subresourceRange << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkMemoryBarrier& value)
+{
+	s << "VkMemoryBarrier = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
+	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkAllocationCallbacks& value)
+{
+	s << "VkAllocationCallbacks = {\n";
+	s << "\tpUserData = " << value.pUserData << '\n';
+	s << "\tpfnAllocation = " << value.pfnAllocation << '\n';
+	s << "\tpfnReallocation = " << value.pfnReallocation << '\n';
+	s << "\tpfnFree = " << value.pfnFree << '\n';
+	s << "\tpfnInternalAllocation = " << value.pfnInternalAllocation << '\n';
+	s << "\tpfnInternalFree = " << value.pfnInternalFree << '\n';
+	s << '}';
+	return s;
+}
+
 std::ostream& operator<< (std::ostream& s, const VkApplicationInfo& value)
 {
 	s << "VkApplicationInfo = {\n";
@@ -3454,6 +3769,28 @@
 	return s;
 }
 
+std::ostream& operator<< (std::ostream& s, const VkFormatProperties& value)
+{
+	s << "VkFormatProperties = {\n";
+	s << "\tlinearTilingFeatures = " << getFormatFeatureFlagsStr(value.linearTilingFeatures) << '\n';
+	s << "\toptimalTilingFeatures = " << getFormatFeatureFlagsStr(value.optimalTilingFeatures) << '\n';
+	s << "\tbufferFeatures = " << getFormatFeatureFlagsStr(value.bufferFeatures) << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkImageFormatProperties& value)
+{
+	s << "VkImageFormatProperties = {\n";
+	s << "\tmaxExtent = " << value.maxExtent << '\n';
+	s << "\tmaxMipLevels = " << value.maxMipLevels << '\n';
+	s << "\tmaxArrayLayers = " << value.maxArrayLayers << '\n';
+	s << "\tsampleCounts = " << getSampleCountFlagsStr(value.sampleCounts) << '\n';
+	s << "\tmaxResourceSize = " << value.maxResourceSize << '\n';
+	s << '}';
+	return s;
+}
+
 std::ostream& operator<< (std::ostream& s, const VkInstanceCreateInfo& value)
 {
 	s << "VkInstanceCreateInfo = {\n";
@@ -3469,15 +3806,20 @@
 	return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkAllocationCallbacks& value)
+std::ostream& operator<< (std::ostream& s, const VkMemoryHeap& value)
 {
-	s << "VkAllocationCallbacks = {\n";
-	s << "\tpUserData = " << value.pUserData << '\n';
-	s << "\tpfnAllocation = " << value.pfnAllocation << '\n';
-	s << "\tpfnReallocation = " << value.pfnReallocation << '\n';
-	s << "\tpfnFree = " << value.pfnFree << '\n';
-	s << "\tpfnInternalAllocation = " << value.pfnInternalAllocation << '\n';
-	s << "\tpfnInternalFree = " << value.pfnInternalFree << '\n';
+	s << "VkMemoryHeap = {\n";
+	s << "\tsize = " << value.size << '\n';
+	s << "\tflags = " << getMemoryHeapFlagsStr(value.flags) << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkMemoryType& value)
+{
+	s << "VkMemoryType = {\n";
+	s << "\tpropertyFlags = " << getMemoryPropertyFlagsStr(value.propertyFlags) << '\n';
+	s << "\theapIndex = " << value.heapIndex << '\n';
 	s << '}';
 	return s;
 }
@@ -3544,38 +3886,6 @@
 	return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkFormatProperties& value)
-{
-	s << "VkFormatProperties = {\n";
-	s << "\tlinearTilingFeatures = " << getFormatFeatureFlagsStr(value.linearTilingFeatures) << '\n';
-	s << "\toptimalTilingFeatures = " << getFormatFeatureFlagsStr(value.optimalTilingFeatures) << '\n';
-	s << "\tbufferFeatures = " << getFormatFeatureFlagsStr(value.bufferFeatures) << '\n';
-	s << '}';
-	return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkExtent3D& value)
-{
-	s << "VkExtent3D = {\n";
-	s << "\twidth = " << value.width << '\n';
-	s << "\theight = " << value.height << '\n';
-	s << "\tdepth = " << value.depth << '\n';
-	s << '}';
-	return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkImageFormatProperties& value)
-{
-	s << "VkImageFormatProperties = {\n";
-	s << "\tmaxExtent = " << value.maxExtent << '\n';
-	s << "\tmaxMipLevels = " << value.maxMipLevels << '\n';
-	s << "\tmaxArrayLayers = " << value.maxArrayLayers << '\n';
-	s << "\tsampleCounts = " << getSampleCountFlagsStr(value.sampleCounts) << '\n';
-	s << "\tmaxResourceSize = " << value.maxResourceSize << '\n';
-	s << '}';
-	return s;
-}
-
 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceLimits& value)
 {
 	s << "VkPhysicalDeviceLimits = {\n";
@@ -3689,6 +3999,17 @@
 	return s;
 }
 
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryProperties& value)
+{
+	s << "VkPhysicalDeviceMemoryProperties = {\n";
+	s << "\tmemoryTypeCount = " << value.memoryTypeCount << '\n';
+	s << "\tmemoryTypes = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.memoryTypes), DE_ARRAY_BEGIN(value.memoryTypes) + value.memoryTypeCount) << '\n';
+	s << "\tmemoryHeapCount = " << value.memoryHeapCount << '\n';
+	s << "\tmemoryHeaps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.memoryHeaps), DE_ARRAY_BEGIN(value.memoryHeaps) + value.memoryHeapCount) << '\n';
+	s << '}';
+	return s;
+}
+
 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSparseProperties& value)
 {
 	s << "VkPhysicalDeviceSparseProperties = {\n";
@@ -3728,35 +4049,6 @@
 	return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMemoryType& value)
-{
-	s << "VkMemoryType = {\n";
-	s << "\tpropertyFlags = " << getMemoryPropertyFlagsStr(value.propertyFlags) << '\n';
-	s << "\theapIndex = " << value.heapIndex << '\n';
-	s << '}';
-	return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkMemoryHeap& value)
-{
-	s << "VkMemoryHeap = {\n";
-	s << "\tsize = " << value.size << '\n';
-	s << "\tflags = " << getMemoryHeapFlagsStr(value.flags) << '\n';
-	s << '}';
-	return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceMemoryProperties& value)
-{
-	s << "VkPhysicalDeviceMemoryProperties = {\n";
-	s << "\tmemoryTypeCount = " << value.memoryTypeCount << '\n';
-	s << "\tmemoryTypes = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.memoryTypes), DE_ARRAY_BEGIN(value.memoryTypes) + value.memoryTypeCount) << '\n';
-	s << "\tmemoryHeapCount = " << value.memoryHeapCount << '\n';
-	s << "\tmemoryHeaps = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.memoryHeaps), DE_ARRAY_BEGIN(value.memoryHeaps) + value.memoryHeapCount) << '\n';
-	s << '}';
-	return s;
-}
-
 std::ostream& operator<< (std::ostream& s, const VkDeviceQueueCreateInfo& value)
 {
 	s << "VkDeviceQueueCreateInfo = {\n";
@@ -3823,17 +4115,6 @@
 	return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMemoryAllocateInfo& value)
-{
-	s << "VkMemoryAllocateInfo = {\n";
-	s << "\tsType = " << value.sType << '\n';
-	s << "\tpNext = " << value.pNext << '\n';
-	s << "\tallocationSize = " << value.allocationSize << '\n';
-	s << "\tmemoryTypeIndex = " << value.memoryTypeIndex << '\n';
-	s << '}';
-	return s;
-}
-
 std::ostream& operator<< (std::ostream& s, const VkMappedMemoryRange& value)
 {
 	s << "VkMappedMemoryRange = {\n";
@@ -3846,6 +4127,17 @@
 	return s;
 }
 
+std::ostream& operator<< (std::ostream& s, const VkMemoryAllocateInfo& value)
+{
+	s << "VkMemoryAllocateInfo = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tallocationSize = " << value.allocationSize << '\n';
+	s << "\tmemoryTypeIndex = " << value.memoryTypeIndex << '\n';
+	s << '}';
+	return s;
+}
+
 std::ostream& operator<< (std::ostream& s, const VkMemoryRequirements& value)
 {
 	s << "VkMemoryRequirements = {\n";
@@ -3856,28 +4148,6 @@
 	return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkSparseImageFormatProperties& value)
-{
-	s << "VkSparseImageFormatProperties = {\n";
-	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
-	s << "\timageGranularity = " << value.imageGranularity << '\n';
-	s << "\tflags = " << getSparseImageFormatFlagsStr(value.flags) << '\n';
-	s << '}';
-	return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryRequirements& value)
-{
-	s << "VkSparseImageMemoryRequirements = {\n";
-	s << "\tformatProperties = " << value.formatProperties << '\n';
-	s << "\timageMipTailFirstLod = " << value.imageMipTailFirstLod << '\n';
-	s << "\timageMipTailSize = " << value.imageMipTailSize << '\n';
-	s << "\timageMipTailOffset = " << value.imageMipTailOffset << '\n';
-	s << "\timageMipTailStride = " << value.imageMipTailStride << '\n';
-	s << '}';
-	return s;
-}
-
 std::ostream& operator<< (std::ostream& s, const VkSparseMemoryBind& value)
 {
 	s << "VkSparseMemoryBind = {\n";
@@ -3920,16 +4190,6 @@
 	return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkOffset3D& value)
-{
-	s << "VkOffset3D = {\n";
-	s << "\tx = " << value.x << '\n';
-	s << "\ty = " << value.y << '\n';
-	s << "\tz = " << value.z << '\n';
-	s << '}';
-	return s;
-}
-
 std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryBind& value)
 {
 	s << "VkSparseImageMemoryBind = {\n";
@@ -3972,6 +4232,28 @@
 	return s;
 }
 
+std::ostream& operator<< (std::ostream& s, const VkSparseImageFormatProperties& value)
+{
+	s << "VkSparseImageFormatProperties = {\n";
+	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
+	s << "\timageGranularity = " << value.imageGranularity << '\n';
+	s << "\tflags = " << getSparseImageFormatFlagsStr(value.flags) << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkSparseImageMemoryRequirements& value)
+{
+	s << "VkSparseImageMemoryRequirements = {\n";
+	s << "\tformatProperties = " << value.formatProperties << '\n';
+	s << "\timageMipTailFirstLod = " << value.imageMipTailFirstLod << '\n';
+	s << "\timageMipTailSize = " << value.imageMipTailSize << '\n';
+	s << "\timageMipTailOffset = " << value.imageMipTailOffset << '\n';
+	s << "\timageMipTailStride = " << value.imageMipTailStride << '\n';
+	s << '}';
+	return s;
+}
+
 std::ostream& operator<< (std::ostream& s, const VkFenceCreateInfo& value)
 {
 	s << "VkFenceCreateInfo = {\n";
@@ -4089,18 +4371,6 @@
 	return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageSubresourceRange& value)
-{
-	s << "VkImageSubresourceRange = {\n";
-	s << "\taspectMask = " << getImageAspectFlagsStr(value.aspectMask) << '\n';
-	s << "\tbaseMipLevel = " << value.baseMipLevel << '\n';
-	s << "\tlevelCount = " << value.levelCount << '\n';
-	s << "\tbaseArrayLayer = " << value.baseArrayLayer << '\n';
-	s << "\tlayerCount = " << value.layerCount << '\n';
-	s << '}';
-	return s;
-}
-
 std::ostream& operator<< (std::ostream& s, const VkImageViewCreateInfo& value)
 {
 	s << "VkImageViewCreateInfo = {\n";
@@ -4175,6 +4445,20 @@
 	return s;
 }
 
+std::ostream& operator<< (std::ostream& s, const VkComputePipelineCreateInfo& value)
+{
+	s << "VkComputePipelineCreateInfo = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
+	s << "\tstage = " << value.stage << '\n';
+	s << "\tlayout = " << value.layout << '\n';
+	s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
+	s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
+	s << '}';
+	return s;
+}
+
 std::ostream& operator<< (std::ostream& s, const VkVertexInputBindingDescription& value)
 {
 	s << "VkVertexInputBindingDescription = {\n";
@@ -4246,33 +4530,6 @@
 	return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkOffset2D& value)
-{
-	s << "VkOffset2D = {\n";
-	s << "\tx = " << value.x << '\n';
-	s << "\ty = " << value.y << '\n';
-	s << '}';
-	return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkExtent2D& value)
-{
-	s << "VkExtent2D = {\n";
-	s << "\twidth = " << value.width << '\n';
-	s << "\theight = " << value.height << '\n';
-	s << '}';
-	return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkRect2D& value)
-{
-	s << "VkRect2D = {\n";
-	s << "\toffset = " << value.offset << '\n';
-	s << "\textent = " << value.extent << '\n';
-	s << '}';
-	return s;
-}
-
 std::ostream& operator<< (std::ostream& s, const VkPipelineViewportStateCreateInfo& value)
 {
 	s << "VkPipelineViewportStateCreateInfo = {\n";
@@ -4424,20 +4681,6 @@
 	return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkComputePipelineCreateInfo& value)
-{
-	s << "VkComputePipelineCreateInfo = {\n";
-	s << "\tsType = " << value.sType << '\n';
-	s << "\tpNext = " << value.pNext << '\n';
-	s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
-	s << "\tstage = " << value.stage << '\n';
-	s << "\tlayout = " << value.layout << '\n';
-	s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
-	s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
-	s << '}';
-	return s;
-}
-
 std::ostream& operator<< (std::ostream& s, const VkPushConstantRange& value)
 {
 	s << "VkPushConstantRange = {\n";
@@ -4487,26 +4730,38 @@
 	return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutBinding& value)
+std::ostream& operator<< (std::ostream& s, const VkCopyDescriptorSet& value)
 {
-	s << "VkDescriptorSetLayoutBinding = {\n";
-	s << "\tbinding = " << value.binding << '\n';
-	s << "\tdescriptorType = " << value.descriptorType << '\n';
+	s << "VkCopyDescriptorSet = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tsrcSet = " << value.srcSet << '\n';
+	s << "\tsrcBinding = " << value.srcBinding << '\n';
+	s << "\tsrcArrayElement = " << value.srcArrayElement << '\n';
+	s << "\tdstSet = " << value.dstSet << '\n';
+	s << "\tdstBinding = " << value.dstBinding << '\n';
+	s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
 	s << "\tdescriptorCount = " << value.descriptorCount << '\n';
-	s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
-	s << "\tpImmutableSamplers = " << value.pImmutableSamplers << '\n';
 	s << '}';
 	return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutCreateInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkDescriptorBufferInfo& value)
 {
-	s << "VkDescriptorSetLayoutCreateInfo = {\n";
-	s << "\tsType = " << value.sType << '\n';
-	s << "\tpNext = " << value.pNext << '\n';
-	s << "\tflags = " << getDescriptorSetLayoutCreateFlagsStr(value.flags) << '\n';
-	s << "\tbindingCount = " << value.bindingCount << '\n';
-	s << "\tpBindings = " << value.pBindings << '\n';
+	s << "VkDescriptorBufferInfo = {\n";
+	s << "\tbuffer = " << value.buffer << '\n';
+	s << "\toffset = " << value.offset << '\n';
+	s << "\trange = " << value.range << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkDescriptorImageInfo& value)
+{
+	s << "VkDescriptorImageInfo = {\n";
+	s << "\tsampler = " << value.sampler << '\n';
+	s << "\timageView = " << value.imageView << '\n';
+	s << "\timageLayout = " << value.imageLayout << '\n';
 	s << '}';
 	return s;
 }
@@ -4545,22 +4800,26 @@
 	return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDescriptorImageInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutBinding& value)
 {
-	s << "VkDescriptorImageInfo = {\n";
-	s << "\tsampler = " << value.sampler << '\n';
-	s << "\timageView = " << value.imageView << '\n';
-	s << "\timageLayout = " << value.imageLayout << '\n';
+	s << "VkDescriptorSetLayoutBinding = {\n";
+	s << "\tbinding = " << value.binding << '\n';
+	s << "\tdescriptorType = " << value.descriptorType << '\n';
+	s << "\tdescriptorCount = " << value.descriptorCount << '\n';
+	s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
+	s << "\tpImmutableSamplers = " << value.pImmutableSamplers << '\n';
 	s << '}';
 	return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDescriptorBufferInfo& value)
+std::ostream& operator<< (std::ostream& s, const VkDescriptorSetLayoutCreateInfo& value)
 {
-	s << "VkDescriptorBufferInfo = {\n";
-	s << "\tbuffer = " << value.buffer << '\n';
-	s << "\toffset = " << value.offset << '\n';
-	s << "\trange = " << value.range << '\n';
+	s << "VkDescriptorSetLayoutCreateInfo = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tflags = " << getDescriptorSetLayoutCreateFlagsStr(value.flags) << '\n';
+	s << "\tbindingCount = " << value.bindingCount << '\n';
+	s << "\tpBindings = " << value.pBindings << '\n';
 	s << '}';
 	return s;
 }
@@ -4582,38 +4841,6 @@
 	return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkCopyDescriptorSet& value)
-{
-	s << "VkCopyDescriptorSet = {\n";
-	s << "\tsType = " << value.sType << '\n';
-	s << "\tpNext = " << value.pNext << '\n';
-	s << "\tsrcSet = " << value.srcSet << '\n';
-	s << "\tsrcBinding = " << value.srcBinding << '\n';
-	s << "\tsrcArrayElement = " << value.srcArrayElement << '\n';
-	s << "\tdstSet = " << value.dstSet << '\n';
-	s << "\tdstBinding = " << value.dstBinding << '\n';
-	s << "\tdstArrayElement = " << value.dstArrayElement << '\n';
-	s << "\tdescriptorCount = " << value.descriptorCount << '\n';
-	s << '}';
-	return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkFramebufferCreateInfo& value)
-{
-	s << "VkFramebufferCreateInfo = {\n";
-	s << "\tsType = " << value.sType << '\n';
-	s << "\tpNext = " << value.pNext << '\n';
-	s << "\tflags = " << getFramebufferCreateFlagsStr(value.flags) << '\n';
-	s << "\trenderPass = " << value.renderPass << '\n';
-	s << "\tattachmentCount = " << value.attachmentCount << '\n';
-	s << "\tpAttachments = " << value.pAttachments << '\n';
-	s << "\twidth = " << value.width << '\n';
-	s << "\theight = " << value.height << '\n';
-	s << "\tlayers = " << value.layers << '\n';
-	s << '}';
-	return s;
-}
-
 std::ostream& operator<< (std::ostream& s, const VkAttachmentDescription& value)
 {
 	s << "VkAttachmentDescription = {\n";
@@ -4639,6 +4866,22 @@
 	return s;
 }
 
+std::ostream& operator<< (std::ostream& s, const VkFramebufferCreateInfo& value)
+{
+	s << "VkFramebufferCreateInfo = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tflags = " << getFramebufferCreateFlagsStr(value.flags) << '\n';
+	s << "\trenderPass = " << value.renderPass << '\n';
+	s << "\tattachmentCount = " << value.attachmentCount << '\n';
+	s << "\tpAttachments = " << value.pAttachments << '\n';
+	s << "\twidth = " << value.width << '\n';
+	s << "\theight = " << value.height << '\n';
+	s << "\tlayers = " << value.layers << '\n';
+	s << '}';
+	return s;
+}
+
 std::ostream& operator<< (std::ostream& s, const VkSubpassDescription& value)
 {
 	s << "VkSubpassDescription = {\n";
@@ -4756,29 +4999,6 @@
 	return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageCopy& value)
-{
-	s << "VkImageCopy = {\n";
-	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
-	s << "\tsrcOffset = " << value.srcOffset << '\n';
-	s << "\tdstSubresource = " << value.dstSubresource << '\n';
-	s << "\tdstOffset = " << value.dstOffset << '\n';
-	s << "\textent = " << value.extent << '\n';
-	s << '}';
-	return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkImageBlit& value)
-{
-	s << "VkImageBlit = {\n";
-	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
-	s << "\tsrcOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.srcOffsets), DE_ARRAY_END(value.srcOffsets)) << '\n';
-	s << "\tdstSubresource = " << value.dstSubresource << '\n';
-	s << "\tdstOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.dstOffsets), DE_ARRAY_END(value.dstOffsets)) << '\n';
-	s << '}';
-	return s;
-}
-
 std::ostream& operator<< (std::ostream& s, const VkBufferImageCopy& value)
 {
 	s << "VkBufferImageCopy = {\n";
@@ -4840,9 +5060,20 @@
 	return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkImageResolve& value)
+std::ostream& operator<< (std::ostream& s, const VkImageBlit& value)
 {
-	s << "VkImageResolve = {\n";
+	s << "VkImageBlit = {\n";
+	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
+	s << "\tsrcOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.srcOffsets), DE_ARRAY_END(value.srcOffsets)) << '\n';
+	s << "\tdstSubresource = " << value.dstSubresource << '\n';
+	s << "\tdstOffsets = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.dstOffsets), DE_ARRAY_END(value.dstOffsets)) << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkImageCopy& value)
+{
+	s << "VkImageCopy = {\n";
 	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
 	s << "\tsrcOffset = " << value.srcOffset << '\n';
 	s << "\tdstSubresource = " << value.dstSubresource << '\n';
@@ -4852,46 +5083,14 @@
 	return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkMemoryBarrier& value)
+std::ostream& operator<< (std::ostream& s, const VkImageResolve& value)
 {
-	s << "VkMemoryBarrier = {\n";
-	s << "\tsType = " << value.sType << '\n';
-	s << "\tpNext = " << value.pNext << '\n';
-	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
-	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
-	s << '}';
-	return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkBufferMemoryBarrier& value)
-{
-	s << "VkBufferMemoryBarrier = {\n";
-	s << "\tsType = " << value.sType << '\n';
-	s << "\tpNext = " << value.pNext << '\n';
-	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
-	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
-	s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
-	s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
-	s << "\tbuffer = " << value.buffer << '\n';
-	s << "\toffset = " << value.offset << '\n';
-	s << "\tsize = " << value.size << '\n';
-	s << '}';
-	return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkImageMemoryBarrier& value)
-{
-	s << "VkImageMemoryBarrier = {\n";
-	s << "\tsType = " << value.sType << '\n';
-	s << "\tpNext = " << value.pNext << '\n';
-	s << "\tsrcAccessMask = " << getAccessFlagsStr(value.srcAccessMask) << '\n';
-	s << "\tdstAccessMask = " << getAccessFlagsStr(value.dstAccessMask) << '\n';
-	s << "\toldLayout = " << value.oldLayout << '\n';
-	s << "\tnewLayout = " << value.newLayout << '\n';
-	s << "\tsrcQueueFamilyIndex = " << value.srcQueueFamilyIndex << '\n';
-	s << "\tdstQueueFamilyIndex = " << value.dstQueueFamilyIndex << '\n';
-	s << "\timage = " << value.image << '\n';
-	s << "\tsubresourceRange = " << value.subresourceRange << '\n';
+	s << "VkImageResolve = {\n";
+	s << "\tsrcSubresource = " << value.srcSubresource << '\n';
+	s << "\tsrcOffset = " << value.srcOffset << '\n';
+	s << "\tdstSubresource = " << value.dstSubresource << '\n';
+	s << "\tdstOffset = " << value.dstOffset << '\n';
+	s << "\textent = " << value.extent << '\n';
 	s << '}';
 	return s;
 }
@@ -4910,57 +5109,6 @@
 	return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDispatchIndirectCommand& value)
-{
-	s << "VkDispatchIndirectCommand = {\n";
-	s << "\tx = " << value.x << '\n';
-	s << "\ty = " << value.y << '\n';
-	s << "\tz = " << value.z << '\n';
-	s << '}';
-	return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkDrawIndexedIndirectCommand& value)
-{
-	s << "VkDrawIndexedIndirectCommand = {\n";
-	s << "\tindexCount = " << value.indexCount << '\n';
-	s << "\tinstanceCount = " << value.instanceCount << '\n';
-	s << "\tfirstIndex = " << value.firstIndex << '\n';
-	s << "\tvertexOffset = " << value.vertexOffset << '\n';
-	s << "\tfirstInstance = " << value.firstInstance << '\n';
-	s << '}';
-	return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkDrawIndirectCommand& value)
-{
-	s << "VkDrawIndirectCommand = {\n";
-	s << "\tvertexCount = " << value.vertexCount << '\n';
-	s << "\tinstanceCount = " << value.instanceCount << '\n';
-	s << "\tfirstVertex = " << value.firstVertex << '\n';
-	s << "\tfirstInstance = " << value.firstInstance << '\n';
-	s << '}';
-	return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkBaseOutStructure& value)
-{
-	s << "VkBaseOutStructure = {\n";
-	s << "\tsType = " << value.sType << '\n';
-	s << "\tpNext = " << value.pNext << '\n';
-	s << '}';
-	return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkBaseInStructure& value)
-{
-	s << "VkBaseInStructure = {\n";
-	s << "\tsType = " << value.sType << '\n';
-	s << "\tpNext = " << value.pNext << '\n';
-	s << '}';
-	return s;
-}
-
 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceSubgroupProperties& value)
 {
 	s << "VkPhysicalDeviceSubgroupProperties = {\n";
@@ -6612,20 +6760,6 @@
 	return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDisplayPropertiesKHR& value)
-{
-	s << "VkDisplayPropertiesKHR = {\n";
-	s << "\tdisplay = " << value.display << '\n';
-	s << "\tdisplayName = " << getCharPtrStr(value.displayName) << '\n';
-	s << "\tphysicalDimensions = " << value.physicalDimensions << '\n';
-	s << "\tphysicalResolution = " << value.physicalResolution << '\n';
-	s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
-	s << "\tplaneReorderPossible = " << value.planeReorderPossible << '\n';
-	s << "\tpersistentContent = " << value.persistentContent << '\n';
-	s << '}';
-	return s;
-}
-
 std::ostream& operator<< (std::ostream& s, const VkDisplayModeParametersKHR& value)
 {
 	s << "VkDisplayModeParametersKHR = {\n";
@@ -6635,15 +6769,6 @@
 	return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDisplayModePropertiesKHR& value)
-{
-	s << "VkDisplayModePropertiesKHR = {\n";
-	s << "\tdisplayMode = " << value.displayMode << '\n';
-	s << "\tparameters = " << value.parameters << '\n';
-	s << '}';
-	return s;
-}
-
 std::ostream& operator<< (std::ostream& s, const VkDisplayModeCreateInfoKHR& value)
 {
 	s << "VkDisplayModeCreateInfoKHR = {\n";
@@ -6655,6 +6780,15 @@
 	return s;
 }
 
+std::ostream& operator<< (std::ostream& s, const VkDisplayModePropertiesKHR& value)
+{
+	s << "VkDisplayModePropertiesKHR = {\n";
+	s << "\tdisplayMode = " << value.displayMode << '\n';
+	s << "\tparameters = " << value.parameters << '\n';
+	s << '}';
+	return s;
+}
+
 std::ostream& operator<< (std::ostream& s, const VkDisplayPlaneCapabilitiesKHR& value)
 {
 	s << "VkDisplayPlaneCapabilitiesKHR = {\n";
@@ -6680,6 +6814,20 @@
 	return s;
 }
 
+std::ostream& operator<< (std::ostream& s, const VkDisplayPropertiesKHR& value)
+{
+	s << "VkDisplayPropertiesKHR = {\n";
+	s << "\tdisplay = " << value.display << '\n';
+	s << "\tdisplayName = " << getCharPtrStr(value.displayName) << '\n';
+	s << "\tphysicalDimensions = " << value.physicalDimensions << '\n';
+	s << "\tphysicalResolution = " << value.physicalResolution << '\n';
+	s << "\tsupportedTransforms = " << getSurfaceTransformFlagsKHRStr(value.supportedTransforms) << '\n';
+	s << "\tplaneReorderPossible = " << value.planeReorderPossible << '\n';
+	s << "\tpersistentContent = " << value.persistentContent << '\n';
+	s << '}';
+	return s;
+}
+
 std::ostream& operator<< (std::ostream& s, const VkDisplaySurfaceCreateInfoKHR& value)
 {
 	s << "VkDisplaySurfaceCreateInfoKHR = {\n";
@@ -7259,6 +7407,17 @@
 	return s;
 }
 
+std::ostream& operator<< (std::ostream& s, const VkImageViewAddressPropertiesNVX& value)
+{
+	s << "VkImageViewAddressPropertiesNVX = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
+	s << "\tsize = " << value.size << '\n';
+	s << '}';
+	return s;
+}
+
 std::ostream& operator<< (std::ostream& s, const VkTextureLODGatherFormatPropertiesAMD& value)
 {
 	s << "VkTextureLODGatherFormatPropertiesAMD = {\n";
@@ -7410,175 +7569,6 @@
 	return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDeviceGeneratedCommandsFeaturesNVX& value)
-{
-	s << "VkDeviceGeneratedCommandsFeaturesNVX = {\n";
-	s << "\tsType = " << value.sType << '\n';
-	s << "\tpNext = " << value.pNext << '\n';
-	s << "\tcomputeBindingPointSupport = " << value.computeBindingPointSupport << '\n';
-	s << '}';
-	return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkDeviceGeneratedCommandsLimitsNVX& value)
-{
-	s << "VkDeviceGeneratedCommandsLimitsNVX = {\n";
-	s << "\tsType = " << value.sType << '\n';
-	s << "\tpNext = " << value.pNext << '\n';
-	s << "\tmaxIndirectCommandsLayoutTokenCount = " << value.maxIndirectCommandsLayoutTokenCount << '\n';
-	s << "\tmaxObjectEntryCounts = " << value.maxObjectEntryCounts << '\n';
-	s << "\tminSequenceCountBufferOffsetAlignment = " << value.minSequenceCountBufferOffsetAlignment << '\n';
-	s << "\tminSequenceIndexBufferOffsetAlignment = " << value.minSequenceIndexBufferOffsetAlignment << '\n';
-	s << "\tminCommandsTokenBufferOffsetAlignment = " << value.minCommandsTokenBufferOffsetAlignment << '\n';
-	s << '}';
-	return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsTokenNVX& value)
-{
-	s << "VkIndirectCommandsTokenNVX = {\n";
-	s << "\ttokenType = " << value.tokenType << '\n';
-	s << "\tbuffer = " << value.buffer << '\n';
-	s << "\toffset = " << value.offset << '\n';
-	s << '}';
-	return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsLayoutTokenNVX& value)
-{
-	s << "VkIndirectCommandsLayoutTokenNVX = {\n";
-	s << "\ttokenType = " << value.tokenType << '\n';
-	s << "\tbindingUnit = " << value.bindingUnit << '\n';
-	s << "\tdynamicCount = " << value.dynamicCount << '\n';
-	s << "\tdivisor = " << value.divisor << '\n';
-	s << '}';
-	return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsLayoutCreateInfoNVX& value)
-{
-	s << "VkIndirectCommandsLayoutCreateInfoNVX = {\n";
-	s << "\tsType = " << value.sType << '\n';
-	s << "\tpNext = " << value.pNext << '\n';
-	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
-	s << "\tflags = " << getIndirectCommandsLayoutUsageFlagsNVXStr(value.flags) << '\n';
-	s << "\ttokenCount = " << value.tokenCount << '\n';
-	s << "\tpTokens = " << value.pTokens << '\n';
-	s << '}';
-	return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkCmdProcessCommandsInfoNVX& value)
-{
-	s << "VkCmdProcessCommandsInfoNVX = {\n";
-	s << "\tsType = " << value.sType << '\n';
-	s << "\tpNext = " << value.pNext << '\n';
-	s << "\tobjectTable = " << value.objectTable << '\n';
-	s << "\tindirectCommandsLayout = " << value.indirectCommandsLayout << '\n';
-	s << "\tindirectCommandsTokenCount = " << value.indirectCommandsTokenCount << '\n';
-	s << "\tpIndirectCommandsTokens = " << value.pIndirectCommandsTokens << '\n';
-	s << "\tmaxSequencesCount = " << value.maxSequencesCount << '\n';
-	s << "\ttargetCommandBuffer = " << value.targetCommandBuffer << '\n';
-	s << "\tsequencesCountBuffer = " << value.sequencesCountBuffer << '\n';
-	s << "\tsequencesCountOffset = " << value.sequencesCountOffset << '\n';
-	s << "\tsequencesIndexBuffer = " << value.sequencesIndexBuffer << '\n';
-	s << "\tsequencesIndexOffset = " << value.sequencesIndexOffset << '\n';
-	s << '}';
-	return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkCmdReserveSpaceForCommandsInfoNVX& value)
-{
-	s << "VkCmdReserveSpaceForCommandsInfoNVX = {\n";
-	s << "\tsType = " << value.sType << '\n';
-	s << "\tpNext = " << value.pNext << '\n';
-	s << "\tobjectTable = " << value.objectTable << '\n';
-	s << "\tindirectCommandsLayout = " << value.indirectCommandsLayout << '\n';
-	s << "\tmaxSequencesCount = " << value.maxSequencesCount << '\n';
-	s << '}';
-	return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkObjectTableCreateInfoNVX& value)
-{
-	s << "VkObjectTableCreateInfoNVX = {\n";
-	s << "\tsType = " << value.sType << '\n';
-	s << "\tpNext = " << value.pNext << '\n';
-	s << "\tobjectCount = " << value.objectCount << '\n';
-	s << "\tpObjectEntryTypes = " << value.pObjectEntryTypes << '\n';
-	s << "\tpObjectEntryCounts = " << value.pObjectEntryCounts << '\n';
-	s << "\tpObjectEntryUsageFlags = " << value.pObjectEntryUsageFlags << '\n';
-	s << "\tmaxUniformBuffersPerDescriptor = " << value.maxUniformBuffersPerDescriptor << '\n';
-	s << "\tmaxStorageBuffersPerDescriptor = " << value.maxStorageBuffersPerDescriptor << '\n';
-	s << "\tmaxStorageImagesPerDescriptor = " << value.maxStorageImagesPerDescriptor << '\n';
-	s << "\tmaxSampledImagesPerDescriptor = " << value.maxSampledImagesPerDescriptor << '\n';
-	s << "\tmaxPipelineLayouts = " << value.maxPipelineLayouts << '\n';
-	s << '}';
-	return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkObjectTableEntryNVX& value)
-{
-	s << "VkObjectTableEntryNVX = {\n";
-	s << "\ttype = " << value.type << '\n';
-	s << "\tflags = " << getObjectEntryUsageFlagsNVXStr(value.flags) << '\n';
-	s << '}';
-	return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkObjectTablePipelineEntryNVX& value)
-{
-	s << "VkObjectTablePipelineEntryNVX = {\n";
-	s << "\ttype = " << value.type << '\n';
-	s << "\tflags = " << getObjectEntryUsageFlagsNVXStr(value.flags) << '\n';
-	s << "\tpipeline = " << value.pipeline << '\n';
-	s << '}';
-	return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkObjectTableDescriptorSetEntryNVX& value)
-{
-	s << "VkObjectTableDescriptorSetEntryNVX = {\n";
-	s << "\ttype = " << value.type << '\n';
-	s << "\tflags = " << getObjectEntryUsageFlagsNVXStr(value.flags) << '\n';
-	s << "\tpipelineLayout = " << value.pipelineLayout << '\n';
-	s << "\tdescriptorSet = " << value.descriptorSet << '\n';
-	s << '}';
-	return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkObjectTableVertexBufferEntryNVX& value)
-{
-	s << "VkObjectTableVertexBufferEntryNVX = {\n";
-	s << "\ttype = " << value.type << '\n';
-	s << "\tflags = " << getObjectEntryUsageFlagsNVXStr(value.flags) << '\n';
-	s << "\tbuffer = " << value.buffer << '\n';
-	s << '}';
-	return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkObjectTableIndexBufferEntryNVX& value)
-{
-	s << "VkObjectTableIndexBufferEntryNVX = {\n";
-	s << "\ttype = " << value.type << '\n';
-	s << "\tflags = " << getObjectEntryUsageFlagsNVXStr(value.flags) << '\n';
-	s << "\tbuffer = " << value.buffer << '\n';
-	s << "\tindexType = " << value.indexType << '\n';
-	s << '}';
-	return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkObjectTablePushConstantEntryNVX& value)
-{
-	s << "VkObjectTablePushConstantEntryNVX = {\n";
-	s << "\ttype = " << value.type << '\n';
-	s << "\tflags = " << getObjectEntryUsageFlagsNVXStr(value.flags) << '\n';
-	s << "\tpipelineLayout = " << value.pipelineLayout << '\n';
-	s << "\tstageFlags = " << getShaderStageFlagsStr(value.stageFlags) << '\n';
-	s << '}';
-	return s;
-}
-
 std::ostream& operator<< (std::ostream& s, const VkViewportWScalingNV& value)
 {
 	s << "VkViewportWScalingNV = {\n";
@@ -7833,6 +7823,17 @@
 	return s;
 }
 
+std::ostream& operator<< (std::ostream& s, const VkDebugUtilsLabelEXT& value)
+{
+	s << "VkDebugUtilsLabelEXT = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tpLabelName = " << getCharPtrStr(value.pLabelName) << '\n';
+	s << "\tcolor = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.color), DE_ARRAY_END(value.color)) << '\n';
+	s << '}';
+	return s;
+}
+
 std::ostream& operator<< (std::ostream& s, const VkDebugUtilsObjectNameInfoEXT& value)
 {
 	s << "VkDebugUtilsObjectNameInfoEXT = {\n";
@@ -7845,31 +7846,6 @@
 	return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkDebugUtilsObjectTagInfoEXT& value)
-{
-	s << "VkDebugUtilsObjectTagInfoEXT = {\n";
-	s << "\tsType = " << value.sType << '\n';
-	s << "\tpNext = " << value.pNext << '\n';
-	s << "\tobjectType = " << value.objectType << '\n';
-	s << "\tobjectHandle = " << value.objectHandle << '\n';
-	s << "\ttagName = " << value.tagName << '\n';
-	s << "\ttagSize = " << value.tagSize << '\n';
-	s << "\tpTag = " << value.pTag << '\n';
-	s << '}';
-	return s;
-}
-
-std::ostream& operator<< (std::ostream& s, const VkDebugUtilsLabelEXT& value)
-{
-	s << "VkDebugUtilsLabelEXT = {\n";
-	s << "\tsType = " << value.sType << '\n';
-	s << "\tpNext = " << value.pNext << '\n';
-	s << "\tpLabelName = " << getCharPtrStr(value.pLabelName) << '\n';
-	s << "\tcolor = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.color), DE_ARRAY_END(value.color)) << '\n';
-	s << '}';
-	return s;
-}
-
 std::ostream& operator<< (std::ostream& s, const VkDebugUtilsMessengerCallbackDataEXT& value)
 {
 	s << "VkDebugUtilsMessengerCallbackDataEXT = {\n";
@@ -7903,6 +7879,20 @@
 	return s;
 }
 
+std::ostream& operator<< (std::ostream& s, const VkDebugUtilsObjectTagInfoEXT& value)
+{
+	s << "VkDebugUtilsObjectTagInfoEXT = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tobjectType = " << value.objectType << '\n';
+	s << "\tobjectHandle = " << value.objectHandle << '\n';
+	s << "\ttagName = " << value.tagName << '\n';
+	s << "\ttagSize = " << value.tagSize << '\n';
+	s << "\tpTag = " << value.pTag << '\n';
+	s << '}';
+	return s;
+}
+
 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceInlineUniformBlockFeaturesEXT& value)
 {
 	s << "VkPhysicalDeviceInlineUniformBlockFeaturesEXT = {\n";
@@ -8368,7 +8358,7 @@
 	s << "\tpNext = " << value.pNext << '\n';
 	s << "\tgeometryType = " << value.geometryType << '\n';
 	s << "\tgeometry = " << value.geometry << '\n';
-	s << "\tflags = " << getGeometryFlagsNVStr(value.flags) << '\n';
+	s << "\tflags = " << getGeometryFlagsKHRStr(value.flags) << '\n';
 	s << '}';
 	return s;
 }
@@ -8398,9 +8388,9 @@
 	return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkBindAccelerationStructureMemoryInfoNV& value)
+std::ostream& operator<< (std::ostream& s, const VkBindAccelerationStructureMemoryInfoKHR& value)
 {
-	s << "VkBindAccelerationStructureMemoryInfoNV = {\n";
+	s << "VkBindAccelerationStructureMemoryInfoKHR = {\n";
 	s << "\tsType = " << value.sType << '\n';
 	s << "\tpNext = " << value.pNext << '\n';
 	s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
@@ -8412,9 +8402,9 @@
 	return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetAccelerationStructureNV& value)
+std::ostream& operator<< (std::ostream& s, const VkWriteDescriptorSetAccelerationStructureKHR& value)
 {
-	s << "VkWriteDescriptorSetAccelerationStructureNV = {\n";
+	s << "VkWriteDescriptorSetAccelerationStructureKHR = {\n";
 	s << "\tsType = " << value.sType << '\n';
 	s << "\tpNext = " << value.pNext << '\n';
 	s << "\taccelerationStructureCount = " << value.accelerationStructureCount << '\n';
@@ -8451,6 +8441,40 @@
 	return s;
 }
 
+std::ostream& operator<< (std::ostream& s, const VkTransformMatrixKHR& value)
+{
+	s << "VkTransformMatrixKHR = {\n";
+	s << "\tmatrix = " << '\n' << tcu::formatArray(DE_ARRAY_BEGIN(value.matrix), DE_ARRAY_END(value.matrix)) << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkAabbPositionsKHR& value)
+{
+	s << "VkAabbPositionsKHR = {\n";
+	s << "\tminX = " << value.minX << '\n';
+	s << "\tminY = " << value.minY << '\n';
+	s << "\tminZ = " << value.minZ << '\n';
+	s << "\tmaxX = " << value.maxX << '\n';
+	s << "\tmaxY = " << value.maxY << '\n';
+	s << "\tmaxZ = " << value.maxZ << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureInstanceKHR& value)
+{
+	s << "VkAccelerationStructureInstanceKHR = {\n";
+	s << "\ttransform = " << value.transform << '\n';
+	s << "\tinstanceCustomIndex = " << value.instanceCustomIndex << '\n';
+	s << "\tmask = " << value.mask << '\n';
+	s << "\tinstanceShaderBindingTableRecordOffset = " << value.instanceShaderBindingTableRecordOffset << '\n';
+	s << "\tflags = " << getGeometryInstanceFlagsKHRStr(value.flags) << '\n';
+	s << "\taccelerationStructureReference = " << value.accelerationStructureReference << '\n';
+	s << '}';
+	return s;
+}
+
 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV& value)
 {
 	s << "VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV = {\n";
@@ -8804,9 +8828,9 @@
 	return s;
 }
 
-std::ostream& operator<< (std::ostream& s, const VkQueryPoolCreateInfoINTEL& value)
+std::ostream& operator<< (std::ostream& s, const VkQueryPoolPerformanceQueryCreateInfoINTEL& value)
 {
-	s << "VkQueryPoolCreateInfoINTEL = {\n";
+	s << "VkQueryPoolPerformanceQueryCreateInfoINTEL = {\n";
 	s << "\tsType = " << value.sType << '\n';
 	s << "\tpNext = " << value.pNext << '\n';
 	s << "\tperformanceCountersSampling = " << value.performanceCountersSampling << '\n';
@@ -9220,6 +9244,16 @@
 	return s;
 }
 
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT& value)
+{
+	s << "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\textendedDynamicState = " << value.extendedDynamicState << '\n';
+	s << '}';
+	return s;
+}
+
 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT& value)
 {
 	s << "VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = {\n";
@@ -9230,6 +9264,177 @@
 	return s;
 }
 
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV& value)
+{
+	s << "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tmaxGraphicsShaderGroupCount = " << value.maxGraphicsShaderGroupCount << '\n';
+	s << "\tmaxIndirectSequenceCount = " << value.maxIndirectSequenceCount << '\n';
+	s << "\tmaxIndirectCommandsTokenCount = " << value.maxIndirectCommandsTokenCount << '\n';
+	s << "\tmaxIndirectCommandsStreamCount = " << value.maxIndirectCommandsStreamCount << '\n';
+	s << "\tmaxIndirectCommandsTokenOffset = " << value.maxIndirectCommandsTokenOffset << '\n';
+	s << "\tmaxIndirectCommandsStreamStride = " << value.maxIndirectCommandsStreamStride << '\n';
+	s << "\tminSequencesCountBufferOffsetAlignment = " << value.minSequencesCountBufferOffsetAlignment << '\n';
+	s << "\tminSequencesIndexBufferOffsetAlignment = " << value.minSequencesIndexBufferOffsetAlignment << '\n';
+	s << "\tminIndirectCommandsBufferOffsetAlignment = " << value.minIndirectCommandsBufferOffsetAlignment << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV& value)
+{
+	s << "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tdeviceGeneratedCommands = " << value.deviceGeneratedCommands << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkGraphicsShaderGroupCreateInfoNV& value)
+{
+	s << "VkGraphicsShaderGroupCreateInfoNV = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tstageCount = " << value.stageCount << '\n';
+	s << "\tpStages = " << value.pStages << '\n';
+	s << "\tpVertexInputState = " << value.pVertexInputState << '\n';
+	s << "\tpTessellationState = " << value.pTessellationState << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkGraphicsPipelineShaderGroupsCreateInfoNV& value)
+{
+	s << "VkGraphicsPipelineShaderGroupsCreateInfoNV = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tgroupCount = " << value.groupCount << '\n';
+	s << "\tpGroups = " << value.pGroups << '\n';
+	s << "\tpipelineCount = " << value.pipelineCount << '\n';
+	s << "\tpPipelines = " << value.pPipelines << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkBindShaderGroupIndirectCommandNV& value)
+{
+	s << "VkBindShaderGroupIndirectCommandNV = {\n";
+	s << "\tgroupIndex = " << value.groupIndex << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkBindIndexBufferIndirectCommandNV& value)
+{
+	s << "VkBindIndexBufferIndirectCommandNV = {\n";
+	s << "\tbufferAddress = " << value.bufferAddress << '\n';
+	s << "\tsize = " << value.size << '\n';
+	s << "\tindexType = " << value.indexType << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkBindVertexBufferIndirectCommandNV& value)
+{
+	s << "VkBindVertexBufferIndirectCommandNV = {\n";
+	s << "\tbufferAddress = " << value.bufferAddress << '\n';
+	s << "\tsize = " << value.size << '\n';
+	s << "\tstride = " << value.stride << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkSetStateFlagsIndirectCommandNV& value)
+{
+	s << "VkSetStateFlagsIndirectCommandNV = {\n";
+	s << "\tdata = " << value.data << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsStreamNV& value)
+{
+	s << "VkIndirectCommandsStreamNV = {\n";
+	s << "\tbuffer = " << value.buffer << '\n';
+	s << "\toffset = " << value.offset << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsLayoutTokenNV& value)
+{
+	s << "VkIndirectCommandsLayoutTokenNV = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\ttokenType = " << value.tokenType << '\n';
+	s << "\tstream = " << value.stream << '\n';
+	s << "\toffset = " << value.offset << '\n';
+	s << "\tvertexBindingUnit = " << value.vertexBindingUnit << '\n';
+	s << "\tvertexDynamicStride = " << value.vertexDynamicStride << '\n';
+	s << "\tpushconstantPipelineLayout = " << value.pushconstantPipelineLayout << '\n';
+	s << "\tpushconstantShaderStageFlags = " << getShaderStageFlagsStr(value.pushconstantShaderStageFlags) << '\n';
+	s << "\tpushconstantOffset = " << value.pushconstantOffset << '\n';
+	s << "\tpushconstantSize = " << value.pushconstantSize << '\n';
+	s << "\tindirectStateFlags = " << getIndirectStateFlagsNVStr(value.indirectStateFlags) << '\n';
+	s << "\tindexTypeCount = " << value.indexTypeCount << '\n';
+	s << "\tpIndexTypes = " << value.pIndexTypes << '\n';
+	s << "\tpIndexTypeValues = " << value.pIndexTypeValues << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkIndirectCommandsLayoutCreateInfoNV& value)
+{
+	s << "VkIndirectCommandsLayoutCreateInfoNV = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tflags = " << getIndirectCommandsLayoutUsageFlagsNVStr(value.flags) << '\n';
+	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
+	s << "\ttokenCount = " << value.tokenCount << '\n';
+	s << "\tpTokens = " << value.pTokens << '\n';
+	s << "\tstreamCount = " << value.streamCount << '\n';
+	s << "\tpStreamStrides = " << value.pStreamStrides << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkGeneratedCommandsInfoNV& value)
+{
+	s << "VkGeneratedCommandsInfoNV = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
+	s << "\tpipeline = " << value.pipeline << '\n';
+	s << "\tindirectCommandsLayout = " << value.indirectCommandsLayout << '\n';
+	s << "\tstreamCount = " << value.streamCount << '\n';
+	s << "\tpStreams = " << value.pStreams << '\n';
+	s << "\tsequencesCount = " << value.sequencesCount << '\n';
+	s << "\tpreprocessBuffer = " << value.preprocessBuffer << '\n';
+	s << "\tpreprocessOffset = " << value.preprocessOffset << '\n';
+	s << "\tpreprocessSize = " << value.preprocessSize << '\n';
+	s << "\tsequencesCountBuffer = " << value.sequencesCountBuffer << '\n';
+	s << "\tsequencesCountOffset = " << value.sequencesCountOffset << '\n';
+	s << "\tsequencesIndexBuffer = " << value.sequencesIndexBuffer << '\n';
+	s << "\tsequencesIndexOffset = " << value.sequencesIndexOffset << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkGeneratedCommandsMemoryRequirementsInfoNV& value)
+{
+	s << "VkGeneratedCommandsMemoryRequirementsInfoNV = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tpipelineBindPoint = " << value.pipelineBindPoint << '\n';
+	s << "\tpipeline = " << value.pipeline << '\n';
+	s << "\tindirectCommandsLayout = " << value.indirectCommandsLayout << '\n';
+	s << "\tmaxSequencesCount = " << value.maxSequencesCount << '\n';
+	s << '}';
+	return s;
+}
+
 std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT& value)
 {
 	s << "VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT = {\n";
@@ -9253,6 +9458,165 @@
 	return s;
 }
 
+std::ostream& operator<< (std::ostream& s, const VkRenderPassTransformBeginInfoQCOM& value)
+{
+	s << "VkRenderPassTransformBeginInfoQCOM = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\ttransform = " << value.transform << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkCommandBufferInheritanceRenderPassTransformInfoQCOM& value)
+{
+	s << "VkCommandBufferInheritanceRenderPassTransformInfoQCOM = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\ttransform = " << value.transform << '\n';
+	s << "\trenderArea = " << value.renderArea << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRobustness2FeaturesEXT& value)
+{
+	s << "VkPhysicalDeviceRobustness2FeaturesEXT = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\trobustBufferAccess2 = " << value.robustBufferAccess2 << '\n';
+	s << "\trobustImageAccess2 = " << value.robustImageAccess2 << '\n';
+	s << "\tnullDescriptor = " << value.nullDescriptor << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRobustness2PropertiesEXT& value)
+{
+	s << "VkPhysicalDeviceRobustness2PropertiesEXT = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\trobustStorageBufferAccessSizeAlignment = " << value.robustStorageBufferAccessSizeAlignment << '\n';
+	s << "\trobustUniformBufferAccessSizeAlignment = " << value.robustUniformBufferAccessSizeAlignment << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkSamplerCustomBorderColorCreateInfoEXT& value)
+{
+	s << "VkSamplerCustomBorderColorCreateInfoEXT = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tcustomBorderColor = " << value.customBorderColor << '\n';
+	s << "\tformat = " << value.format << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCustomBorderColorPropertiesEXT& value)
+{
+	s << "VkPhysicalDeviceCustomBorderColorPropertiesEXT = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tmaxCustomBorderColorSamplers = " << value.maxCustomBorderColorSamplers << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceCustomBorderColorFeaturesEXT& value)
+{
+	s << "VkPhysicalDeviceCustomBorderColorFeaturesEXT = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tcustomBorderColors = " << value.customBorderColors << '\n';
+	s << "\tcustomBorderColorWithoutFormat = " << value.customBorderColorWithoutFormat << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePrivateDataFeaturesEXT& value)
+{
+	s << "VkPhysicalDevicePrivateDataFeaturesEXT = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tprivateData = " << value.privateData << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkDevicePrivateDataCreateInfoEXT& value)
+{
+	s << "VkDevicePrivateDataCreateInfoEXT = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tprivateDataSlotRequestCount = " << value.privateDataSlotRequestCount << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPrivateDataSlotCreateInfoEXT& value)
+{
+	s << "VkPrivateDataSlotCreateInfoEXT = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tflags = " << getPrivateDataSlotCreateFlagsEXTStr(value.flags) << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT& value)
+{
+	s << "VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tpipelineCreationCacheControl = " << value.pipelineCreationCacheControl << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceDiagnosticsConfigFeaturesNV& value)
+{
+	s << "VkPhysicalDeviceDiagnosticsConfigFeaturesNV = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tdiagnosticsConfig = " << value.diagnosticsConfig << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkDeviceDiagnosticsConfigCreateInfoNV& value)
+{
+	s << "VkDeviceDiagnosticsConfigCreateInfoNV = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tflags = " << getDeviceDiagnosticsConfigFlagsNVStr(value.flags) << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT& value)
+{
+	s << "VkPhysicalDeviceFragmentDensityMap2FeaturesEXT = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tfragmentDensityMapDeferred = " << value.fragmentDensityMapDeferred << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT& value)
+{
+	s << "VkPhysicalDeviceFragmentDensityMap2PropertiesEXT = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tsubsampledLoads = " << value.subsampledLoads << '\n';
+	s << "\tsubsampledCoarseReconstructionEarlyAccess = " << value.subsampledCoarseReconstructionEarlyAccess << '\n';
+	s << "\tmaxSubsampledArrayLayers = " << value.maxSubsampledArrayLayers << '\n';
+	s << "\tmaxDescriptorSetSubsampledSamplers = " << value.maxDescriptorSetSubsampledSamplers << '\n';
+	s << '}';
+	return s;
+}
+
 std::ostream& operator<< (std::ostream& s, const VkAndroidSurfaceCreateInfoKHR& value)
 {
 	s << "VkAndroidSurfaceCreateInfoKHR = {\n";
@@ -9332,6 +9696,335 @@
 	return s;
 }
 
+std::ostream& operator<< (std::ostream& s, const VkDeferredOperationInfoKHR& value)
+{
+	s << "VkDeferredOperationInfoKHR = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\toperationHandle = " << value.operationHandle << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPipelineLibraryCreateInfoKHR& value)
+{
+	s << "VkPipelineLibraryCreateInfoKHR = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tlibraryCount = " << value.libraryCount << '\n';
+	s << "\tpLibraries = " << value.pLibraries << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkDeviceOrHostAddressKHR& value)
+{
+	s << "VkDeviceOrHostAddressKHR = {\n";
+	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
+	s << "\thostAddress = " << value.hostAddress << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkDeviceOrHostAddressConstKHR& value)
+{
+	s << "VkDeviceOrHostAddressConstKHR = {\n";
+	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
+	s << "\thostAddress = " << value.hostAddress << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildOffsetInfoKHR& value)
+{
+	s << "VkAccelerationStructureBuildOffsetInfoKHR = {\n";
+	s << "\tprimitiveCount = " << value.primitiveCount << '\n';
+	s << "\tprimitiveOffset = " << value.primitiveOffset << '\n';
+	s << "\tfirstVertex = " << value.firstVertex << '\n';
+	s << "\ttransformOffset = " << value.transformOffset << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkRayTracingShaderGroupCreateInfoKHR& value)
+{
+	s << "VkRayTracingShaderGroupCreateInfoKHR = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\ttype = " << value.type << '\n';
+	s << "\tgeneralShader = " << value.generalShader << '\n';
+	s << "\tclosestHitShader = " << value.closestHitShader << '\n';
+	s << "\tanyHitShader = " << value.anyHitShader << '\n';
+	s << "\tintersectionShader = " << value.intersectionShader << '\n';
+	s << "\tpShaderGroupCaptureReplayHandle = " << value.pShaderGroupCaptureReplayHandle << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineInterfaceCreateInfoKHR& value)
+{
+	s << "VkRayTracingPipelineInterfaceCreateInfoKHR = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tmaxPayloadSize = " << value.maxPayloadSize << '\n';
+	s << "\tmaxAttributeSize = " << value.maxAttributeSize << '\n';
+	s << "\tmaxCallableSize = " << value.maxCallableSize << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkRayTracingPipelineCreateInfoKHR& value)
+{
+	s << "VkRayTracingPipelineCreateInfoKHR = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tflags = " << getPipelineCreateFlagsStr(value.flags) << '\n';
+	s << "\tstageCount = " << value.stageCount << '\n';
+	s << "\tpStages = " << value.pStages << '\n';
+	s << "\tgroupCount = " << value.groupCount << '\n';
+	s << "\tpGroups = " << value.pGroups << '\n';
+	s << "\tmaxRecursionDepth = " << value.maxRecursionDepth << '\n';
+	s << "\tlibraries = " << value.libraries << '\n';
+	s << "\tpLibraryInterface = " << value.pLibraryInterface << '\n';
+	s << "\tlayout = " << value.layout << '\n';
+	s << "\tbasePipelineHandle = " << value.basePipelineHandle << '\n';
+	s << "\tbasePipelineIndex = " << value.basePipelineIndex << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryTrianglesDataKHR& value)
+{
+	s << "VkAccelerationStructureGeometryTrianglesDataKHR = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tvertexFormat = " << value.vertexFormat << '\n';
+	s << "\tvertexData = " << value.vertexData << '\n';
+	s << "\tvertexStride = " << value.vertexStride << '\n';
+	s << "\tindexType = " << value.indexType << '\n';
+	s << "\tindexData = " << value.indexData << '\n';
+	s << "\ttransformData = " << value.transformData << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryAabbsDataKHR& value)
+{
+	s << "VkAccelerationStructureGeometryAabbsDataKHR = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tdata = " << value.data << '\n';
+	s << "\tstride = " << value.stride << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryInstancesDataKHR& value)
+{
+	s << "VkAccelerationStructureGeometryInstancesDataKHR = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tarrayOfPointers = " << value.arrayOfPointers << '\n';
+	s << "\tdata = " << value.data << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryDataKHR& value)
+{
+	s << "VkAccelerationStructureGeometryDataKHR = {\n";
+	s << "\ttriangles = " << value.triangles << '\n';
+	s << "\taabbs = " << value.aabbs << '\n';
+	s << "\tinstances = " << value.instances << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureGeometryKHR& value)
+{
+	s << "VkAccelerationStructureGeometryKHR = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tgeometryType = " << value.geometryType << '\n';
+	s << "\tgeometry = " << value.geometry << '\n';
+	s << "\tflags = " << getGeometryFlagsKHRStr(value.flags) << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureBuildGeometryInfoKHR& value)
+{
+	s << "VkAccelerationStructureBuildGeometryInfoKHR = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\ttype = " << value.type << '\n';
+	s << "\tflags = " << getBuildAccelerationStructureFlagsKHRStr(value.flags) << '\n';
+	s << "\tupdate = " << value.update << '\n';
+	s << "\tsrcAccelerationStructure = " << value.srcAccelerationStructure << '\n';
+	s << "\tdstAccelerationStructure = " << value.dstAccelerationStructure << '\n';
+	s << "\tgeometryArrayOfPointers = " << value.geometryArrayOfPointers << '\n';
+	s << "\tgeometryCount = " << value.geometryCount << '\n';
+	s << "\tppGeometries = " << value.ppGeometries << '\n';
+	s << "\tscratchData = " << value.scratchData << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureCreateGeometryTypeInfoKHR& value)
+{
+	s << "VkAccelerationStructureCreateGeometryTypeInfoKHR = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tgeometryType = " << value.geometryType << '\n';
+	s << "\tmaxPrimitiveCount = " << value.maxPrimitiveCount << '\n';
+	s << "\tindexType = " << value.indexType << '\n';
+	s << "\tmaxVertexCount = " << value.maxVertexCount << '\n';
+	s << "\tvertexFormat = " << value.vertexFormat << '\n';
+	s << "\tallowsTransforms = " << value.allowsTransforms << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureCreateInfoKHR& value)
+{
+	s << "VkAccelerationStructureCreateInfoKHR = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tcompactedSize = " << value.compactedSize << '\n';
+	s << "\ttype = " << value.type << '\n';
+	s << "\tflags = " << getBuildAccelerationStructureFlagsKHRStr(value.flags) << '\n';
+	s << "\tmaxGeometryCount = " << value.maxGeometryCount << '\n';
+	s << "\tpGeometryInfos = " << value.pGeometryInfos << '\n';
+	s << "\tdeviceAddress = " << value.deviceAddress << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureMemoryRequirementsInfoKHR& value)
+{
+	s << "VkAccelerationStructureMemoryRequirementsInfoKHR = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\ttype = " << value.type << '\n';
+	s << "\tbuildType = " << value.buildType << '\n';
+	s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingFeaturesKHR& value)
+{
+	s << "VkPhysicalDeviceRayTracingFeaturesKHR = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\trayTracing = " << value.rayTracing << '\n';
+	s << "\trayTracingShaderGroupHandleCaptureReplay = " << value.rayTracingShaderGroupHandleCaptureReplay << '\n';
+	s << "\trayTracingShaderGroupHandleCaptureReplayMixed = " << value.rayTracingShaderGroupHandleCaptureReplayMixed << '\n';
+	s << "\trayTracingAccelerationStructureCaptureReplay = " << value.rayTracingAccelerationStructureCaptureReplay << '\n';
+	s << "\trayTracingIndirectTraceRays = " << value.rayTracingIndirectTraceRays << '\n';
+	s << "\trayTracingIndirectAccelerationStructureBuild = " << value.rayTracingIndirectAccelerationStructureBuild << '\n';
+	s << "\trayTracingHostAccelerationStructureCommands = " << value.rayTracingHostAccelerationStructureCommands << '\n';
+	s << "\trayQuery = " << value.rayQuery << '\n';
+	s << "\trayTracingPrimitiveCulling = " << value.rayTracingPrimitiveCulling << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceRayTracingPropertiesKHR& value)
+{
+	s << "VkPhysicalDeviceRayTracingPropertiesKHR = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tshaderGroupHandleSize = " << value.shaderGroupHandleSize << '\n';
+	s << "\tmaxRecursionDepth = " << value.maxRecursionDepth << '\n';
+	s << "\tmaxShaderGroupStride = " << value.maxShaderGroupStride << '\n';
+	s << "\tshaderGroupBaseAlignment = " << value.shaderGroupBaseAlignment << '\n';
+	s << "\tmaxGeometryCount = " << value.maxGeometryCount << '\n';
+	s << "\tmaxInstanceCount = " << value.maxInstanceCount << '\n';
+	s << "\tmaxPrimitiveCount = " << value.maxPrimitiveCount << '\n';
+	s << "\tmaxDescriptorSetAccelerationStructures = " << value.maxDescriptorSetAccelerationStructures << '\n';
+	s << "\tshaderGroupHandleCaptureReplaySize = " << value.shaderGroupHandleCaptureReplaySize << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureDeviceAddressInfoKHR& value)
+{
+	s << "VkAccelerationStructureDeviceAddressInfoKHR = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureVersionKHR& value)
+{
+	s << "VkAccelerationStructureVersionKHR = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tversionData = " << value.versionData << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkStridedBufferRegionKHR& value)
+{
+	s << "VkStridedBufferRegionKHR = {\n";
+	s << "\tbuffer = " << value.buffer << '\n';
+	s << "\toffset = " << value.offset << '\n';
+	s << "\tstride = " << value.stride << '\n';
+	s << "\tsize = " << value.size << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkTraceRaysIndirectCommandKHR& value)
+{
+	s << "VkTraceRaysIndirectCommandKHR = {\n";
+	s << "\twidth = " << value.width << '\n';
+	s << "\theight = " << value.height << '\n';
+	s << "\tdepth = " << value.depth << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkCopyAccelerationStructureToMemoryInfoKHR& value)
+{
+	s << "VkCopyAccelerationStructureToMemoryInfoKHR = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tsrc = " << value.src << '\n';
+	s << "\tdst = " << value.dst << '\n';
+	s << "\tmode = " << value.mode << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkCopyMemoryToAccelerationStructureInfoKHR& value)
+{
+	s << "VkCopyMemoryToAccelerationStructureInfoKHR = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tsrc = " << value.src << '\n';
+	s << "\tdst = " << value.dst << '\n';
+	s << "\tmode = " << value.mode << '\n';
+	s << '}';
+	return s;
+}
+
+std::ostream& operator<< (std::ostream& s, const VkCopyAccelerationStructureInfoKHR& value)
+{
+	s << "VkCopyAccelerationStructureInfoKHR = {\n";
+	s << "\tsType = " << value.sType << '\n';
+	s << "\tpNext = " << value.pNext << '\n';
+	s << "\tsrc = " << value.src << '\n';
+	s << "\tdst = " << value.dst << '\n';
+	s << "\tmode = " << value.mode << '\n';
+	s << '}';
+	return s;
+}
+
 std::ostream& operator<< (std::ostream& s, const VkImagePipeSurfaceCreateInfoFUCHSIA& value)
 {
 	s << "VkImagePipeSurfaceCreateInfoFUCHSIA = {\n";
diff --git a/external/vulkancts/framework/vulkan/vkStructTypes.inl b/external/vulkancts/framework/vulkan/vkStructTypes.inl
index 81f66fc..68ff0da 100644
--- a/external/vulkancts/framework/vulkan/vkStructTypes.inl
+++ b/external/vulkancts/framework/vulkan/vkStructTypes.inl
@@ -1,6 +1,128 @@
 /* WARNING: This is auto-generated file. Do not modify, since changes will
  * be lost! Modify the generating script instead.
  */
+struct VkExtent2D
+{
+	deUint32	width;
+	deUint32	height;
+};
+
+struct VkExtent3D
+{
+	deUint32	width;
+	deUint32	height;
+	deUint32	depth;
+};
+
+struct VkOffset2D
+{
+	deInt32	x;
+	deInt32	y;
+};
+
+struct VkOffset3D
+{
+	deInt32	x;
+	deInt32	y;
+	deInt32	z;
+};
+
+struct VkRect2D
+{
+	VkOffset2D	offset;
+	VkExtent2D	extent;
+};
+
+struct VkBaseInStructure
+{
+	VkStructureType					sType;
+	const struct VkBaseInStructure*	pNext;
+};
+
+struct VkBaseOutStructure
+{
+	VkStructureType				sType;
+	struct VkBaseOutStructure*	pNext;
+};
+
+struct VkBufferMemoryBarrier
+{
+	VkStructureType	sType;
+	const void*		pNext;
+	VkAccessFlags	srcAccessMask;
+	VkAccessFlags	dstAccessMask;
+	deUint32		srcQueueFamilyIndex;
+	deUint32		dstQueueFamilyIndex;
+	VkBuffer		buffer;
+	VkDeviceSize	offset;
+	VkDeviceSize	size;
+};
+
+struct VkDispatchIndirectCommand
+{
+	deUint32	x;
+	deUint32	y;
+	deUint32	z;
+};
+
+struct VkDrawIndexedIndirectCommand
+{
+	deUint32	indexCount;
+	deUint32	instanceCount;
+	deUint32	firstIndex;
+	deInt32		vertexOffset;
+	deUint32	firstInstance;
+};
+
+struct VkDrawIndirectCommand
+{
+	deUint32	vertexCount;
+	deUint32	instanceCount;
+	deUint32	firstVertex;
+	deUint32	firstInstance;
+};
+
+struct VkImageSubresourceRange
+{
+	VkImageAspectFlags	aspectMask;
+	deUint32			baseMipLevel;
+	deUint32			levelCount;
+	deUint32			baseArrayLayer;
+	deUint32			layerCount;
+};
+
+struct VkImageMemoryBarrier
+{
+	VkStructureType			sType;
+	const void*				pNext;
+	VkAccessFlags			srcAccessMask;
+	VkAccessFlags			dstAccessMask;
+	VkImageLayout			oldLayout;
+	VkImageLayout			newLayout;
+	deUint32				srcQueueFamilyIndex;
+	deUint32				dstQueueFamilyIndex;
+	VkImage					image;
+	VkImageSubresourceRange	subresourceRange;
+};
+
+struct VkMemoryBarrier
+{
+	VkStructureType	sType;
+	const void*		pNext;
+	VkAccessFlags	srcAccessMask;
+	VkAccessFlags	dstAccessMask;
+};
+
+struct VkAllocationCallbacks
+{
+	void*									pUserData;
+	PFN_vkAllocationFunction				pfnAllocation;
+	PFN_vkReallocationFunction				pfnReallocation;
+	PFN_vkFreeFunction						pfnFree;
+	PFN_vkInternalAllocationNotification	pfnInternalAllocation;
+	PFN_vkInternalFreeNotification			pfnInternalFree;
+};
+
 struct VkApplicationInfo
 {
 	VkStructureType	sType;
@@ -12,6 +134,22 @@
 	deUint32		apiVersion;
 };
 
+struct VkFormatProperties
+{
+	VkFormatFeatureFlags	linearTilingFeatures;
+	VkFormatFeatureFlags	optimalTilingFeatures;
+	VkFormatFeatureFlags	bufferFeatures;
+};
+
+struct VkImageFormatProperties
+{
+	VkExtent3D			maxExtent;
+	deUint32			maxMipLevels;
+	deUint32			maxArrayLayers;
+	VkSampleCountFlags	sampleCounts;
+	VkDeviceSize		maxResourceSize;
+};
+
 struct VkInstanceCreateInfo
 {
 	VkStructureType				sType;
@@ -24,14 +162,16 @@
 	const char* const*			ppEnabledExtensionNames;
 };
 
-struct VkAllocationCallbacks
+struct VkMemoryHeap
 {
-	void*									pUserData;
-	PFN_vkAllocationFunction				pfnAllocation;
-	PFN_vkReallocationFunction				pfnReallocation;
-	PFN_vkFreeFunction						pfnFree;
-	PFN_vkInternalAllocationNotification	pfnInternalAllocation;
-	PFN_vkInternalFreeNotification			pfnInternalFree;
+	VkDeviceSize		size;
+	VkMemoryHeapFlags	flags;
+};
+
+struct VkMemoryType
+{
+	VkMemoryPropertyFlags	propertyFlags;
+	deUint32				heapIndex;
 };
 
 struct VkPhysicalDeviceFeatures
@@ -93,29 +233,6 @@
 	VkBool32	inheritedQueries;
 };
 
-struct VkFormatProperties
-{
-	VkFormatFeatureFlags	linearTilingFeatures;
-	VkFormatFeatureFlags	optimalTilingFeatures;
-	VkFormatFeatureFlags	bufferFeatures;
-};
-
-struct VkExtent3D
-{
-	deUint32	width;
-	deUint32	height;
-	deUint32	depth;
-};
-
-struct VkImageFormatProperties
-{
-	VkExtent3D			maxExtent;
-	deUint32			maxMipLevels;
-	deUint32			maxArrayLayers;
-	VkSampleCountFlags	sampleCounts;
-	VkDeviceSize		maxResourceSize;
-};
-
 struct VkPhysicalDeviceLimits
 {
 	deUint32			maxImageDimension1D;
@@ -226,6 +343,14 @@
 	VkDeviceSize		nonCoherentAtomSize;
 };
 
+struct VkPhysicalDeviceMemoryProperties
+{
+	deUint32		memoryTypeCount;
+	VkMemoryType	memoryTypes[VK_MAX_MEMORY_TYPES];
+	deUint32		memoryHeapCount;
+	VkMemoryHeap	memoryHeaps[VK_MAX_MEMORY_HEAPS];
+};
+
 struct VkPhysicalDeviceSparseProperties
 {
 	VkBool32	residencyStandard2DBlockShape;
@@ -256,26 +381,6 @@
 	VkExtent3D		minImageTransferGranularity;
 };
 
-struct VkMemoryType
-{
-	VkMemoryPropertyFlags	propertyFlags;
-	deUint32				heapIndex;
-};
-
-struct VkMemoryHeap
-{
-	VkDeviceSize		size;
-	VkMemoryHeapFlags	flags;
-};
-
-struct VkPhysicalDeviceMemoryProperties
-{
-	deUint32		memoryTypeCount;
-	VkMemoryType	memoryTypes[VK_MAX_MEMORY_TYPES];
-	deUint32		memoryHeapCount;
-	VkMemoryHeap	memoryHeaps[VK_MAX_MEMORY_HEAPS];
-};
-
 struct VkDeviceQueueCreateInfo
 {
 	VkStructureType				sType;
@@ -327,14 +432,6 @@
 	const VkSemaphore*			pSignalSemaphores;
 };
 
-struct VkMemoryAllocateInfo
-{
-	VkStructureType	sType;
-	const void*		pNext;
-	VkDeviceSize	allocationSize;
-	deUint32		memoryTypeIndex;
-};
-
 struct VkMappedMemoryRange
 {
 	VkStructureType	sType;
@@ -344,6 +441,14 @@
 	VkDeviceSize	size;
 };
 
+struct VkMemoryAllocateInfo
+{
+	VkStructureType	sType;
+	const void*		pNext;
+	VkDeviceSize	allocationSize;
+	deUint32		memoryTypeIndex;
+};
+
 struct VkMemoryRequirements
 {
 	VkDeviceSize	size;
@@ -351,22 +456,6 @@
 	deUint32		memoryTypeBits;
 };
 
-struct VkSparseImageFormatProperties
-{
-	VkImageAspectFlags			aspectMask;
-	VkExtent3D					imageGranularity;
-	VkSparseImageFormatFlags	flags;
-};
-
-struct VkSparseImageMemoryRequirements
-{
-	VkSparseImageFormatProperties	formatProperties;
-	deUint32						imageMipTailFirstLod;
-	VkDeviceSize					imageMipTailSize;
-	VkDeviceSize					imageMipTailOffset;
-	VkDeviceSize					imageMipTailStride;
-};
-
 struct VkSparseMemoryBind
 {
 	VkDeviceSize			resourceOffset;
@@ -397,13 +486,6 @@
 	deUint32			arrayLayer;
 };
 
-struct VkOffset3D
-{
-	deInt32	x;
-	deInt32	y;
-	deInt32	z;
-};
-
 struct VkSparseImageMemoryBind
 {
 	VkImageSubresource		subresource;
@@ -437,6 +519,22 @@
 	const VkSemaphore*							pSignalSemaphores;
 };
 
+struct VkSparseImageFormatProperties
+{
+	VkImageAspectFlags			aspectMask;
+	VkExtent3D					imageGranularity;
+	VkSparseImageFormatFlags	flags;
+};
+
+struct VkSparseImageMemoryRequirements
+{
+	VkSparseImageFormatProperties	formatProperties;
+	deUint32						imageMipTailFirstLod;
+	VkDeviceSize					imageMipTailSize;
+	VkDeviceSize					imageMipTailOffset;
+	VkDeviceSize					imageMipTailStride;
+};
+
 struct VkFenceCreateInfo
 {
 	VkStructureType		sType;
@@ -527,15 +625,6 @@
 	VkComponentSwizzle	a;
 };
 
-struct VkImageSubresourceRange
-{
-	VkImageAspectFlags	aspectMask;
-	deUint32			baseMipLevel;
-	deUint32			levelCount;
-	deUint32			baseArrayLayer;
-	deUint32			layerCount;
-};
-
 struct VkImageViewCreateInfo
 {
 	VkStructureType			sType;
@@ -592,6 +681,17 @@
 	const VkSpecializationInfo*			pSpecializationInfo;
 };
 
+struct VkComputePipelineCreateInfo
+{
+	VkStructureType					sType;
+	const void*						pNext;
+	VkPipelineCreateFlags			flags;
+	VkPipelineShaderStageCreateInfo	stage;
+	VkPipelineLayout				layout;
+	VkPipeline						basePipelineHandle;
+	deInt32							basePipelineIndex;
+};
+
 struct VkVertexInputBindingDescription
 {
 	deUint32			binding;
@@ -645,24 +745,6 @@
 	float	maxDepth;
 };
 
-struct VkOffset2D
-{
-	deInt32	x;
-	deInt32	y;
-};
-
-struct VkExtent2D
-{
-	deUint32	width;
-	deUint32	height;
-};
-
-struct VkRect2D
-{
-	VkOffset2D	offset;
-	VkExtent2D	extent;
-};
-
 struct VkPipelineViewportStateCreateInfo
 {
 	VkStructureType						sType;
@@ -787,17 +869,6 @@
 	deInt32											basePipelineIndex;
 };
 
-struct VkComputePipelineCreateInfo
-{
-	VkStructureType					sType;
-	const void*						pNext;
-	VkPipelineCreateFlags			flags;
-	VkPipelineShaderStageCreateInfo	stage;
-	VkPipelineLayout				layout;
-	VkPipeline						basePipelineHandle;
-	deInt32							basePipelineIndex;
-};
-
 struct VkPushConstantRange
 {
 	VkShaderStageFlags	stageFlags;
@@ -838,22 +909,31 @@
 	VkBool32				unnormalizedCoordinates;
 };
 
-struct VkDescriptorSetLayoutBinding
+struct VkCopyDescriptorSet
 {
-	deUint32			binding;
-	VkDescriptorType	descriptorType;
-	deUint32			descriptorCount;
-	VkShaderStageFlags	stageFlags;
-	const VkSampler*	pImmutableSamplers;
+	VkStructureType	sType;
+	const void*		pNext;
+	VkDescriptorSet	srcSet;
+	deUint32		srcBinding;
+	deUint32		srcArrayElement;
+	VkDescriptorSet	dstSet;
+	deUint32		dstBinding;
+	deUint32		dstArrayElement;
+	deUint32		descriptorCount;
 };
 
-struct VkDescriptorSetLayoutCreateInfo
+struct VkDescriptorBufferInfo
 {
-	VkStructureType						sType;
-	const void*							pNext;
-	VkDescriptorSetLayoutCreateFlags	flags;
-	deUint32							bindingCount;
-	const VkDescriptorSetLayoutBinding*	pBindings;
+	VkBuffer		buffer;
+	VkDeviceSize	offset;
+	VkDeviceSize	range;
+};
+
+struct VkDescriptorImageInfo
+{
+	VkSampler		sampler;
+	VkImageView		imageView;
+	VkImageLayout	imageLayout;
 };
 
 struct VkDescriptorPoolSize
@@ -881,18 +961,22 @@
 	const VkDescriptorSetLayout*	pSetLayouts;
 };
 
-struct VkDescriptorImageInfo
+struct VkDescriptorSetLayoutBinding
 {
-	VkSampler		sampler;
-	VkImageView		imageView;
-	VkImageLayout	imageLayout;
+	deUint32			binding;
+	VkDescriptorType	descriptorType;
+	deUint32			descriptorCount;
+	VkShaderStageFlags	stageFlags;
+	const VkSampler*	pImmutableSamplers;
 };
 
-struct VkDescriptorBufferInfo
+struct VkDescriptorSetLayoutCreateInfo
 {
-	VkBuffer		buffer;
-	VkDeviceSize	offset;
-	VkDeviceSize	range;
+	VkStructureType						sType;
+	const void*							pNext;
+	VkDescriptorSetLayoutCreateFlags	flags;
+	deUint32							bindingCount;
+	const VkDescriptorSetLayoutBinding*	pBindings;
 };
 
 struct VkWriteDescriptorSet
@@ -909,32 +993,6 @@
 	const VkBufferView*				pTexelBufferView;
 };
 
-struct VkCopyDescriptorSet
-{
-	VkStructureType	sType;
-	const void*		pNext;
-	VkDescriptorSet	srcSet;
-	deUint32		srcBinding;
-	deUint32		srcArrayElement;
-	VkDescriptorSet	dstSet;
-	deUint32		dstBinding;
-	deUint32		dstArrayElement;
-	deUint32		descriptorCount;
-};
-
-struct VkFramebufferCreateInfo
-{
-	VkStructureType				sType;
-	const void*					pNext;
-	VkFramebufferCreateFlags	flags;
-	VkRenderPass				renderPass;
-	deUint32					attachmentCount;
-	const VkImageView*			pAttachments;
-	deUint32					width;
-	deUint32					height;
-	deUint32					layers;
-};
-
 struct VkAttachmentDescription
 {
 	VkAttachmentDescriptionFlags	flags;
@@ -954,6 +1012,19 @@
 	VkImageLayout	layout;
 };
 
+struct VkFramebufferCreateInfo
+{
+	VkStructureType				sType;
+	const void*					pNext;
+	VkFramebufferCreateFlags	flags;
+	VkRenderPass				renderPass;
+	deUint32					attachmentCount;
+	const VkImageView*			pAttachments;
+	deUint32					width;
+	deUint32					height;
+	deUint32					layers;
+};
+
 struct VkSubpassDescription
 {
 	VkSubpassDescriptionFlags		flags;
@@ -1044,23 +1115,6 @@
 	deUint32			layerCount;
 };
 
-struct VkImageCopy
-{
-	VkImageSubresourceLayers	srcSubresource;
-	VkOffset3D					srcOffset;
-	VkImageSubresourceLayers	dstSubresource;
-	VkOffset3D					dstOffset;
-	VkExtent3D					extent;
-};
-
-struct VkImageBlit
-{
-	VkImageSubresourceLayers	srcSubresource;
-	VkOffset3D					srcOffsets[2];
-	VkImageSubresourceLayers	dstSubresource;
-	VkOffset3D					dstOffsets[2];
-};
-
 struct VkBufferImageCopy
 {
 	VkDeviceSize				bufferOffset;
@@ -1104,7 +1158,15 @@
 	deUint32	layerCount;
 };
 
-struct VkImageResolve
+struct VkImageBlit
+{
+	VkImageSubresourceLayers	srcSubresource;
+	VkOffset3D					srcOffsets[2];
+	VkImageSubresourceLayers	dstSubresource;
+	VkOffset3D					dstOffsets[2];
+};
+
+struct VkImageCopy
 {
 	VkImageSubresourceLayers	srcSubresource;
 	VkOffset3D					srcOffset;
@@ -1113,39 +1175,13 @@
 	VkExtent3D					extent;
 };
 
-struct VkMemoryBarrier
+struct VkImageResolve
 {
-	VkStructureType	sType;
-	const void*		pNext;
-	VkAccessFlags	srcAccessMask;
-	VkAccessFlags	dstAccessMask;
-};
-
-struct VkBufferMemoryBarrier
-{
-	VkStructureType	sType;
-	const void*		pNext;
-	VkAccessFlags	srcAccessMask;
-	VkAccessFlags	dstAccessMask;
-	deUint32		srcQueueFamilyIndex;
-	deUint32		dstQueueFamilyIndex;
-	VkBuffer		buffer;
-	VkDeviceSize	offset;
-	VkDeviceSize	size;
-};
-
-struct VkImageMemoryBarrier
-{
-	VkStructureType			sType;
-	const void*				pNext;
-	VkAccessFlags			srcAccessMask;
-	VkAccessFlags			dstAccessMask;
-	VkImageLayout			oldLayout;
-	VkImageLayout			newLayout;
-	deUint32				srcQueueFamilyIndex;
-	deUint32				dstQueueFamilyIndex;
-	VkImage					image;
-	VkImageSubresourceRange	subresourceRange;
+	VkImageSubresourceLayers	srcSubresource;
+	VkOffset3D					srcOffset;
+	VkImageSubresourceLayers	dstSubresource;
+	VkOffset3D					dstOffset;
+	VkExtent3D					extent;
 };
 
 struct VkRenderPassBeginInfo
@@ -1159,42 +1195,6 @@
 	const VkClearValue*	pClearValues;
 };
 
-struct VkDispatchIndirectCommand
-{
-	deUint32	x;
-	deUint32	y;
-	deUint32	z;
-};
-
-struct VkDrawIndexedIndirectCommand
-{
-	deUint32	indexCount;
-	deUint32	instanceCount;
-	deUint32	firstIndex;
-	deInt32		vertexOffset;
-	deUint32	firstInstance;
-};
-
-struct VkDrawIndirectCommand
-{
-	deUint32	vertexCount;
-	deUint32	instanceCount;
-	deUint32	firstVertex;
-	deUint32	firstInstance;
-};
-
-struct VkBaseOutStructure
-{
-	VkStructureType				sType;
-	struct VkBaseOutStructure*	pNext;
-};
-
-struct VkBaseInStructure
-{
-	VkStructureType					sType;
-	const struct VkBaseInStructure*	pNext;
-};
-
 struct VkPhysicalDeviceSubgroupProperties
 {
 	VkStructureType			sType;
@@ -2459,29 +2459,12 @@
 	VkDeviceGroupPresentModeFlagsKHR	modes;
 };
 
-struct VkDisplayPropertiesKHR
-{
-	VkDisplayKHR				display;
-	const char*					displayName;
-	VkExtent2D					physicalDimensions;
-	VkExtent2D					physicalResolution;
-	VkSurfaceTransformFlagsKHR	supportedTransforms;
-	VkBool32					planeReorderPossible;
-	VkBool32					persistentContent;
-};
-
 struct VkDisplayModeParametersKHR
 {
 	VkExtent2D	visibleRegion;
 	deUint32	refreshRate;
 };
 
-struct VkDisplayModePropertiesKHR
-{
-	VkDisplayModeKHR			displayMode;
-	VkDisplayModeParametersKHR	parameters;
-};
-
 struct VkDisplayModeCreateInfoKHR
 {
 	VkStructureType				sType;
@@ -2490,6 +2473,12 @@
 	VkDisplayModeParametersKHR	parameters;
 };
 
+struct VkDisplayModePropertiesKHR
+{
+	VkDisplayModeKHR			displayMode;
+	VkDisplayModeParametersKHR	parameters;
+};
+
 struct VkDisplayPlaneCapabilitiesKHR
 {
 	VkDisplayPlaneAlphaFlagsKHR	supportedAlpha;
@@ -2509,6 +2498,17 @@
 	deUint32		currentStackIndex;
 };
 
+struct VkDisplayPropertiesKHR
+{
+	VkDisplayKHR				display;
+	const char*					displayName;
+	VkExtent2D					physicalDimensions;
+	VkExtent2D					physicalResolution;
+	VkSurfaceTransformFlagsKHR	supportedTransforms;
+	VkBool32					planeReorderPossible;
+	VkBool32					persistentContent;
+};
+
 struct VkDisplaySurfaceCreateInfoKHR
 {
 	VkStructureType					sType;
@@ -2935,6 +2935,14 @@
 	VkSampler			sampler;
 };
 
+struct VkImageViewAddressPropertiesNVX
+{
+	VkStructureType	sType;
+	void*			pNext;
+	VkDeviceAddress	deviceAddress;
+	VkDeviceSize	size;
+};
+
 struct VkTextureLODGatherFormatPropertiesAMD
 {
 	VkStructureType	sType;
@@ -3044,133 +3052,6 @@
 	VkBool32		conditionalRenderingEnable;
 };
 
-struct VkDeviceGeneratedCommandsFeaturesNVX
-{
-	VkStructureType	sType;
-	const void*		pNext;
-	VkBool32		computeBindingPointSupport;
-};
-
-struct VkDeviceGeneratedCommandsLimitsNVX
-{
-	VkStructureType	sType;
-	const void*		pNext;
-	deUint32		maxIndirectCommandsLayoutTokenCount;
-	deUint32		maxObjectEntryCounts;
-	deUint32		minSequenceCountBufferOffsetAlignment;
-	deUint32		minSequenceIndexBufferOffsetAlignment;
-	deUint32		minCommandsTokenBufferOffsetAlignment;
-};
-
-struct VkIndirectCommandsTokenNVX
-{
-	VkIndirectCommandsTokenTypeNVX	tokenType;
-	VkBuffer						buffer;
-	VkDeviceSize					offset;
-};
-
-struct VkIndirectCommandsLayoutTokenNVX
-{
-	VkIndirectCommandsTokenTypeNVX	tokenType;
-	deUint32						bindingUnit;
-	deUint32						dynamicCount;
-	deUint32						divisor;
-};
-
-struct VkIndirectCommandsLayoutCreateInfoNVX
-{
-	VkStructureType							sType;
-	const void*								pNext;
-	VkPipelineBindPoint						pipelineBindPoint;
-	VkIndirectCommandsLayoutUsageFlagsNVX	flags;
-	deUint32								tokenCount;
-	const VkIndirectCommandsLayoutTokenNVX*	pTokens;
-};
-
-struct VkCmdProcessCommandsInfoNVX
-{
-	VkStructureType						sType;
-	const void*							pNext;
-	VkObjectTableNVX					objectTable;
-	VkIndirectCommandsLayoutNVX			indirectCommandsLayout;
-	deUint32							indirectCommandsTokenCount;
-	const VkIndirectCommandsTokenNVX*	pIndirectCommandsTokens;
-	deUint32							maxSequencesCount;
-	VkCommandBuffer						targetCommandBuffer;
-	VkBuffer							sequencesCountBuffer;
-	VkDeviceSize						sequencesCountOffset;
-	VkBuffer							sequencesIndexBuffer;
-	VkDeviceSize						sequencesIndexOffset;
-};
-
-struct VkCmdReserveSpaceForCommandsInfoNVX
-{
-	VkStructureType				sType;
-	const void*					pNext;
-	VkObjectTableNVX			objectTable;
-	VkIndirectCommandsLayoutNVX	indirectCommandsLayout;
-	deUint32					maxSequencesCount;
-};
-
-struct VkObjectTableCreateInfoNVX
-{
-	VkStructureType						sType;
-	const void*							pNext;
-	deUint32							objectCount;
-	const VkObjectEntryTypeNVX*			pObjectEntryTypes;
-	const deUint32*						pObjectEntryCounts;
-	const VkObjectEntryUsageFlagsNVX*	pObjectEntryUsageFlags;
-	deUint32							maxUniformBuffersPerDescriptor;
-	deUint32							maxStorageBuffersPerDescriptor;
-	deUint32							maxStorageImagesPerDescriptor;
-	deUint32							maxSampledImagesPerDescriptor;
-	deUint32							maxPipelineLayouts;
-};
-
-struct VkObjectTableEntryNVX
-{
-	VkObjectEntryTypeNVX		type;
-	VkObjectEntryUsageFlagsNVX	flags;
-};
-
-struct VkObjectTablePipelineEntryNVX
-{
-	VkObjectEntryTypeNVX		type;
-	VkObjectEntryUsageFlagsNVX	flags;
-	VkPipeline					pipeline;
-};
-
-struct VkObjectTableDescriptorSetEntryNVX
-{
-	VkObjectEntryTypeNVX		type;
-	VkObjectEntryUsageFlagsNVX	flags;
-	VkPipelineLayout			pipelineLayout;
-	VkDescriptorSet				descriptorSet;
-};
-
-struct VkObjectTableVertexBufferEntryNVX
-{
-	VkObjectEntryTypeNVX		type;
-	VkObjectEntryUsageFlagsNVX	flags;
-	VkBuffer					buffer;
-};
-
-struct VkObjectTableIndexBufferEntryNVX
-{
-	VkObjectEntryTypeNVX		type;
-	VkObjectEntryUsageFlagsNVX	flags;
-	VkBuffer					buffer;
-	VkIndexType					indexType;
-};
-
-struct VkObjectTablePushConstantEntryNVX
-{
-	VkObjectEntryTypeNVX		type;
-	VkObjectEntryUsageFlagsNVX	flags;
-	VkPipelineLayout			pipelineLayout;
-	VkShaderStageFlags			stageFlags;
-};
-
 struct VkViewportWScalingNV
 {
 	float	xcoeff;
@@ -3359,6 +3240,14 @@
 	float			maxFrameAverageLightLevel;
 };
 
+struct VkDebugUtilsLabelEXT
+{
+	VkStructureType	sType;
+	const void*		pNext;
+	const char*		pLabelName;
+	float			color[4];
+};
+
 struct VkDebugUtilsObjectNameInfoEXT
 {
 	VkStructureType	sType;
@@ -3368,25 +3257,6 @@
 	const char*		pObjectName;
 };
 
-struct VkDebugUtilsObjectTagInfoEXT
-{
-	VkStructureType	sType;
-	const void*		pNext;
-	VkObjectType	objectType;
-	deUint64		objectHandle;
-	deUint64		tagName;
-	deUintptr		tagSize;
-	const void*		pTag;
-};
-
-struct VkDebugUtilsLabelEXT
-{
-	VkStructureType	sType;
-	const void*		pNext;
-	const char*		pLabelName;
-	float			color[4];
-};
-
 struct VkDebugUtilsMessengerCallbackDataEXT
 {
 	VkStructureType								sType;
@@ -3414,6 +3284,17 @@
 	void*									pUserData;
 };
 
+struct VkDebugUtilsObjectTagInfoEXT
+{
+	VkStructureType	sType;
+	const void*		pNext;
+	VkObjectType	objectType;
+	deUint64		objectHandle;
+	deUint64		tagName;
+	deUintptr		tagSize;
+	const void*		pTag;
+};
+
 struct VkPhysicalDeviceInlineUniformBlockFeaturesEXT
 {
 	VkStructureType	sType;
@@ -3700,7 +3581,7 @@
 {
 	VkStructureType					sType;
 	const void*						pNext;
-	VkRayTracingShaderGroupTypeNV	type;
+	VkRayTracingShaderGroupTypeKHR	type;
 	deUint32						generalShader;
 	deUint32						closestHitShader;
 	deUint32						anyHitShader;
@@ -3759,9 +3640,9 @@
 {
 	VkStructureType		sType;
 	const void*			pNext;
-	VkGeometryTypeNV	geometryType;
+	VkGeometryTypeKHR	geometryType;
 	VkGeometryDataNV	geometry;
-	VkGeometryFlagsNV	flags;
+	VkGeometryFlagsKHR	flags;
 };
 
 struct VkAccelerationStructureInfoNV
@@ -3783,23 +3664,23 @@
 	VkAccelerationStructureInfoNV	info;
 };
 
-struct VkBindAccelerationStructureMemoryInfoNV
+struct VkBindAccelerationStructureMemoryInfoKHR
 {
 	VkStructureType				sType;
 	const void*					pNext;
-	VkAccelerationStructureNV	accelerationStructure;
+	VkAccelerationStructureKHR	accelerationStructure;
 	VkDeviceMemory				memory;
 	VkDeviceSize				memoryOffset;
 	deUint32					deviceIndexCount;
 	const deUint32*				pDeviceIndices;
 };
 
-struct VkWriteDescriptorSetAccelerationStructureNV
+struct VkWriteDescriptorSetAccelerationStructureKHR
 {
 	VkStructureType						sType;
 	const void*							pNext;
 	deUint32							accelerationStructureCount;
-	const VkAccelerationStructureNV*	pAccelerationStructures;
+	const VkAccelerationStructureKHR*	pAccelerationStructures;
 };
 
 struct VkAccelerationStructureMemoryRequirementsInfoNV
@@ -3824,6 +3705,31 @@
 	deUint32		maxDescriptorSetAccelerationStructures;
 };
 
+struct VkTransformMatrixKHR
+{
+	float	matrix[3][4];
+};
+
+struct VkAabbPositionsKHR
+{
+	float	minX;
+	float	minY;
+	float	minZ;
+	float	maxX;
+	float	maxY;
+	float	maxZ;
+};
+
+struct VkAccelerationStructureInstanceKHR
+{
+	VkTransformMatrixKHR		transform;
+	deUint32					instanceCustomIndex:24;
+	deUint32					mask:8;
+	deUint32					instanceShaderBindingTableRecordOffset:24;
+	VkGeometryInstanceFlagsKHR	flags:8;
+	deUint64					accelerationStructureReference;
+};
+
 struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV
 {
 	VkStructureType	sType;
@@ -4081,7 +3987,7 @@
 	void*			pUserData;
 };
 
-struct VkQueryPoolCreateInfoINTEL
+struct VkQueryPoolPerformanceQueryCreateInfoINTEL
 {
 	VkStructureType					sType;
 	const void*						pNext;
@@ -4386,6 +4292,13 @@
 	VkBool32		indexTypeUint8;
 };
 
+struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT
+{
+	VkStructureType	sType;
+	void*			pNext;
+	VkBool32		extendedDynamicState;
+};
+
 struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT
 {
 	VkStructureType	sType;
@@ -4393,6 +4306,138 @@
 	VkBool32		shaderDemoteToHelperInvocation;
 };
 
+struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV
+{
+	VkStructureType	sType;
+	void*			pNext;
+	deUint32		maxGraphicsShaderGroupCount;
+	deUint32		maxIndirectSequenceCount;
+	deUint32		maxIndirectCommandsTokenCount;
+	deUint32		maxIndirectCommandsStreamCount;
+	deUint32		maxIndirectCommandsTokenOffset;
+	deUint32		maxIndirectCommandsStreamStride;
+	deUint32		minSequencesCountBufferOffsetAlignment;
+	deUint32		minSequencesIndexBufferOffsetAlignment;
+	deUint32		minIndirectCommandsBufferOffsetAlignment;
+};
+
+struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV
+{
+	VkStructureType	sType;
+	void*			pNext;
+	VkBool32		deviceGeneratedCommands;
+};
+
+struct VkGraphicsShaderGroupCreateInfoNV
+{
+	VkStructureType									sType;
+	const void*										pNext;
+	deUint32										stageCount;
+	const VkPipelineShaderStageCreateInfo*			pStages;
+	const VkPipelineVertexInputStateCreateInfo*		pVertexInputState;
+	const VkPipelineTessellationStateCreateInfo*	pTessellationState;
+};
+
+struct VkGraphicsPipelineShaderGroupsCreateInfoNV
+{
+	VkStructureType								sType;
+	const void*									pNext;
+	deUint32									groupCount;
+	const VkGraphicsShaderGroupCreateInfoNV*	pGroups;
+	deUint32									pipelineCount;
+	const VkPipeline*							pPipelines;
+};
+
+struct VkBindShaderGroupIndirectCommandNV
+{
+	deUint32	groupIndex;
+};
+
+struct VkBindIndexBufferIndirectCommandNV
+{
+	VkDeviceAddress	bufferAddress;
+	deUint32		size;
+	VkIndexType		indexType;
+};
+
+struct VkBindVertexBufferIndirectCommandNV
+{
+	VkDeviceAddress	bufferAddress;
+	deUint32		size;
+	deUint32		stride;
+};
+
+struct VkSetStateFlagsIndirectCommandNV
+{
+	deUint32	data;
+};
+
+struct VkIndirectCommandsStreamNV
+{
+	VkBuffer		buffer;
+	VkDeviceSize	offset;
+};
+
+struct VkIndirectCommandsLayoutTokenNV
+{
+	VkStructureType					sType;
+	const void*						pNext;
+	VkIndirectCommandsTokenTypeNV	tokenType;
+	deUint32						stream;
+	deUint32						offset;
+	deUint32						vertexBindingUnit;
+	VkBool32						vertexDynamicStride;
+	VkPipelineLayout				pushconstantPipelineLayout;
+	VkShaderStageFlags				pushconstantShaderStageFlags;
+	deUint32						pushconstantOffset;
+	deUint32						pushconstantSize;
+	VkIndirectStateFlagsNV			indirectStateFlags;
+	deUint32						indexTypeCount;
+	const VkIndexType*				pIndexTypes;
+	const deUint32*					pIndexTypeValues;
+};
+
+struct VkIndirectCommandsLayoutCreateInfoNV
+{
+	VkStructureType							sType;
+	const void*								pNext;
+	VkIndirectCommandsLayoutUsageFlagsNV	flags;
+	VkPipelineBindPoint						pipelineBindPoint;
+	deUint32								tokenCount;
+	const VkIndirectCommandsLayoutTokenNV*	pTokens;
+	deUint32								streamCount;
+	const deUint32*							pStreamStrides;
+};
+
+struct VkGeneratedCommandsInfoNV
+{
+	VkStructureType						sType;
+	const void*							pNext;
+	VkPipelineBindPoint					pipelineBindPoint;
+	VkPipeline							pipeline;
+	VkIndirectCommandsLayoutNV			indirectCommandsLayout;
+	deUint32							streamCount;
+	const VkIndirectCommandsStreamNV*	pStreams;
+	deUint32							sequencesCount;
+	VkBuffer							preprocessBuffer;
+	VkDeviceSize						preprocessOffset;
+	VkDeviceSize						preprocessSize;
+	VkBuffer							sequencesCountBuffer;
+	VkDeviceSize						sequencesCountOffset;
+	VkBuffer							sequencesIndexBuffer;
+	VkDeviceSize						sequencesIndexOffset;
+};
+
+struct VkGeneratedCommandsMemoryRequirementsInfoNV
+{
+	VkStructureType				sType;
+	const void*					pNext;
+	VkPipelineBindPoint			pipelineBindPoint;
+	VkPipeline					pipeline;
+	VkIndirectCommandsLayoutNV	indirectCommandsLayout;
+	deUint32					maxSequencesCount;
+};
+
 struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT
 {
 	VkStructureType	sType;
@@ -4410,6 +4455,120 @@
 	VkBool32		uniformTexelBufferOffsetSingleTexelAlignment;
 };
 
+struct VkRenderPassTransformBeginInfoQCOM
+{
+	VkStructureType					sType;
+	void*							pNext;
+	VkSurfaceTransformFlagBitsKHR	transform;
+};
+
+struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM
+{
+	VkStructureType					sType;
+	void*							pNext;
+	VkSurfaceTransformFlagBitsKHR	transform;
+	VkRect2D						renderArea;
+};
+
+struct VkPhysicalDeviceRobustness2FeaturesEXT
+{
+	VkStructureType	sType;
+	void*			pNext;
+	VkBool32		robustBufferAccess2;
+	VkBool32		robustImageAccess2;
+	VkBool32		nullDescriptor;
+};
+
+struct VkPhysicalDeviceRobustness2PropertiesEXT
+{
+	VkStructureType	sType;
+	void*			pNext;
+	VkDeviceSize	robustStorageBufferAccessSizeAlignment;
+	VkDeviceSize	robustUniformBufferAccessSizeAlignment;
+};
+
+struct VkSamplerCustomBorderColorCreateInfoEXT
+{
+	VkStructureType		sType;
+	const void*			pNext;
+	VkClearColorValue	customBorderColor;
+	VkFormat			format;
+};
+
+struct VkPhysicalDeviceCustomBorderColorPropertiesEXT
+{
+	VkStructureType	sType;
+	void*			pNext;
+	deUint32		maxCustomBorderColorSamplers;
+};
+
+struct VkPhysicalDeviceCustomBorderColorFeaturesEXT
+{
+	VkStructureType	sType;
+	void*			pNext;
+	VkBool32		customBorderColors;
+	VkBool32		customBorderColorWithoutFormat;
+};
+
+struct VkPhysicalDevicePrivateDataFeaturesEXT
+{
+	VkStructureType	sType;
+	void*			pNext;
+	VkBool32		privateData;
+};
+
+struct VkDevicePrivateDataCreateInfoEXT
+{
+	VkStructureType	sType;
+	const void*		pNext;
+	deUint32		privateDataSlotRequestCount;
+};
+
+struct VkPrivateDataSlotCreateInfoEXT
+{
+	VkStructureType					sType;
+	const void*						pNext;
+	VkPrivateDataSlotCreateFlagsEXT	flags;
+};
+
+struct VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT
+{
+	VkStructureType	sType;
+	void*			pNext;
+	VkBool32		pipelineCreationCacheControl;
+};
+
+struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV
+{
+	VkStructureType	sType;
+	void*			pNext;
+	VkBool32		diagnosticsConfig;
+};
+
+struct VkDeviceDiagnosticsConfigCreateInfoNV
+{
+	VkStructureType						sType;
+	const void*							pNext;
+	VkDeviceDiagnosticsConfigFlagsNV	flags;
+};
+
+struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT
+{
+	VkStructureType	sType;
+	void*			pNext;
+	VkBool32		fragmentDensityMapDeferred;
+};
+
+struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT
+{
+	VkStructureType	sType;
+	void*			pNext;
+	VkBool32		subsampledLoads;
+	VkBool32		subsampledCoarseReconstructionEarlyAccess;
+	deUint32		maxSubsampledArrayLayers;
+	deUint32		maxDescriptorSetSubsampledSamplers;
+};
+
 struct VkAndroidSurfaceCreateInfoKHR
 {
 	VkStructureType						sType;
@@ -4468,6 +4627,257 @@
 	deUint64		externalFormat;
 };
 
+struct VkDeferredOperationInfoKHR
+{
+	VkStructureType			sType;
+	const void*				pNext;
+	VkDeferredOperationKHR	operationHandle;
+};
+
+struct VkPipelineLibraryCreateInfoKHR
+{
+	VkStructureType		sType;
+	const void*			pNext;
+	deUint32			libraryCount;
+	const VkPipeline*	pLibraries;
+};
+
+union VkDeviceOrHostAddressKHR
+{
+	VkDeviceAddress	deviceAddress;
+	void*			hostAddress;
+};
+
+union VkDeviceOrHostAddressConstKHR
+{
+	VkDeviceAddress	deviceAddress;
+	const void*		hostAddress;
+};
+
+struct VkAccelerationStructureBuildOffsetInfoKHR
+{
+	deUint32	primitiveCount;
+	deUint32	primitiveOffset;
+	deUint32	firstVertex;
+	deUint32	transformOffset;
+};
+
+struct VkRayTracingShaderGroupCreateInfoKHR
+{
+	VkStructureType					sType;
+	const void*						pNext;
+	VkRayTracingShaderGroupTypeKHR	type;
+	deUint32						generalShader;
+	deUint32						closestHitShader;
+	deUint32						anyHitShader;
+	deUint32						intersectionShader;
+	const void*						pShaderGroupCaptureReplayHandle;
+};
+
+struct VkRayTracingPipelineInterfaceCreateInfoKHR
+{
+	VkStructureType	sType;
+	const void*		pNext;
+	deUint32		maxPayloadSize;
+	deUint32		maxAttributeSize;
+	deUint32		maxCallableSize;
+};
+
+struct VkRayTracingPipelineCreateInfoKHR
+{
+	VkStructureType										sType;
+	const void*											pNext;
+	VkPipelineCreateFlags								flags;
+	deUint32											stageCount;
+	const VkPipelineShaderStageCreateInfo*				pStages;
+	deUint32											groupCount;
+	const VkRayTracingShaderGroupCreateInfoKHR*			pGroups;
+	deUint32											maxRecursionDepth;
+	VkPipelineLibraryCreateInfoKHR						libraries;
+	const VkRayTracingPipelineInterfaceCreateInfoKHR*	pLibraryInterface;
+	VkPipelineLayout									layout;
+	VkPipeline											basePipelineHandle;
+	deInt32												basePipelineIndex;
+};
+
+struct VkAccelerationStructureGeometryTrianglesDataKHR
+{
+	VkStructureType					sType;
+	const void*						pNext;
+	VkFormat						vertexFormat;
+	VkDeviceOrHostAddressConstKHR	vertexData;
+	VkDeviceSize					vertexStride;
+	VkIndexType						indexType;
+	VkDeviceOrHostAddressConstKHR	indexData;
+	VkDeviceOrHostAddressConstKHR	transformData;
+};
+
+struct VkAccelerationStructureGeometryAabbsDataKHR
+{
+	VkStructureType					sType;
+	const void*						pNext;
+	VkDeviceOrHostAddressConstKHR	data;
+	VkDeviceSize					stride;
+};
+
+struct VkAccelerationStructureGeometryInstancesDataKHR
+{
+	VkStructureType					sType;
+	const void*						pNext;
+	VkBool32						arrayOfPointers;
+	VkDeviceOrHostAddressConstKHR	data;
+};
+
+union VkAccelerationStructureGeometryDataKHR
+{
+	VkAccelerationStructureGeometryTrianglesDataKHR	triangles;
+	VkAccelerationStructureGeometryAabbsDataKHR		aabbs;
+	VkAccelerationStructureGeometryInstancesDataKHR	instances;
+};
+
+struct VkAccelerationStructureGeometryKHR
+{
+	VkStructureType							sType;
+	const void*								pNext;
+	VkGeometryTypeKHR						geometryType;
+	VkAccelerationStructureGeometryDataKHR	geometry;
+	VkGeometryFlagsKHR						flags;
+};
+
+struct VkAccelerationStructureBuildGeometryInfoKHR
+{
+	VkStructureType										sType;
+	const void*											pNext;
+	VkAccelerationStructureTypeKHR						type;
+	VkBuildAccelerationStructureFlagsKHR				flags;
+	VkBool32											update;
+	VkAccelerationStructureKHR							srcAccelerationStructure;
+	VkAccelerationStructureKHR							dstAccelerationStructure;
+	VkBool32											geometryArrayOfPointers;
+	deUint32											geometryCount;
+	const VkAccelerationStructureGeometryKHR* const*	ppGeometries;
+	VkDeviceOrHostAddressKHR							scratchData;
+};
+
+struct VkAccelerationStructureCreateGeometryTypeInfoKHR
+{
+	VkStructureType		sType;
+	const void*			pNext;
+	VkGeometryTypeKHR	geometryType;
+	deUint32			maxPrimitiveCount;
+	VkIndexType			indexType;
+	deUint32			maxVertexCount;
+	VkFormat			vertexFormat;
+	VkBool32			allowsTransforms;
+};
+
+struct VkAccelerationStructureCreateInfoKHR
+{
+	VkStructureType											sType;
+	const void*												pNext;
+	VkDeviceSize											compactedSize;
+	VkAccelerationStructureTypeKHR							type;
+	VkBuildAccelerationStructureFlagsKHR					flags;
+	deUint32												maxGeometryCount;
+	const VkAccelerationStructureCreateGeometryTypeInfoKHR*	pGeometryInfos;
+	VkDeviceAddress											deviceAddress;
+};
+
+struct VkAccelerationStructureMemoryRequirementsInfoKHR
+{
+	VkStructureType										sType;
+	const void*											pNext;
+	VkAccelerationStructureMemoryRequirementsTypeKHR	type;
+	VkAccelerationStructureBuildTypeKHR					buildType;
+	VkAccelerationStructureKHR							accelerationStructure;
+};
+
+struct VkPhysicalDeviceRayTracingFeaturesKHR
+{
+	VkStructureType	sType;
+	void*			pNext;
+	VkBool32		rayTracing;
+	VkBool32		rayTracingShaderGroupHandleCaptureReplay;
+	VkBool32		rayTracingShaderGroupHandleCaptureReplayMixed;
+	VkBool32		rayTracingAccelerationStructureCaptureReplay;
+	VkBool32		rayTracingIndirectTraceRays;
+	VkBool32		rayTracingIndirectAccelerationStructureBuild;
+	VkBool32		rayTracingHostAccelerationStructureCommands;
+	VkBool32		rayQuery;
+	VkBool32		rayTracingPrimitiveCulling;
+};
+
+struct VkPhysicalDeviceRayTracingPropertiesKHR
+{
+	VkStructureType	sType;
+	void*			pNext;
+	deUint32		shaderGroupHandleSize;
+	deUint32		maxRecursionDepth;
+	deUint32		maxShaderGroupStride;
+	deUint32		shaderGroupBaseAlignment;
+	deUint64		maxGeometryCount;
+	deUint64		maxInstanceCount;
+	deUint64		maxPrimitiveCount;
+	deUint32		maxDescriptorSetAccelerationStructures;
+	deUint32		shaderGroupHandleCaptureReplaySize;
+};
+
+struct VkAccelerationStructureDeviceAddressInfoKHR
+{
+	VkStructureType				sType;
+	const void*					pNext;
+	VkAccelerationStructureKHR	accelerationStructure;
+};
+
+struct VkAccelerationStructureVersionKHR
+{
+	VkStructureType	sType;
+	const void*		pNext;
+	const deUint8*	versionData;
+};
+
+struct VkStridedBufferRegionKHR
+{
+	VkBuffer		buffer;
+	VkDeviceSize	offset;
+	VkDeviceSize	stride;
+	VkDeviceSize	size;
+};
+
+struct VkTraceRaysIndirectCommandKHR
+{
+	deUint32	width;
+	deUint32	height;
+	deUint32	depth;
+};
+
+struct VkCopyAccelerationStructureToMemoryInfoKHR
+{
+	VkStructureType						sType;
+	const void*							pNext;
+	VkAccelerationStructureKHR			src;
+	VkDeviceOrHostAddressKHR			dst;
+	VkCopyAccelerationStructureModeKHR	mode;
+};
+
+struct VkCopyMemoryToAccelerationStructureInfoKHR
+{
+	VkStructureType						sType;
+	const void*							pNext;
+	VkDeviceOrHostAddressConstKHR		src;
+	VkAccelerationStructureKHR			dst;
+	VkCopyAccelerationStructureModeKHR	mode;
+};
+
+struct VkCopyAccelerationStructureInfoKHR
+{
+	VkStructureType						sType;
+	const void*							pNext;
+	VkAccelerationStructureKHR			src;
+	VkAccelerationStructureKHR			dst;
+	VkCopyAccelerationStructureModeKHR	mode;
+};
+
 struct VkImagePipeSurfaceCreateInfoFUCHSIA
 {
 	VkStructureType							sType;
@@ -4935,5 +5345,17 @@
 
 typedef VkDeviceMemoryOpaqueCaptureAddressInfo VkDeviceMemoryOpaqueCaptureAddressInfoKHR;
 
+typedef VkBindAccelerationStructureMemoryInfoKHR VkBindAccelerationStructureMemoryInfoNV;
+
+typedef VkWriteDescriptorSetAccelerationStructureKHR VkWriteDescriptorSetAccelerationStructureNV;
+
+typedef VkTransformMatrixKHR VkTransformMatrixNV;
+
+typedef VkAabbPositionsKHR VkAabbPositionsNV;
+
+typedef VkAccelerationStructureInstanceKHR VkAccelerationStructureInstanceNV;
+
+typedef VkQueryPoolPerformanceQueryCreateInfoINTEL VkQueryPoolCreateInfoINTEL;
+
 typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT;
 
diff --git a/external/vulkancts/framework/vulkan/vkTypeUtil.inl b/external/vulkancts/framework/vulkan/vkTypeUtil.inl
index 980d114..97bd36f 100644
--- a/external/vulkancts/framework/vulkan/vkTypeUtil.inl
+++ b/external/vulkancts/framework/vulkan/vkTypeUtil.inl
@@ -2,15 +2,11 @@
  * be lost! Modify the generating script instead.
  */
 
-inline VkAllocationCallbacks makeAllocationCallbacks (void* pUserData, PFN_vkAllocationFunction pfnAllocation, PFN_vkReallocationFunction pfnReallocation, PFN_vkFreeFunction pfnFree, PFN_vkInternalAllocationNotification pfnInternalAllocation, PFN_vkInternalFreeNotification pfnInternalFree)
+inline VkExtent2D makeExtent2D (deUint32 width, deUint32 height)
 {
-	VkAllocationCallbacks res;
-	res.pUserData				= pUserData;
-	res.pfnAllocation			= pfnAllocation;
-	res.pfnReallocation			= pfnReallocation;
-	res.pfnFree					= pfnFree;
-	res.pfnInternalAllocation	= pfnInternalAllocation;
-	res.pfnInternalFree			= pfnInternalFree;
+	VkExtent2D res;
+	res.width	= width;
+	res.height	= height;
 	return res;
 }
 
@@ -23,6 +19,76 @@
 	return res;
 }
 
+inline VkOffset2D makeOffset2D (deInt32 x, deInt32 y)
+{
+	VkOffset2D res;
+	res.x	= x;
+	res.y	= y;
+	return res;
+}
+
+inline VkOffset3D makeOffset3D (deInt32 x, deInt32 y, deInt32 z)
+{
+	VkOffset3D res;
+	res.x	= x;
+	res.y	= y;
+	res.z	= z;
+	return res;
+}
+
+inline VkDispatchIndirectCommand makeDispatchIndirectCommand (deUint32 x, deUint32 y, deUint32 z)
+{
+	VkDispatchIndirectCommand res;
+	res.x	= x;
+	res.y	= y;
+	res.z	= z;
+	return res;
+}
+
+inline VkDrawIndexedIndirectCommand makeDrawIndexedIndirectCommand (deUint32 indexCount, deUint32 instanceCount, deUint32 firstIndex, deInt32 vertexOffset, deUint32 firstInstance)
+{
+	VkDrawIndexedIndirectCommand res;
+	res.indexCount		= indexCount;
+	res.instanceCount	= instanceCount;
+	res.firstIndex		= firstIndex;
+	res.vertexOffset	= vertexOffset;
+	res.firstInstance	= firstInstance;
+	return res;
+}
+
+inline VkDrawIndirectCommand makeDrawIndirectCommand (deUint32 vertexCount, deUint32 instanceCount, deUint32 firstVertex, deUint32 firstInstance)
+{
+	VkDrawIndirectCommand res;
+	res.vertexCount		= vertexCount;
+	res.instanceCount	= instanceCount;
+	res.firstVertex		= firstVertex;
+	res.firstInstance	= firstInstance;
+	return res;
+}
+
+inline VkImageSubresourceRange makeImageSubresourceRange (VkImageAspectFlags aspectMask, deUint32 baseMipLevel, deUint32 levelCount, deUint32 baseArrayLayer, deUint32 layerCount)
+{
+	VkImageSubresourceRange res;
+	res.aspectMask		= aspectMask;
+	res.baseMipLevel	= baseMipLevel;
+	res.levelCount		= levelCount;
+	res.baseArrayLayer	= baseArrayLayer;
+	res.layerCount		= layerCount;
+	return res;
+}
+
+inline VkAllocationCallbacks makeAllocationCallbacks (void* pUserData, PFN_vkAllocationFunction pfnAllocation, PFN_vkReallocationFunction pfnReallocation, PFN_vkFreeFunction pfnFree, PFN_vkInternalAllocationNotification pfnInternalAllocation, PFN_vkInternalFreeNotification pfnInternalFree)
+{
+	VkAllocationCallbacks res;
+	res.pUserData				= pUserData;
+	res.pfnAllocation			= pfnAllocation;
+	res.pfnReallocation			= pfnReallocation;
+	res.pfnFree					= pfnFree;
+	res.pfnInternalAllocation	= pfnInternalAllocation;
+	res.pfnInternalFree			= pfnInternalFree;
+	return res;
+}
+
 inline VkMemoryRequirements makeMemoryRequirements (VkDeviceSize size, VkDeviceSize alignment, deUint32 memoryTypeBits)
 {
 	VkMemoryRequirements res;
@@ -70,15 +136,6 @@
 	return res;
 }
 
-inline VkOffset3D makeOffset3D (deInt32 x, deInt32 y, deInt32 z)
-{
-	VkOffset3D res;
-	res.x	= x;
-	res.y	= y;
-	res.z	= z;
-	return res;
-}
-
 inline VkSparseImageMemoryBindInfo makeSparseImageMemoryBindInfo (VkImage image, deUint32 bindCount, const VkSparseImageMemoryBind* pBinds)
 {
 	VkSparseImageMemoryBindInfo res;
@@ -109,17 +166,6 @@
 	return res;
 }
 
-inline VkImageSubresourceRange makeImageSubresourceRange (VkImageAspectFlags aspectMask, deUint32 baseMipLevel, deUint32 levelCount, deUint32 baseArrayLayer, deUint32 layerCount)
-{
-	VkImageSubresourceRange res;
-	res.aspectMask		= aspectMask;
-	res.baseMipLevel	= baseMipLevel;
-	res.levelCount		= levelCount;
-	res.baseArrayLayer	= baseArrayLayer;
-	res.layerCount		= layerCount;
-	return res;
-}
-
 inline VkSpecializationMapEntry makeSpecializationMapEntry (deUint32 constantID, deUint32 offset, deUintptr size)
 {
 	VkSpecializationMapEntry res;
@@ -170,22 +216,6 @@
 	return res;
 }
 
-inline VkOffset2D makeOffset2D (deInt32 x, deInt32 y)
-{
-	VkOffset2D res;
-	res.x	= x;
-	res.y	= y;
-	return res;
-}
-
-inline VkExtent2D makeExtent2D (deUint32 width, deUint32 height)
-{
-	VkExtent2D res;
-	res.width	= width;
-	res.height	= height;
-	return res;
-}
-
 inline VkStencilOpState makeStencilOpState (VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp, deUint32 compareMask, deUint32 writeMask, deUint32 reference)
 {
 	VkStencilOpState res;
@@ -222,22 +252,12 @@
 	return res;
 }
 
-inline VkDescriptorSetLayoutBinding makeDescriptorSetLayoutBinding (deUint32 binding, VkDescriptorType descriptorType, deUint32 descriptorCount, VkShaderStageFlags stageFlags, const VkSampler* pImmutableSamplers)
+inline VkDescriptorBufferInfo makeDescriptorBufferInfo (VkBuffer buffer, VkDeviceSize offset, VkDeviceSize range)
 {
-	VkDescriptorSetLayoutBinding res;
-	res.binding				= binding;
-	res.descriptorType		= descriptorType;
-	res.descriptorCount		= descriptorCount;
-	res.stageFlags			= stageFlags;
-	res.pImmutableSamplers	= pImmutableSamplers;
-	return res;
-}
-
-inline VkDescriptorPoolSize makeDescriptorPoolSize (VkDescriptorType type, deUint32 descriptorCount)
-{
-	VkDescriptorPoolSize res;
-	res.type			= type;
-	res.descriptorCount	= descriptorCount;
+	VkDescriptorBufferInfo res;
+	res.buffer	= buffer;
+	res.offset	= offset;
+	res.range	= range;
 	return res;
 }
 
@@ -250,12 +270,22 @@
 	return res;
 }
 
-inline VkDescriptorBufferInfo makeDescriptorBufferInfo (VkBuffer buffer, VkDeviceSize offset, VkDeviceSize range)
+inline VkDescriptorPoolSize makeDescriptorPoolSize (VkDescriptorType type, deUint32 descriptorCount)
 {
-	VkDescriptorBufferInfo res;
-	res.buffer	= buffer;
-	res.offset	= offset;
-	res.range	= range;
+	VkDescriptorPoolSize res;
+	res.type			= type;
+	res.descriptorCount	= descriptorCount;
+	return res;
+}
+
+inline VkDescriptorSetLayoutBinding makeDescriptorSetLayoutBinding (deUint32 binding, VkDescriptorType descriptorType, deUint32 descriptorCount, VkShaderStageFlags stageFlags, const VkSampler* pImmutableSamplers)
+{
+	VkDescriptorSetLayoutBinding res;
+	res.binding				= binding;
+	res.descriptorType		= descriptorType;
+	res.descriptorCount		= descriptorCount;
+	res.stageFlags			= stageFlags;
+	res.pImmutableSamplers	= pImmutableSamplers;
 	return res;
 }
 
@@ -338,36 +368,6 @@
 	return res;
 }
 
-inline VkDispatchIndirectCommand makeDispatchIndirectCommand (deUint32 x, deUint32 y, deUint32 z)
-{
-	VkDispatchIndirectCommand res;
-	res.x	= x;
-	res.y	= y;
-	res.z	= z;
-	return res;
-}
-
-inline VkDrawIndexedIndirectCommand makeDrawIndexedIndirectCommand (deUint32 indexCount, deUint32 instanceCount, deUint32 firstIndex, deInt32 vertexOffset, deUint32 firstInstance)
-{
-	VkDrawIndexedIndirectCommand res;
-	res.indexCount		= indexCount;
-	res.instanceCount	= instanceCount;
-	res.firstIndex		= firstIndex;
-	res.vertexOffset	= vertexOffset;
-	res.firstInstance	= firstInstance;
-	return res;
-}
-
-inline VkDrawIndirectCommand makeDrawIndirectCommand (deUint32 vertexCount, deUint32 instanceCount, deUint32 firstVertex, deUint32 firstInstance)
-{
-	VkDrawIndirectCommand res;
-	res.vertexCount		= vertexCount;
-	res.instanceCount	= instanceCount;
-	res.firstVertex		= firstVertex;
-	res.firstInstance	= firstInstance;
-	return res;
-}
-
 inline VkInputAttachmentAspectReference makeInputAttachmentAspectReference (deUint32 subpass, deUint32 inputAttachmentIndex, VkImageAspectFlags aspectMask)
 {
 	VkInputAttachmentAspectReference res;
@@ -443,81 +443,6 @@
 	return res;
 }
 
-inline VkIndirectCommandsTokenNVX makeIndirectCommandsTokenNVX (VkIndirectCommandsTokenTypeNVX tokenType, VkBuffer buffer, VkDeviceSize offset)
-{
-	VkIndirectCommandsTokenNVX res;
-	res.tokenType	= tokenType;
-	res.buffer		= buffer;
-	res.offset		= offset;
-	return res;
-}
-
-inline VkIndirectCommandsLayoutTokenNVX makeIndirectCommandsLayoutTokenNVX (VkIndirectCommandsTokenTypeNVX tokenType, deUint32 bindingUnit, deUint32 dynamicCount, deUint32 divisor)
-{
-	VkIndirectCommandsLayoutTokenNVX res;
-	res.tokenType		= tokenType;
-	res.bindingUnit		= bindingUnit;
-	res.dynamicCount	= dynamicCount;
-	res.divisor			= divisor;
-	return res;
-}
-
-inline VkObjectTableEntryNVX makeObjectTableEntryNVX (VkObjectEntryTypeNVX type, VkObjectEntryUsageFlagsNVX flags)
-{
-	VkObjectTableEntryNVX res;
-	res.type	= type;
-	res.flags	= flags;
-	return res;
-}
-
-inline VkObjectTablePipelineEntryNVX makeObjectTablePipelineEntryNVX (VkObjectEntryTypeNVX type, VkObjectEntryUsageFlagsNVX flags, VkPipeline pipeline)
-{
-	VkObjectTablePipelineEntryNVX res;
-	res.type		= type;
-	res.flags		= flags;
-	res.pipeline	= pipeline;
-	return res;
-}
-
-inline VkObjectTableDescriptorSetEntryNVX makeObjectTableDescriptorSetEntryNVX (VkObjectEntryTypeNVX type, VkObjectEntryUsageFlagsNVX flags, VkPipelineLayout pipelineLayout, VkDescriptorSet descriptorSet)
-{
-	VkObjectTableDescriptorSetEntryNVX res;
-	res.type			= type;
-	res.flags			= flags;
-	res.pipelineLayout	= pipelineLayout;
-	res.descriptorSet	= descriptorSet;
-	return res;
-}
-
-inline VkObjectTableVertexBufferEntryNVX makeObjectTableVertexBufferEntryNVX (VkObjectEntryTypeNVX type, VkObjectEntryUsageFlagsNVX flags, VkBuffer buffer)
-{
-	VkObjectTableVertexBufferEntryNVX res;
-	res.type	= type;
-	res.flags	= flags;
-	res.buffer	= buffer;
-	return res;
-}
-
-inline VkObjectTableIndexBufferEntryNVX makeObjectTableIndexBufferEntryNVX (VkObjectEntryTypeNVX type, VkObjectEntryUsageFlagsNVX flags, VkBuffer buffer, VkIndexType indexType)
-{
-	VkObjectTableIndexBufferEntryNVX res;
-	res.type		= type;
-	res.flags		= flags;
-	res.buffer		= buffer;
-	res.indexType	= indexType;
-	return res;
-}
-
-inline VkObjectTablePushConstantEntryNVX makeObjectTablePushConstantEntryNVX (VkObjectEntryTypeNVX type, VkObjectEntryUsageFlagsNVX flags, VkPipelineLayout pipelineLayout, VkShaderStageFlags stageFlags)
-{
-	VkObjectTablePushConstantEntryNVX res;
-	res.type			= type;
-	res.flags			= flags;
-	res.pipelineLayout	= pipelineLayout;
-	res.stageFlags		= stageFlags;
-	return res;
-}
-
 inline VkViewportWScalingNV makeViewportWScalingNV (float xcoeff, float ycoeff)
 {
 	VkViewportWScalingNV res;
@@ -614,6 +539,18 @@
 	return res;
 }
 
+inline VkAabbPositionsKHR makeAabbPositionsKHR (float minX, float minY, float minZ, float maxX, float maxY, float maxZ)
+{
+	VkAabbPositionsKHR res;
+	res.minX	= minX;
+	res.minY	= minY;
+	res.minZ	= minZ;
+	res.maxX	= maxX;
+	res.maxY	= maxY;
+	res.maxZ	= maxZ;
+	return res;
+}
+
 inline VkVertexInputBindingDivisorDescriptionEXT makeVertexInputBindingDivisorDescriptionEXT (deUint32 binding, deUint32 divisor)
 {
 	VkVertexInputBindingDivisorDescriptionEXT res;
@@ -637,3 +574,72 @@
 	res.firstTask	= firstTask;
 	return res;
 }
+
+inline VkBindShaderGroupIndirectCommandNV makeBindShaderGroupIndirectCommandNV (deUint32 groupIndex)
+{
+	VkBindShaderGroupIndirectCommandNV res;
+	res.groupIndex	= groupIndex;
+	return res;
+}
+
+inline VkBindIndexBufferIndirectCommandNV makeBindIndexBufferIndirectCommandNV (VkDeviceAddress bufferAddress, deUint32 size, VkIndexType indexType)
+{
+	VkBindIndexBufferIndirectCommandNV res;
+	res.bufferAddress	= bufferAddress;
+	res.size			= size;
+	res.indexType		= indexType;
+	return res;
+}
+
+inline VkBindVertexBufferIndirectCommandNV makeBindVertexBufferIndirectCommandNV (VkDeviceAddress bufferAddress, deUint32 size, deUint32 stride)
+{
+	VkBindVertexBufferIndirectCommandNV res;
+	res.bufferAddress	= bufferAddress;
+	res.size			= size;
+	res.stride			= stride;
+	return res;
+}
+
+inline VkSetStateFlagsIndirectCommandNV makeSetStateFlagsIndirectCommandNV (deUint32 data)
+{
+	VkSetStateFlagsIndirectCommandNV res;
+	res.data	= data;
+	return res;
+}
+
+inline VkIndirectCommandsStreamNV makeIndirectCommandsStreamNV (VkBuffer buffer, VkDeviceSize offset)
+{
+	VkIndirectCommandsStreamNV res;
+	res.buffer	= buffer;
+	res.offset	= offset;
+	return res;
+}
+
+inline VkAccelerationStructureBuildOffsetInfoKHR makeAccelerationStructureBuildOffsetInfoKHR (deUint32 primitiveCount, deUint32 primitiveOffset, deUint32 firstVertex, deUint32 transformOffset)
+{
+	VkAccelerationStructureBuildOffsetInfoKHR res;
+	res.primitiveCount	= primitiveCount;
+	res.primitiveOffset	= primitiveOffset;
+	res.firstVertex		= firstVertex;
+	res.transformOffset	= transformOffset;
+	return res;
+}
+
+inline VkStridedBufferRegionKHR makeStridedBufferRegionKHR (VkBuffer buffer, VkDeviceSize offset, VkDeviceSize stride, VkDeviceSize size)
+{
+	VkStridedBufferRegionKHR res;
+	res.buffer	= buffer;
+	res.offset	= offset;
+	res.stride	= stride;
+	res.size	= size;
+	return res;
+}
+
+inline VkTraceRaysIndirectCommandKHR makeTraceRaysIndirectCommandKHR (deUint32 width, deUint32 height, deUint32 depth)
+{
+	VkTraceRaysIndirectCommandKHR res;
+	res.width	= width;
+	res.height	= height;
+	res.depth	= depth;
+	return res;
+}
diff --git a/external/vulkancts/framework/vulkan/vkVirtualDeviceInterface.inl b/external/vulkancts/framework/vulkan/vkVirtualDeviceInterface.inl
index b570bde..9e705d7 100644
--- a/external/vulkancts/framework/vulkan/vkVirtualDeviceInterface.inl
+++ b/external/vulkancts/framework/vulkan/vkVirtualDeviceInterface.inl
@@ -186,19 +186,12 @@
 virtual void				cmdEndQueryIndexedEXT							(VkCommandBuffer commandBuffer, VkQueryPool queryPool, deUint32 query, deUint32 index) const = 0;
 virtual void				cmdDrawIndirectByteCountEXT						(VkCommandBuffer commandBuffer, deUint32 instanceCount, deUint32 firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, deUint32 counterOffset, deUint32 vertexStride) const = 0;
 virtual uint32_t			getImageViewHandleNVX							(VkDevice device, const VkImageViewHandleInfoNVX* pInfo) const = 0;
+virtual VkResult			getImageViewAddressNVX							(VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties) const = 0;
 virtual void				cmdDrawIndirectCountAMD							(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const = 0;
 virtual void				cmdDrawIndexedIndirectCountAMD					(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, deUint32 maxDrawCount, deUint32 stride) const = 0;
 virtual VkResult			getShaderInfoAMD								(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, deUintptr* pInfoSize, void* pInfo) const = 0;
 virtual void				cmdBeginConditionalRenderingEXT					(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) const = 0;
 virtual void				cmdEndConditionalRenderingEXT					(VkCommandBuffer commandBuffer) const = 0;
-virtual void				cmdProcessCommandsNVX							(VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) const = 0;
-virtual void				cmdReserveSpaceForCommandsNVX					(VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) const = 0;
-virtual VkResult			createIndirectCommandsLayoutNVX					(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) const = 0;
-virtual void				destroyIndirectCommandsLayoutNVX				(VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult			createObjectTableNVX							(VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable) const = 0;
-virtual void				destroyObjectTableNVX							(VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator) const = 0;
-virtual VkResult			registerObjectsNVX								(VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectTableEntryNVX* const* ppObjectTableEntries, const deUint32* pObjectIndices) const = 0;
-virtual VkResult			unregisterObjectsNVX							(VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const deUint32* pObjectIndices) const = 0;
 virtual void				cmdSetViewportWScalingNV						(VkCommandBuffer commandBuffer, deUint32 firstViewport, deUint32 viewportCount, const VkViewportWScalingNV* pViewportWScalings) const = 0;
 virtual VkResult			displayPowerControlEXT							(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo) const = 0;
 virtual VkResult			registerDeviceEventEXT							(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence) const = 0;
@@ -226,16 +219,20 @@
 virtual void				cmdSetViewportShadingRatePaletteNV				(VkCommandBuffer commandBuffer, deUint32 firstViewport, deUint32 viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes) const = 0;
 virtual void				cmdSetCoarseSampleOrderNV						(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, deUint32 customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders) const = 0;
 virtual VkResult			createAccelerationStructureNV					(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure) const = 0;
+virtual void				destroyAccelerationStructureKHR					(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator) const = 0;
 virtual void				destroyAccelerationStructureNV					(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator) const = 0;
 virtual void				getAccelerationStructureMemoryRequirementsNV	(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements) const = 0;
-virtual VkResult			bindAccelerationStructureMemoryNV				(VkDevice device, deUint32 bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos) const = 0;
-virtual void				cmdBuildAccelerationStructureNV					(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset) const = 0;
-virtual void				cmdCopyAccelerationStructureNV					(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeNV mode) const = 0;
+virtual VkResult			bindAccelerationStructureMemoryKHR				(VkDevice device, deUint32 bindInfoCount, const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos) const = 0;
+virtual VkResult			bindAccelerationStructureMemoryNV				(VkDevice device, deUint32 bindInfoCount, const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos) const = 0;
+virtual void				cmdBuildAccelerationStructureNV					(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureKHR dst, VkAccelerationStructureKHR src, VkBuffer scratch, VkDeviceSize scratchOffset) const = 0;
+virtual void				cmdCopyAccelerationStructureNV					(VkCommandBuffer commandBuffer, VkAccelerationStructureKHR dst, VkAccelerationStructureKHR src, VkCopyAccelerationStructureModeKHR mode) const = 0;
 virtual void				cmdTraceRaysNV									(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, deUint32 width, deUint32 height, deUint32 depth) const = 0;
 virtual VkResult			createRayTracingPipelinesNV						(VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const = 0;
+virtual VkResult			getRayTracingShaderGroupHandlesKHR				(VkDevice device, VkPipeline pipeline, deUint32 firstGroup, deUint32 groupCount, deUintptr dataSize, void* pData) const = 0;
 virtual VkResult			getRayTracingShaderGroupHandlesNV				(VkDevice device, VkPipeline pipeline, deUint32 firstGroup, deUint32 groupCount, deUintptr dataSize, void* pData) const = 0;
-virtual VkResult			getAccelerationStructureHandleNV				(VkDevice device, VkAccelerationStructureNV accelerationStructure, deUintptr dataSize, void* pData) const = 0;
-virtual void				cmdWriteAccelerationStructuresPropertiesNV		(VkCommandBuffer commandBuffer, deUint32 accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, deUint32 firstQuery) const = 0;
+virtual VkResult			getAccelerationStructureHandleNV				(VkDevice device, VkAccelerationStructureKHR accelerationStructure, deUintptr dataSize, void* pData) const = 0;
+virtual void				cmdWriteAccelerationStructuresPropertiesKHR		(VkCommandBuffer commandBuffer, deUint32 accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, deUint32 firstQuery) const = 0;
+virtual void				cmdWriteAccelerationStructuresPropertiesNV		(VkCommandBuffer commandBuffer, deUint32 accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, deUint32 firstQuery) const = 0;
 virtual VkResult			compileDeferredNV								(VkDevice device, VkPipeline pipeline, deUint32 shader) const = 0;
 virtual VkResult			getMemoryHostPointerPropertiesEXT				(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) const = 0;
 virtual void				cmdWriteBufferMarkerAMD							(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, deUint32 marker) const = 0;
@@ -258,8 +255,53 @@
 virtual void				setLocalDimmingAMD								(VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable) const = 0;
 virtual VkDeviceAddress		getBufferDeviceAddressEXT						(VkDevice device, const VkBufferDeviceAddressInfo* pInfo) const = 0;
 virtual void				cmdSetLineStippleEXT							(VkCommandBuffer commandBuffer, deUint32 lineStippleFactor, deUint16 lineStipplePattern) const = 0;
+virtual void				cmdSetCullModeEXT								(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode) const = 0;
+virtual void				cmdSetFrontFaceEXT								(VkCommandBuffer commandBuffer, VkFrontFace frontFace) const = 0;
+virtual void				cmdSetPrimitiveTopologyEXT						(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology) const = 0;
+virtual void				cmdSetViewportWithCountEXT						(VkCommandBuffer commandBuffer, deUint32 viewportCount, const VkViewport* pViewports) const = 0;
+virtual void				cmdSetScissorWithCountEXT						(VkCommandBuffer commandBuffer, deUint32 scissorCount, const VkRect2D* pScissors) const = 0;
+virtual void				cmdBindVertexBuffers2EXT						(VkCommandBuffer commandBuffer, deUint32 firstBinding, deUint32 bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides) const = 0;
+virtual void				cmdSetDepthTestEnableEXT						(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable) const = 0;
+virtual void				cmdSetDepthWriteEnableEXT						(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable) const = 0;
+virtual void				cmdSetDepthCompareOpEXT							(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp) const = 0;
+virtual void				cmdSetDepthBoundsTestEnableEXT					(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable) const = 0;
+virtual void				cmdSetStencilTestEnableEXT						(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable) const = 0;
+virtual void				cmdSetStencilOpEXT								(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp) const = 0;
+virtual void				getGeneratedCommandsMemoryRequirementsNV		(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements) const = 0;
+virtual void				cmdPreprocessGeneratedCommandsNV				(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) const = 0;
+virtual void				cmdExecuteGeneratedCommandsNV					(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) const = 0;
+virtual void				cmdBindPipelineShaderGroupNV					(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, deUint32 groupIndex) const = 0;
+virtual VkResult			createIndirectCommandsLayoutNV					(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout) const = 0;
+virtual void				destroyIndirectCommandsLayoutNV					(VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult			createPrivateDataSlotEXT						(VkDevice device, const VkPrivateDataSlotCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlotEXT* pPrivateDataSlot) const = 0;
+virtual void				destroyPrivateDataSlotEXT						(VkDevice device, VkPrivateDataSlotEXT privateDataSlot, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual VkResult			setPrivateDataEXT								(VkDevice device, VkObjectType objectType, deUint64 objectHandle, VkPrivateDataSlotEXT privateDataSlot, deUint64 data) const = 0;
+virtual void				getPrivateDataEXT								(VkDevice device, VkObjectType objectType, deUint64 objectHandle, VkPrivateDataSlotEXT privateDataSlot, deUint64* pData) const = 0;
 virtual VkResult			getAndroidHardwareBufferPropertiesANDROID		(VkDevice device, const struct pt::AndroidHardwareBufferPtr buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties) const = 0;
 virtual VkResult			getMemoryAndroidHardwareBufferANDROID			(VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct pt::AndroidHardwareBufferPtr* pBuffer) const = 0;
+virtual VkResult			createDeferredOperationKHR						(VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation) const = 0;
+virtual void				destroyDeferredOperationKHR						(VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator) const = 0;
+virtual uint32_t			getDeferredOperationMaxConcurrencyKHR			(VkDevice device, VkDeferredOperationKHR operation) const = 0;
+virtual VkResult			getDeferredOperationResultKHR					(VkDevice device, VkDeferredOperationKHR operation) const = 0;
+virtual VkResult			deferredOperationJoinKHR						(VkDevice device, VkDeferredOperationKHR operation) const = 0;
+virtual VkResult			createAccelerationStructureKHR					(VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure) const = 0;
+virtual void				getAccelerationStructureMemoryRequirementsKHR	(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoKHR* pInfo, VkMemoryRequirements2* pMemoryRequirements) const = 0;
+virtual void				cmdBuildAccelerationStructureKHR				(VkCommandBuffer commandBuffer, deUint32 infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildOffsetInfoKHR* const* ppOffsetInfos) const = 0;
+virtual void				cmdBuildAccelerationStructureIndirectKHR		(VkCommandBuffer commandBuffer, const VkAccelerationStructureBuildGeometryInfoKHR* pInfo, VkBuffer indirectBuffer, VkDeviceSize indirectOffset, deUint32 indirectStride) const = 0;
+virtual VkResult			buildAccelerationStructureKHR					(VkDevice device, deUint32 infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildOffsetInfoKHR* const* ppOffsetInfos) const = 0;
+virtual VkResult			copyAccelerationStructureKHR					(VkDevice device, const VkCopyAccelerationStructureInfoKHR* pInfo) const = 0;
+virtual VkResult			copyAccelerationStructureToMemoryKHR			(VkDevice device, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) const = 0;
+virtual VkResult			copyMemoryToAccelerationStructureKHR			(VkDevice device, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) const = 0;
+virtual VkResult			writeAccelerationStructuresPropertiesKHR		(VkDevice device, deUint32 accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, deUintptr dataSize, void* pData, deUintptr stride) const = 0;
+virtual void				cmdCopyAccelerationStructureKHR					(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo) const = 0;
+virtual void				cmdCopyAccelerationStructureToMemoryKHR			(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) const = 0;
+virtual void				cmdCopyMemoryToAccelerationStructureKHR			(VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) const = 0;
+virtual void				cmdTraceRaysKHR									(VkCommandBuffer commandBuffer, const VkStridedBufferRegionKHR* pRaygenShaderBindingTable, const VkStridedBufferRegionKHR* pMissShaderBindingTable, const VkStridedBufferRegionKHR* pHitShaderBindingTable, const VkStridedBufferRegionKHR* pCallableShaderBindingTable, deUint32 width, deUint32 height, deUint32 depth) const = 0;
+virtual VkResult			createRayTracingPipelinesKHR					(VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines) const = 0;
+virtual VkDeviceAddress		getAccelerationStructureDeviceAddressKHR		(VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo) const = 0;
+virtual VkResult			getRayTracingCaptureReplayShaderGroupHandlesKHR	(VkDevice device, VkPipeline pipeline, deUint32 firstGroup, deUint32 groupCount, deUintptr dataSize, void* pData) const = 0;
+virtual void				cmdTraceRaysIndirectKHR							(VkCommandBuffer commandBuffer, const VkStridedBufferRegionKHR* pRaygenShaderBindingTable, const VkStridedBufferRegionKHR* pMissShaderBindingTable, const VkStridedBufferRegionKHR* pHitShaderBindingTable, const VkStridedBufferRegionKHR* pCallableShaderBindingTable, VkBuffer buffer, VkDeviceSize offset) const = 0;
+virtual VkResult			getDeviceAccelerationStructureCompatibilityKHR	(VkDevice device, const VkAccelerationStructureVersionKHR* version) const = 0;
 virtual VkResult			getMemoryWin32HandleKHR							(VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, pt::Win32Handle* pHandle) const = 0;
 virtual VkResult			getMemoryWin32HandlePropertiesKHR				(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, pt::Win32Handle handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) const = 0;
 virtual VkResult			importSemaphoreWin32HandleKHR					(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) const = 0;
diff --git a/external/vulkancts/framework/vulkan/vkVirtualInstanceInterface.inl b/external/vulkancts/framework/vulkan/vkVirtualInstanceInterface.inl
index 34f38ce..c49e42b 100644
--- a/external/vulkancts/framework/vulkan/vkVirtualInstanceInterface.inl
+++ b/external/vulkancts/framework/vulkan/vkVirtualInstanceInterface.inl
@@ -49,7 +49,6 @@
 virtual void		destroyDebugReportCallbackEXT									(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator) const = 0;
 virtual void		debugReportMessageEXT											(VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, deUint64 object, deUintptr location, deInt32 messageCode, const char* pLayerPrefix, const char* pMessage) const = 0;
 virtual VkResult	getPhysicalDeviceExternalImageFormatPropertiesNV				(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) const = 0;
-virtual void		getPhysicalDeviceGeneratedCommandsPropertiesNVX					(VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits) const = 0;
 virtual VkResult	releaseDisplayEXT												(VkPhysicalDevice physicalDevice, VkDisplayKHR display) const = 0;
 virtual VkResult	getPhysicalDeviceSurfaceCapabilities2EXT						(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities) const = 0;
 virtual VkResult	createDebugUtilsMessengerEXT									(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger) const = 0;
diff --git a/external/vulkancts/framework/vulkan/vkVulkan_c.inl b/external/vulkancts/framework/vulkan/vkVulkan_c.inl
index 2374f35..f971b01 100644
--- a/external/vulkancts/framework/vulkan/vkVulkan_c.inl
+++ b/external/vulkancts/framework/vulkan/vkVulkan_c.inl
@@ -7,17 +7,7 @@
 /*
 ** Copyright (c) 2015-2020 The Khronos Group Inc.
 **
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
+** SPDX-License-Identifier: Apache-2.0
 */
 
 /*
@@ -34,24 +24,6 @@
 
 #define VK_VERSION_1_0 1
 
-#define VK_MAKE_VERSION(major, minor, patch) \
-    (((major) << 22) | ((minor) << 12) | (patch))
-
-// DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead.
-//#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0
-
-// Vulkan 1.0 version number
-#define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)// Patch version should always be set to 0
-
-#define VK_VERSION_MAJOR(version) ((deUint32)(version) >> 22)
-#define VK_VERSION_MINOR(version) (((deUint32)(version) >> 12) & 0x3ff)
-#define VK_VERSION_PATCH(version) ((deUint32)(version) & 0xfff)
-// Version of this file
-#define VK_HEADER_VERSION 132
-
-
-#define VK_NULL_HANDLE 0
-
 
 #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
 
@@ -64,10 +36,34 @@
 #endif
 #endif
 
-typedef deUint32 VkFlags;
+#define VK_MAKE_VERSION(major, minor, patch) \
+    ((((deUint32)(major)) << 22) | (((deUint32)(minor)) << 12) | ((deUint32)(patch)))
+
+// DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead.
+//#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0
+
+// Vulkan 1.0 version number
+#define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)// Patch version should always be set to 0
+
+// Version of this file
+#define VK_HEADER_VERSION 146
+
+// Complete version of this file
+#define VK_HEADER_VERSION_COMPLETE VK_MAKE_VERSION(1, 2, VK_HEADER_VERSION)
+
+#define VK_VERSION_MAJOR(version) ((deUint32)(version) >> 22)
+#define VK_VERSION_MINOR(version) (((deUint32)(version) >> 12) & 0x3ff)
+#define VK_VERSION_PATCH(version) ((deUint32)(version) & 0xfff)
+
+#define VK_NULL_HANDLE 0
+
 typedef deUint32 VkBool32;
+typedef deUint64 VkDeviceAddress;
 typedef deUint64 VkDeviceSize;
+typedef deUint32 VkFlags;
 typedef deUint32 VkSampleMask;
+VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
+VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
 VK_DEFINE_HANDLE(VkInstance)
 VK_DEFINE_HANDLE(VkPhysicalDevice)
 VK_DEFINE_HANDLE(VkDevice)
@@ -76,8 +72,6 @@
 VK_DEFINE_HANDLE(VkCommandBuffer)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
-VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
-VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
@@ -85,38 +79,30 @@
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
-VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
+VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
-VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
+VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
-#define VK_LOD_CLAMP_NONE                 1000.0f
-#define VK_REMAINING_MIP_LEVELS           (~0U)
-#define VK_REMAINING_ARRAY_LAYERS         (~0U)
-#define VK_WHOLE_SIZE                     (~0ULL)
 #define VK_ATTACHMENT_UNUSED              (~0U)
-#define VK_TRUE                           1
 #define VK_FALSE                          0
+#define VK_LOD_CLAMP_NONE                 1000.0f
 #define VK_QUEUE_FAMILY_IGNORED           (~0U)
+#define VK_REMAINING_ARRAY_LAYERS         (~0U)
+#define VK_REMAINING_MIP_LEVELS           (~0U)
 #define VK_SUBPASS_EXTERNAL               (~0U)
-#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE  256
-#define VK_UUID_SIZE                      16
+#define VK_TRUE                           1
+#define VK_WHOLE_SIZE                     (~0ULL)
 #define VK_MAX_MEMORY_TYPES               32
 #define VK_MAX_MEMORY_HEAPS               16
+#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE  256
+#define VK_UUID_SIZE                      16
 #define VK_MAX_EXTENSION_NAME_SIZE        256
 #define VK_MAX_DESCRIPTION_SIZE           256
 
-typedef enum VkPipelineCacheHeaderVersion {
-    VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
-    VK_PIPELINE_CACHE_HEADER_VERSION_BEGIN_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE,
-    VK_PIPELINE_CACHE_HEADER_VERSION_END_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE,
-    VK_PIPELINE_CACHE_HEADER_VERSION_RANGE_SIZE = (VK_PIPELINE_CACHE_HEADER_VERSION_ONE - VK_PIPELINE_CACHE_HEADER_VERSION_ONE + 1),
-    VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
-} VkPipelineCacheHeaderVersion;
-
 typedef enum VkResult {
     VK_SUCCESS = 0,
     VK_NOT_READY = 1,
@@ -148,17 +134,21 @@
     VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
     VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
     VK_ERROR_INVALID_SHADER_NV = -1000012000,
+    VK_ERROR_INCOMPATIBLE_VERSION_KHR = -1000150000,
     VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000,
     VK_ERROR_NOT_PERMITTED_EXT = -1000174001,
     VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000,
+    VK_THREAD_IDLE_KHR = 1000268000,
+    VK_THREAD_DONE_KHR = 1000268001,
+    VK_OPERATION_DEFERRED_KHR = 1000268002,
+    VK_OPERATION_NOT_DEFERRED_KHR = 1000268003,
+    VK_PIPELINE_COMPILE_REQUIRED_EXT = 1000297000,
     VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY,
     VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE,
     VK_ERROR_FRAGMENTATION_EXT = VK_ERROR_FRAGMENTATION,
     VK_ERROR_INVALID_DEVICE_ADDRESS_EXT = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
     VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
-    VK_RESULT_BEGIN_RANGE = VK_ERROR_UNKNOWN,
-    VK_RESULT_END_RANGE = VK_INCOMPLETE,
-    VK_RESULT_RANGE_SIZE = (VK_INCOMPLETE - VK_ERROR_UNKNOWN + 1),
+    VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED_EXT,
     VK_RESULT_MAX_ENUM = 0x7FFFFFFF
 } VkResult;
 
@@ -355,6 +345,7 @@
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001,
     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002,
     VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000,
+    VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001,
     VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
     VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
@@ -387,12 +378,6 @@
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
     VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
     VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
-    VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
-    VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
-    VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002,
-    VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003,
-    VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004,
-    VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005,
     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
     VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
@@ -456,6 +441,26 @@
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
     VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
+    VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR = 1000165006,
+    VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = 1000165007,
+    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = 1000150000,
+    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_GEOMETRY_TYPE_INFO_KHR = 1000150001,
+    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = 1000150002,
+    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = 1000150003,
+    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = 1000150004,
+    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = 1000150005,
+    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR = 1000150006,
+    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_KHR = 1000150008,
+    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_KHR = 1000150009,
+    VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR = 1000150010,
+    VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = 1000150011,
+    VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = 1000150012,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_FEATURES_KHR = 1000150013,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_KHR = 1000150014,
+    VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR = 1000150015,
+    VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR = 1000150016,
+    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR = 1000150017,
+    VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = 1000150018,
     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001,
@@ -476,8 +481,6 @@
     VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003,
     VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004,
     VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005,
-    VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006,
-    VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007,
     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009,
     VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011,
@@ -510,7 +513,7 @@
     VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
     VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000,
-    VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = 1000210000,
+    VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = 1000210000,
     VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001,
     VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002,
     VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003,
@@ -554,6 +557,8 @@
     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = 1000259001,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = 1000259002,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = 1000265000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = 1000267000,
+    VK_STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR = 1000268000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000,
     VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001,
     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002,
@@ -561,8 +566,33 @@
     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004,
     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = 1000276000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000,
+    VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001,
+    VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002,
+    VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = 1000277003,
+    VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = 1000277004,
+    VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = 1000277005,
+    VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = 1000277006,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = 1000281001,
+    VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000,
+    VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = 1000286000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = 1000286001,
+    VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = 1000287000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002,
+    VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = 1000295000,
+    VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = 1000295001,
+    VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = 1000295002,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = 1000297000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000,
+    VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001,
+    VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
     VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
@@ -621,8 +651,8 @@
     VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
     VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
-    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,
-    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
@@ -646,6 +676,8 @@
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
+    VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR,
+    VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
@@ -661,6 +693,7 @@
     VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
     VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
     VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
+    VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
@@ -676,29 +709,110 @@
     VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
-    VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
-    VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
-    VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
     VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkStructureType;
 
+typedef enum VkImageLayout {
+    VK_IMAGE_LAYOUT_UNDEFINED = 0,
+    VK_IMAGE_LAYOUT_GENERAL = 1,
+    VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
+    VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
+    VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
+    VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
+    VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
+    VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
+    VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
+    VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
+    VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
+    VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000,
+    VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001,
+    VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002,
+    VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003,
+    VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
+    VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
+    VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003,
+    VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000,
+    VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
+    VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
+    VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
+    VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
+    VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
+    VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
+    VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
+} VkImageLayout;
+
+typedef enum VkObjectType {
+    VK_OBJECT_TYPE_UNKNOWN = 0,
+    VK_OBJECT_TYPE_INSTANCE = 1,
+    VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
+    VK_OBJECT_TYPE_DEVICE = 3,
+    VK_OBJECT_TYPE_QUEUE = 4,
+    VK_OBJECT_TYPE_SEMAPHORE = 5,
+    VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
+    VK_OBJECT_TYPE_FENCE = 7,
+    VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
+    VK_OBJECT_TYPE_BUFFER = 9,
+    VK_OBJECT_TYPE_IMAGE = 10,
+    VK_OBJECT_TYPE_EVENT = 11,
+    VK_OBJECT_TYPE_QUERY_POOL = 12,
+    VK_OBJECT_TYPE_BUFFER_VIEW = 13,
+    VK_OBJECT_TYPE_IMAGE_VIEW = 14,
+    VK_OBJECT_TYPE_SHADER_MODULE = 15,
+    VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
+    VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
+    VK_OBJECT_TYPE_RENDER_PASS = 18,
+    VK_OBJECT_TYPE_PIPELINE = 19,
+    VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
+    VK_OBJECT_TYPE_SAMPLER = 21,
+    VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
+    VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
+    VK_OBJECT_TYPE_FRAMEBUFFER = 24,
+    VK_OBJECT_TYPE_COMMAND_POOL = 25,
+    VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
+    VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
+    VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
+    VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
+    VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
+    VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
+    VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
+    VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
+    VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = 1000165000,
+    VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
+    VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000,
+    VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000,
+    VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000,
+    VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = 1000295000,
+    VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
+    VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
+    VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR,
+    VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
+} VkObjectType;
+
+typedef enum VkVendorId {
+    VK_VENDOR_ID_VIV = 0x10001,
+    VK_VENDOR_ID_VSI = 0x10002,
+    VK_VENDOR_ID_KAZAN = 0x10003,
+    VK_VENDOR_ID_CODEPLAY = 0x10004,
+    VK_VENDOR_ID_MESA = 0x10005,
+    VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
+} VkVendorId;
+
+typedef enum VkPipelineCacheHeaderVersion {
+    VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
+    VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
+} VkPipelineCacheHeaderVersion;
+
 typedef enum VkSystemAllocationScope {
     VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
     VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
     VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
     VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
     VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
-    VK_SYSTEM_ALLOCATION_SCOPE_BEGIN_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
-    VK_SYSTEM_ALLOCATION_SCOPE_END_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE,
-    VK_SYSTEM_ALLOCATION_SCOPE_RANGE_SIZE = (VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE - VK_SYSTEM_ALLOCATION_SCOPE_COMMAND + 1),
     VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
 } VkSystemAllocationScope;
 
 typedef enum VkInternalAllocationType {
     VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
-    VK_INTERNAL_ALLOCATION_TYPE_BEGIN_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
-    VK_INTERNAL_ALLOCATION_TYPE_END_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
-    VK_INTERNAL_ALLOCATION_TYPE_RANGE_SIZE = (VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE - VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE + 1),
     VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkInternalAllocationType;
 
@@ -978,41 +1092,29 @@
     VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
     VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
     VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
-    VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED,
-    VK_FORMAT_END_RANGE = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
-    VK_FORMAT_RANGE_SIZE = (VK_FORMAT_ASTC_12x12_SRGB_BLOCK - VK_FORMAT_UNDEFINED + 1),
     VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
 } VkFormat;
 
-typedef enum VkImageType {
-    VK_IMAGE_TYPE_1D = 0,
-    VK_IMAGE_TYPE_2D = 1,
-    VK_IMAGE_TYPE_3D = 2,
-    VK_IMAGE_TYPE_BEGIN_RANGE = VK_IMAGE_TYPE_1D,
-    VK_IMAGE_TYPE_END_RANGE = VK_IMAGE_TYPE_3D,
-    VK_IMAGE_TYPE_RANGE_SIZE = (VK_IMAGE_TYPE_3D - VK_IMAGE_TYPE_1D + 1),
-    VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
-} VkImageType;
-
 typedef enum VkImageTiling {
     VK_IMAGE_TILING_OPTIMAL = 0,
     VK_IMAGE_TILING_LINEAR = 1,
     VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,
-    VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_OPTIMAL,
-    VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_LINEAR,
-    VK_IMAGE_TILING_RANGE_SIZE = (VK_IMAGE_TILING_LINEAR - VK_IMAGE_TILING_OPTIMAL + 1),
     VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
 } VkImageTiling;
 
+typedef enum VkImageType {
+    VK_IMAGE_TYPE_1D = 0,
+    VK_IMAGE_TYPE_2D = 1,
+    VK_IMAGE_TYPE_3D = 2,
+    VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
+} VkImageType;
+
 typedef enum VkPhysicalDeviceType {
     VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
     VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
     VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
     VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
     VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
-    VK_PHYSICAL_DEVICE_TYPE_BEGIN_RANGE = VK_PHYSICAL_DEVICE_TYPE_OTHER,
-    VK_PHYSICAL_DEVICE_TYPE_END_RANGE = VK_PHYSICAL_DEVICE_TYPE_CPU,
-    VK_PHYSICAL_DEVICE_TYPE_RANGE_SIZE = (VK_PHYSICAL_DEVICE_TYPE_CPU - VK_PHYSICAL_DEVICE_TYPE_OTHER + 1),
     VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkPhysicalDeviceType;
 
@@ -1022,69 +1124,19 @@
     VK_QUERY_TYPE_TIMESTAMP = 2,
     VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
     VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000,
-    VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000,
+    VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000165000,
+    VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150000,
     VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000,
-    VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION,
-    VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP,
-    VK_QUERY_TYPE_RANGE_SIZE = (VK_QUERY_TYPE_TIMESTAMP - VK_QUERY_TYPE_OCCLUSION + 1),
+    VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR,
     VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkQueryType;
 
 typedef enum VkSharingMode {
     VK_SHARING_MODE_EXCLUSIVE = 0,
     VK_SHARING_MODE_CONCURRENT = 1,
-    VK_SHARING_MODE_BEGIN_RANGE = VK_SHARING_MODE_EXCLUSIVE,
-    VK_SHARING_MODE_END_RANGE = VK_SHARING_MODE_CONCURRENT,
-    VK_SHARING_MODE_RANGE_SIZE = (VK_SHARING_MODE_CONCURRENT - VK_SHARING_MODE_EXCLUSIVE + 1),
     VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
 } VkSharingMode;
 
-typedef enum VkImageLayout {
-    VK_IMAGE_LAYOUT_UNDEFINED = 0,
-    VK_IMAGE_LAYOUT_GENERAL = 1,
-    VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
-    VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
-    VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
-    VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
-    VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
-    VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
-    VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
-    VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
-    VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
-    VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000,
-    VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001,
-    VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002,
-    VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003,
-    VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
-    VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
-    VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003,
-    VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000,
-    VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
-    VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
-    VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
-    VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
-    VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
-    VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
-    VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED,
-    VK_IMAGE_LAYOUT_END_RANGE = VK_IMAGE_LAYOUT_PREINITIALIZED,
-    VK_IMAGE_LAYOUT_RANGE_SIZE = (VK_IMAGE_LAYOUT_PREINITIALIZED - VK_IMAGE_LAYOUT_UNDEFINED + 1),
-    VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
-} VkImageLayout;
-
-typedef enum VkImageViewType {
-    VK_IMAGE_VIEW_TYPE_1D = 0,
-    VK_IMAGE_VIEW_TYPE_2D = 1,
-    VK_IMAGE_VIEW_TYPE_3D = 2,
-    VK_IMAGE_VIEW_TYPE_CUBE = 3,
-    VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
-    VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
-    VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
-    VK_IMAGE_VIEW_TYPE_BEGIN_RANGE = VK_IMAGE_VIEW_TYPE_1D,
-    VK_IMAGE_VIEW_TYPE_END_RANGE = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY,
-    VK_IMAGE_VIEW_TYPE_RANGE_SIZE = (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY - VK_IMAGE_VIEW_TYPE_1D + 1),
-    VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
-} VkImageViewType;
-
 typedef enum VkComponentSwizzle {
     VK_COMPONENT_SWIZZLE_IDENTITY = 0,
     VK_COMPONENT_SWIZZLE_ZERO = 1,
@@ -1093,111 +1145,19 @@
     VK_COMPONENT_SWIZZLE_G = 4,
     VK_COMPONENT_SWIZZLE_B = 5,
     VK_COMPONENT_SWIZZLE_A = 6,
-    VK_COMPONENT_SWIZZLE_BEGIN_RANGE = VK_COMPONENT_SWIZZLE_IDENTITY,
-    VK_COMPONENT_SWIZZLE_END_RANGE = VK_COMPONENT_SWIZZLE_A,
-    VK_COMPONENT_SWIZZLE_RANGE_SIZE = (VK_COMPONENT_SWIZZLE_A - VK_COMPONENT_SWIZZLE_IDENTITY + 1),
     VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
 } VkComponentSwizzle;
 
-typedef enum VkVertexInputRate {
-    VK_VERTEX_INPUT_RATE_VERTEX = 0,
-    VK_VERTEX_INPUT_RATE_INSTANCE = 1,
-    VK_VERTEX_INPUT_RATE_BEGIN_RANGE = VK_VERTEX_INPUT_RATE_VERTEX,
-    VK_VERTEX_INPUT_RATE_END_RANGE = VK_VERTEX_INPUT_RATE_INSTANCE,
-    VK_VERTEX_INPUT_RATE_RANGE_SIZE = (VK_VERTEX_INPUT_RATE_INSTANCE - VK_VERTEX_INPUT_RATE_VERTEX + 1),
-    VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
-} VkVertexInputRate;
-
-typedef enum VkPrimitiveTopology {
-    VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
-    VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
-    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
-    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
-    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
-    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
-    VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
-    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
-    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
-    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
-    VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
-    VK_PRIMITIVE_TOPOLOGY_BEGIN_RANGE = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
-    VK_PRIMITIVE_TOPOLOGY_END_RANGE = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,
-    VK_PRIMITIVE_TOPOLOGY_RANGE_SIZE = (VK_PRIMITIVE_TOPOLOGY_PATCH_LIST - VK_PRIMITIVE_TOPOLOGY_POINT_LIST + 1),
-    VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
-} VkPrimitiveTopology;
-
-typedef enum VkPolygonMode {
-    VK_POLYGON_MODE_FILL = 0,
-    VK_POLYGON_MODE_LINE = 1,
-    VK_POLYGON_MODE_POINT = 2,
-    VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
-    VK_POLYGON_MODE_BEGIN_RANGE = VK_POLYGON_MODE_FILL,
-    VK_POLYGON_MODE_END_RANGE = VK_POLYGON_MODE_POINT,
-    VK_POLYGON_MODE_RANGE_SIZE = (VK_POLYGON_MODE_POINT - VK_POLYGON_MODE_FILL + 1),
-    VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
-} VkPolygonMode;
-
-typedef enum VkFrontFace {
-    VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
-    VK_FRONT_FACE_CLOCKWISE = 1,
-    VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_COUNTER_CLOCKWISE,
-    VK_FRONT_FACE_END_RANGE = VK_FRONT_FACE_CLOCKWISE,
-    VK_FRONT_FACE_RANGE_SIZE = (VK_FRONT_FACE_CLOCKWISE - VK_FRONT_FACE_COUNTER_CLOCKWISE + 1),
-    VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
-} VkFrontFace;
-
-typedef enum VkCompareOp {
-    VK_COMPARE_OP_NEVER = 0,
-    VK_COMPARE_OP_LESS = 1,
-    VK_COMPARE_OP_EQUAL = 2,
-    VK_COMPARE_OP_LESS_OR_EQUAL = 3,
-    VK_COMPARE_OP_GREATER = 4,
-    VK_COMPARE_OP_NOT_EQUAL = 5,
-    VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
-    VK_COMPARE_OP_ALWAYS = 7,
-    VK_COMPARE_OP_BEGIN_RANGE = VK_COMPARE_OP_NEVER,
-    VK_COMPARE_OP_END_RANGE = VK_COMPARE_OP_ALWAYS,
-    VK_COMPARE_OP_RANGE_SIZE = (VK_COMPARE_OP_ALWAYS - VK_COMPARE_OP_NEVER + 1),
-    VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
-} VkCompareOp;
-
-typedef enum VkStencilOp {
-    VK_STENCIL_OP_KEEP = 0,
-    VK_STENCIL_OP_ZERO = 1,
-    VK_STENCIL_OP_REPLACE = 2,
-    VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
-    VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
-    VK_STENCIL_OP_INVERT = 5,
-    VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
-    VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
-    VK_STENCIL_OP_BEGIN_RANGE = VK_STENCIL_OP_KEEP,
-    VK_STENCIL_OP_END_RANGE = VK_STENCIL_OP_DECREMENT_AND_WRAP,
-    VK_STENCIL_OP_RANGE_SIZE = (VK_STENCIL_OP_DECREMENT_AND_WRAP - VK_STENCIL_OP_KEEP + 1),
-    VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
-} VkStencilOp;
-
-typedef enum VkLogicOp {
-    VK_LOGIC_OP_CLEAR = 0,
-    VK_LOGIC_OP_AND = 1,
-    VK_LOGIC_OP_AND_REVERSE = 2,
-    VK_LOGIC_OP_COPY = 3,
-    VK_LOGIC_OP_AND_INVERTED = 4,
-    VK_LOGIC_OP_NO_OP = 5,
-    VK_LOGIC_OP_XOR = 6,
-    VK_LOGIC_OP_OR = 7,
-    VK_LOGIC_OP_NOR = 8,
-    VK_LOGIC_OP_EQUIVALENT = 9,
-    VK_LOGIC_OP_INVERT = 10,
-    VK_LOGIC_OP_OR_REVERSE = 11,
-    VK_LOGIC_OP_COPY_INVERTED = 12,
-    VK_LOGIC_OP_OR_INVERTED = 13,
-    VK_LOGIC_OP_NAND = 14,
-    VK_LOGIC_OP_SET = 15,
-    VK_LOGIC_OP_BEGIN_RANGE = VK_LOGIC_OP_CLEAR,
-    VK_LOGIC_OP_END_RANGE = VK_LOGIC_OP_SET,
-    VK_LOGIC_OP_RANGE_SIZE = (VK_LOGIC_OP_SET - VK_LOGIC_OP_CLEAR + 1),
-    VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
-} VkLogicOp;
+typedef enum VkImageViewType {
+    VK_IMAGE_VIEW_TYPE_1D = 0,
+    VK_IMAGE_VIEW_TYPE_2D = 1,
+    VK_IMAGE_VIEW_TYPE_3D = 2,
+    VK_IMAGE_VIEW_TYPE_CUBE = 3,
+    VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
+    VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
+    VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
+    VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
+} VkImageViewType;
 
 typedef enum VkBlendFactor {
     VK_BLEND_FACTOR_ZERO = 0,
@@ -1219,9 +1179,6 @@
     VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
     VK_BLEND_FACTOR_SRC1_ALPHA = 17,
     VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
-    VK_BLEND_FACTOR_BEGIN_RANGE = VK_BLEND_FACTOR_ZERO,
-    VK_BLEND_FACTOR_END_RANGE = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA,
-    VK_BLEND_FACTOR_RANGE_SIZE = (VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - VK_BLEND_FACTOR_ZERO + 1),
     VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
 } VkBlendFactor;
 
@@ -1277,12 +1234,21 @@
     VK_BLEND_OP_RED_EXT = 1000148043,
     VK_BLEND_OP_GREEN_EXT = 1000148044,
     VK_BLEND_OP_BLUE_EXT = 1000148045,
-    VK_BLEND_OP_BEGIN_RANGE = VK_BLEND_OP_ADD,
-    VK_BLEND_OP_END_RANGE = VK_BLEND_OP_MAX,
-    VK_BLEND_OP_RANGE_SIZE = (VK_BLEND_OP_MAX - VK_BLEND_OP_ADD + 1),
     VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
 } VkBlendOp;
 
+typedef enum VkCompareOp {
+    VK_COMPARE_OP_NEVER = 0,
+    VK_COMPARE_OP_LESS = 1,
+    VK_COMPARE_OP_EQUAL = 2,
+    VK_COMPARE_OP_LESS_OR_EQUAL = 3,
+    VK_COMPARE_OP_GREATER = 4,
+    VK_COMPARE_OP_NOT_EQUAL = 5,
+    VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
+    VK_COMPARE_OP_ALWAYS = 7,
+    VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
+} VkCompareOp;
+
 typedef enum VkDynamicState {
     VK_DYNAMIC_STATE_VIEWPORT = 0,
     VK_DYNAMIC_STATE_SCISSOR = 1,
@@ -1300,44 +1266,87 @@
     VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
     VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
     VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = 1000259000,
-    VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT,
-    VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
-    VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1),
+    VK_DYNAMIC_STATE_CULL_MODE_EXT = 1000267000,
+    VK_DYNAMIC_STATE_FRONT_FACE_EXT = 1000267001,
+    VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = 1000267002,
+    VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = 1000267003,
+    VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = 1000267004,
+    VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = 1000267005,
+    VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = 1000267006,
+    VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = 1000267007,
+    VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = 1000267008,
+    VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = 1000267009,
+    VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = 1000267010,
+    VK_DYNAMIC_STATE_STENCIL_OP_EXT = 1000267011,
     VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
 } VkDynamicState;
 
-typedef enum VkFilter {
-    VK_FILTER_NEAREST = 0,
-    VK_FILTER_LINEAR = 1,
-    VK_FILTER_CUBIC_IMG = 1000015000,
-    VK_FILTER_CUBIC_EXT = VK_FILTER_CUBIC_IMG,
-    VK_FILTER_BEGIN_RANGE = VK_FILTER_NEAREST,
-    VK_FILTER_END_RANGE = VK_FILTER_LINEAR,
-    VK_FILTER_RANGE_SIZE = (VK_FILTER_LINEAR - VK_FILTER_NEAREST + 1),
-    VK_FILTER_MAX_ENUM = 0x7FFFFFFF
-} VkFilter;
+typedef enum VkFrontFace {
+    VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
+    VK_FRONT_FACE_CLOCKWISE = 1,
+    VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
+} VkFrontFace;
 
-typedef enum VkSamplerMipmapMode {
-    VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
-    VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
-    VK_SAMPLER_MIPMAP_MODE_BEGIN_RANGE = VK_SAMPLER_MIPMAP_MODE_NEAREST,
-    VK_SAMPLER_MIPMAP_MODE_END_RANGE = VK_SAMPLER_MIPMAP_MODE_LINEAR,
-    VK_SAMPLER_MIPMAP_MODE_RANGE_SIZE = (VK_SAMPLER_MIPMAP_MODE_LINEAR - VK_SAMPLER_MIPMAP_MODE_NEAREST + 1),
-    VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
-} VkSamplerMipmapMode;
+typedef enum VkVertexInputRate {
+    VK_VERTEX_INPUT_RATE_VERTEX = 0,
+    VK_VERTEX_INPUT_RATE_INSTANCE = 1,
+    VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
+} VkVertexInputRate;
 
-typedef enum VkSamplerAddressMode {
-    VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
-    VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
-    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
-    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
-    VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
-    VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
-    VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT,
-    VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,
-    VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1),
-    VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
-} VkSamplerAddressMode;
+typedef enum VkPrimitiveTopology {
+    VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
+    VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
+    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
+    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
+    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
+    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
+    VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
+    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
+    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
+    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
+    VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
+    VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
+} VkPrimitiveTopology;
+
+typedef enum VkPolygonMode {
+    VK_POLYGON_MODE_FILL = 0,
+    VK_POLYGON_MODE_LINE = 1,
+    VK_POLYGON_MODE_POINT = 2,
+    VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
+    VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
+} VkPolygonMode;
+
+typedef enum VkStencilOp {
+    VK_STENCIL_OP_KEEP = 0,
+    VK_STENCIL_OP_ZERO = 1,
+    VK_STENCIL_OP_REPLACE = 2,
+    VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
+    VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
+    VK_STENCIL_OP_INVERT = 5,
+    VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
+    VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
+    VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
+} VkStencilOp;
+
+typedef enum VkLogicOp {
+    VK_LOGIC_OP_CLEAR = 0,
+    VK_LOGIC_OP_AND = 1,
+    VK_LOGIC_OP_AND_REVERSE = 2,
+    VK_LOGIC_OP_COPY = 3,
+    VK_LOGIC_OP_AND_INVERTED = 4,
+    VK_LOGIC_OP_NO_OP = 5,
+    VK_LOGIC_OP_XOR = 6,
+    VK_LOGIC_OP_OR = 7,
+    VK_LOGIC_OP_NOR = 8,
+    VK_LOGIC_OP_EQUIVALENT = 9,
+    VK_LOGIC_OP_INVERT = 10,
+    VK_LOGIC_OP_OR_REVERSE = 11,
+    VK_LOGIC_OP_COPY_INVERTED = 12,
+    VK_LOGIC_OP_OR_INVERTED = 13,
+    VK_LOGIC_OP_NAND = 14,
+    VK_LOGIC_OP_SET = 15,
+    VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
+} VkLogicOp;
 
 typedef enum VkBorderColor {
     VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
@@ -1346,12 +1355,35 @@
     VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
     VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
     VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
-    VK_BORDER_COLOR_BEGIN_RANGE = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
-    VK_BORDER_COLOR_END_RANGE = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
-    VK_BORDER_COLOR_RANGE_SIZE = (VK_BORDER_COLOR_INT_OPAQUE_WHITE - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK + 1),
+    VK_BORDER_COLOR_FLOAT_CUSTOM_EXT = 1000287003,
+    VK_BORDER_COLOR_INT_CUSTOM_EXT = 1000287004,
     VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
 } VkBorderColor;
 
+typedef enum VkFilter {
+    VK_FILTER_NEAREST = 0,
+    VK_FILTER_LINEAR = 1,
+    VK_FILTER_CUBIC_IMG = 1000015000,
+    VK_FILTER_CUBIC_EXT = VK_FILTER_CUBIC_IMG,
+    VK_FILTER_MAX_ENUM = 0x7FFFFFFF
+} VkFilter;
+
+typedef enum VkSamplerAddressMode {
+    VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
+    VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
+    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
+    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
+    VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
+    VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
+    VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
+} VkSamplerAddressMode;
+
+typedef enum VkSamplerMipmapMode {
+    VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
+    VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
+    VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
+} VkSamplerMipmapMode;
+
 typedef enum VkDescriptorType {
     VK_DESCRIPTOR_TYPE_SAMPLER = 0,
     VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
@@ -1365,10 +1397,8 @@
     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
     VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
     VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000,
-    VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
-    VK_DESCRIPTOR_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER,
-    VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
-    VK_DESCRIPTOR_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - VK_DESCRIPTOR_TYPE_SAMPLER + 1),
+    VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000165000,
+    VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR,
     VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkDescriptorType;
 
@@ -1376,118 +1406,98 @@
     VK_ATTACHMENT_LOAD_OP_LOAD = 0,
     VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
     VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
-    VK_ATTACHMENT_LOAD_OP_BEGIN_RANGE = VK_ATTACHMENT_LOAD_OP_LOAD,
-    VK_ATTACHMENT_LOAD_OP_END_RANGE = VK_ATTACHMENT_LOAD_OP_DONT_CARE,
-    VK_ATTACHMENT_LOAD_OP_RANGE_SIZE = (VK_ATTACHMENT_LOAD_OP_DONT_CARE - VK_ATTACHMENT_LOAD_OP_LOAD + 1),
     VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
 } VkAttachmentLoadOp;
 
 typedef enum VkAttachmentStoreOp {
     VK_ATTACHMENT_STORE_OP_STORE = 0,
     VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
-    VK_ATTACHMENT_STORE_OP_BEGIN_RANGE = VK_ATTACHMENT_STORE_OP_STORE,
-    VK_ATTACHMENT_STORE_OP_END_RANGE = VK_ATTACHMENT_STORE_OP_DONT_CARE,
-    VK_ATTACHMENT_STORE_OP_RANGE_SIZE = (VK_ATTACHMENT_STORE_OP_DONT_CARE - VK_ATTACHMENT_STORE_OP_STORE + 1),
+    VK_ATTACHMENT_STORE_OP_NONE_QCOM = 1000301000,
     VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
 } VkAttachmentStoreOp;
 
 typedef enum VkPipelineBindPoint {
     VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
     VK_PIPELINE_BIND_POINT_COMPUTE = 1,
-    VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = 1000165000,
-    VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS,
-    VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE,
-    VK_PIPELINE_BIND_POINT_RANGE_SIZE = (VK_PIPELINE_BIND_POINT_COMPUTE - VK_PIPELINE_BIND_POINT_GRAPHICS + 1),
+    VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000,
+    VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
     VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
 } VkPipelineBindPoint;
 
 typedef enum VkCommandBufferLevel {
     VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
     VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
-    VK_COMMAND_BUFFER_LEVEL_BEGIN_RANGE = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
-    VK_COMMAND_BUFFER_LEVEL_END_RANGE = VK_COMMAND_BUFFER_LEVEL_SECONDARY,
-    VK_COMMAND_BUFFER_LEVEL_RANGE_SIZE = (VK_COMMAND_BUFFER_LEVEL_SECONDARY - VK_COMMAND_BUFFER_LEVEL_PRIMARY + 1),
     VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
 } VkCommandBufferLevel;
 
 typedef enum VkIndexType {
     VK_INDEX_TYPE_UINT16 = 0,
     VK_INDEX_TYPE_UINT32 = 1,
-    VK_INDEX_TYPE_NONE_NV = 1000165000,
+    VK_INDEX_TYPE_NONE_KHR = 1000165000,
     VK_INDEX_TYPE_UINT8_EXT = 1000265000,
-    VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16,
-    VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32,
-    VK_INDEX_TYPE_RANGE_SIZE = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1),
+    VK_INDEX_TYPE_NONE_NV = VK_INDEX_TYPE_NONE_KHR,
     VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkIndexType;
 
 typedef enum VkSubpassContents {
     VK_SUBPASS_CONTENTS_INLINE = 0,
     VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
-    VK_SUBPASS_CONTENTS_BEGIN_RANGE = VK_SUBPASS_CONTENTS_INLINE,
-    VK_SUBPASS_CONTENTS_END_RANGE = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS,
-    VK_SUBPASS_CONTENTS_RANGE_SIZE = (VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - VK_SUBPASS_CONTENTS_INLINE + 1),
     VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
 } VkSubpassContents;
 
-typedef enum VkObjectType {
-    VK_OBJECT_TYPE_UNKNOWN = 0,
-    VK_OBJECT_TYPE_INSTANCE = 1,
-    VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
-    VK_OBJECT_TYPE_DEVICE = 3,
-    VK_OBJECT_TYPE_QUEUE = 4,
-    VK_OBJECT_TYPE_SEMAPHORE = 5,
-    VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
-    VK_OBJECT_TYPE_FENCE = 7,
-    VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
-    VK_OBJECT_TYPE_BUFFER = 9,
-    VK_OBJECT_TYPE_IMAGE = 10,
-    VK_OBJECT_TYPE_EVENT = 11,
-    VK_OBJECT_TYPE_QUERY_POOL = 12,
-    VK_OBJECT_TYPE_BUFFER_VIEW = 13,
-    VK_OBJECT_TYPE_IMAGE_VIEW = 14,
-    VK_OBJECT_TYPE_SHADER_MODULE = 15,
-    VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
-    VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
-    VK_OBJECT_TYPE_RENDER_PASS = 18,
-    VK_OBJECT_TYPE_PIPELINE = 19,
-    VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
-    VK_OBJECT_TYPE_SAMPLER = 21,
-    VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
-    VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
-    VK_OBJECT_TYPE_FRAMEBUFFER = 24,
-    VK_OBJECT_TYPE_COMMAND_POOL = 25,
-    VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
-    VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
-    VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
-    VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
-    VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
-    VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
-    VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
-    VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000,
-    VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001,
-    VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
-    VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
-    VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
-    VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000,
-    VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
-    VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
-    VK_OBJECT_TYPE_BEGIN_RANGE = VK_OBJECT_TYPE_UNKNOWN,
-    VK_OBJECT_TYPE_END_RANGE = VK_OBJECT_TYPE_COMMAND_POOL,
-    VK_OBJECT_TYPE_RANGE_SIZE = (VK_OBJECT_TYPE_COMMAND_POOL - VK_OBJECT_TYPE_UNKNOWN + 1),
-    VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
-} VkObjectType;
+typedef enum VkAccessFlagBits {
+    VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
+    VK_ACCESS_INDEX_READ_BIT = 0x00000002,
+    VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
+    VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
+    VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
+    VK_ACCESS_SHADER_READ_BIT = 0x00000020,
+    VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
+    VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
+    VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
+    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
+    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
+    VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
+    VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
+    VK_ACCESS_HOST_READ_BIT = 0x00002000,
+    VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
+    VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
+    VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
+    VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
+    VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
+    VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
+    VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
+    VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
+    VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000,
+    VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000,
+    VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000,
+    VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000,
+    VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000,
+    VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000,
+    VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
+    VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
+    VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
+} VkAccessFlagBits;
+typedef VkFlags VkAccessFlags;
 
-typedef enum VkVendorId {
-    VK_VENDOR_ID_VIV = 0x10001,
-    VK_VENDOR_ID_VSI = 0x10002,
-    VK_VENDOR_ID_KAZAN = 0x10003,
-    VK_VENDOR_ID_BEGIN_RANGE = VK_VENDOR_ID_VIV,
-    VK_VENDOR_ID_END_RANGE = VK_VENDOR_ID_KAZAN,
-    VK_VENDOR_ID_RANGE_SIZE = (VK_VENDOR_ID_KAZAN - VK_VENDOR_ID_VIV + 1),
-    VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
-} VkVendorId;
-typedef VkFlags VkInstanceCreateFlags;
+typedef enum VkImageAspectFlagBits {
+    VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
+    VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
+    VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
+    VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
+    VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
+    VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
+    VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
+    VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,
+    VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,
+    VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,
+    VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,
+    VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT,
+    VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT,
+    VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT,
+    VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
+} VkImageAspectFlagBits;
+typedef VkFlags VkImageAspectFlags;
 
 typedef enum VkFormatFeatureFlagBits {
     VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
@@ -1514,6 +1524,7 @@
     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000,
     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
+    VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000,
     VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000,
     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
     VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
@@ -1530,21 +1541,6 @@
 } VkFormatFeatureFlagBits;
 typedef VkFlags VkFormatFeatureFlags;
 
-typedef enum VkImageUsageFlagBits {
-    VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
-    VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
-    VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
-    VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
-    VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
-    VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
-    VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
-    VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
-    VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00000100,
-    VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200,
-    VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
-} VkImageUsageFlagBits;
-typedef VkFlags VkImageUsageFlags;
-
 typedef enum VkImageCreateFlagBits {
     VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
     VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
@@ -1583,15 +1579,29 @@
 } VkSampleCountFlagBits;
 typedef VkFlags VkSampleCountFlags;
 
-typedef enum VkQueueFlagBits {
-    VK_QUEUE_GRAPHICS_BIT = 0x00000001,
-    VK_QUEUE_COMPUTE_BIT = 0x00000002,
-    VK_QUEUE_TRANSFER_BIT = 0x00000004,
-    VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
-    VK_QUEUE_PROTECTED_BIT = 0x00000010,
-    VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
-} VkQueueFlagBits;
-typedef VkFlags VkQueueFlags;
+typedef enum VkImageUsageFlagBits {
+    VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
+    VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
+    VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
+    VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
+    VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
+    VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
+    VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
+    VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
+    VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00000100,
+    VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200,
+    VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
+} VkImageUsageFlagBits;
+typedef VkFlags VkImageUsageFlags;
+typedef VkFlags VkInstanceCreateFlags;
+
+typedef enum VkMemoryHeapFlagBits {
+    VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
+    VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
+    VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
+    VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
+} VkMemoryHeapFlagBits;
+typedef VkFlags VkMemoryHeapFlags;
 
 typedef enum VkMemoryPropertyFlagBits {
     VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
@@ -1606,13 +1616,15 @@
 } VkMemoryPropertyFlagBits;
 typedef VkFlags VkMemoryPropertyFlags;
 
-typedef enum VkMemoryHeapFlagBits {
-    VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
-    VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
-    VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
-    VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
-} VkMemoryHeapFlagBits;
-typedef VkFlags VkMemoryHeapFlags;
+typedef enum VkQueueFlagBits {
+    VK_QUEUE_GRAPHICS_BIT = 0x00000001,
+    VK_QUEUE_COMPUTE_BIT = 0x00000002,
+    VK_QUEUE_TRANSFER_BIT = 0x00000004,
+    VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
+    VK_QUEUE_PROTECTED_BIT = 0x00000010,
+    VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
+} VkQueueFlagBits;
+typedef VkFlags VkQueueFlags;
 typedef VkFlags VkDeviceCreateFlags;
 
 typedef enum VkDeviceQueueCreateFlagBits {
@@ -1641,36 +1653,25 @@
     VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
     VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000,
     VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
-    VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
+    VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0x00200000,
+    VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000,
     VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00400000,
-    VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = 0x00200000,
-    VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000,
     VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000,
     VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000,
     VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000,
+    VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 0x00020000,
+    VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
+    VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
     VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkPipelineStageFlagBits;
 typedef VkFlags VkPipelineStageFlags;
 typedef VkFlags VkMemoryMapFlags;
 
-typedef enum VkImageAspectFlagBits {
-    VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
-    VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
-    VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
-    VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
-    VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
-    VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
-    VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
-    VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,
-    VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,
-    VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,
-    VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,
-    VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT,
-    VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT,
-    VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT,
-    VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
-} VkImageAspectFlagBits;
-typedef VkFlags VkImageAspectFlags;
+typedef enum VkSparseMemoryBindFlagBits {
+    VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
+    VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
+} VkSparseMemoryBindFlagBits;
+typedef VkFlags VkSparseMemoryBindFlags;
 
 typedef enum VkSparseImageFormatFlagBits {
     VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
@@ -1680,12 +1681,6 @@
 } VkSparseImageFormatFlagBits;
 typedef VkFlags VkSparseImageFormatFlags;
 
-typedef enum VkSparseMemoryBindFlagBits {
-    VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
-    VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
-} VkSparseMemoryBindFlagBits;
-typedef VkFlags VkSparseMemoryBindFlags;
-
 typedef enum VkFenceCreateFlagBits {
     VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
     VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
@@ -1693,7 +1688,6 @@
 typedef VkFlags VkFenceCreateFlags;
 typedef VkFlags VkSemaphoreCreateFlags;
 typedef VkFlags VkEventCreateFlags;
-typedef VkFlags VkQueryPoolCreateFlags;
 
 typedef enum VkQueryPipelineStatisticFlagBits {
     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
@@ -1710,6 +1704,7 @@
     VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkQueryPipelineStatisticFlagBits;
 typedef VkFlags VkQueryPipelineStatisticFlags;
+typedef VkFlags VkQueryPoolCreateFlags;
 
 typedef enum VkQueryResultFlagBits {
     VK_QUERY_RESULT_64_BIT = 0x00000001,
@@ -1746,7 +1741,8 @@
     VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,
     VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,
     VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
-    VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = 0x00000400,
+    VK_BUFFER_USAGE_RAY_TRACING_BIT_KHR = 0x00000400,
+    VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = VK_BUFFER_USAGE_RAY_TRACING_BIT_KHR,
     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
     VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
@@ -1756,6 +1752,7 @@
 
 typedef enum VkImageViewCreateFlagBits {
     VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001,
+    VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0x00000002,
     VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkImageViewCreateFlagBits;
 typedef VkFlags VkImageViewCreateFlags;
@@ -1764,17 +1761,41 @@
     VK_SHADER_MODULE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkShaderModuleCreateFlagBits;
 typedef VkFlags VkShaderModuleCreateFlags;
+
+typedef enum VkPipelineCacheCreateFlagBits {
+    VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = 0x00000001,
+    VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
+} VkPipelineCacheCreateFlagBits;
 typedef VkFlags VkPipelineCacheCreateFlags;
 
+typedef enum VkColorComponentFlagBits {
+    VK_COLOR_COMPONENT_R_BIT = 0x00000001,
+    VK_COLOR_COMPONENT_G_BIT = 0x00000002,
+    VK_COLOR_COMPONENT_B_BIT = 0x00000004,
+    VK_COLOR_COMPONENT_A_BIT = 0x00000008,
+    VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
+} VkColorComponentFlagBits;
+typedef VkFlags VkColorComponentFlags;
+
 typedef enum VkPipelineCreateFlagBits {
     VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
     VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
     VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
     VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
     VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0x00000010,
+    VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000,
+    VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000,
+    VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000,
+    VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000,
+    VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000,
+    VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000,
     VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020,
     VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040,
     VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080,
+    VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00040000,
+    VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0x00000800,
+    VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = 0x00000100,
+    VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = 0x00000200,
     VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
     VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
     VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE,
@@ -1798,21 +1819,22 @@
     VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
     VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
     VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
-    VK_SHADER_STAGE_RAYGEN_BIT_NV = 0x00000100,
-    VK_SHADER_STAGE_ANY_HIT_BIT_NV = 0x00000200,
-    VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 0x00000400,
-    VK_SHADER_STAGE_MISS_BIT_NV = 0x00000800,
-    VK_SHADER_STAGE_INTERSECTION_BIT_NV = 0x00001000,
-    VK_SHADER_STAGE_CALLABLE_BIT_NV = 0x00002000,
+    VK_SHADER_STAGE_RAYGEN_BIT_KHR = 0x00000100,
+    VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 0x00000200,
+    VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 0x00000400,
+    VK_SHADER_STAGE_MISS_BIT_KHR = 0x00000800,
+    VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0x00001000,
+    VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0x00002000,
     VK_SHADER_STAGE_TASK_BIT_NV = 0x00000040,
     VK_SHADER_STAGE_MESH_BIT_NV = 0x00000080,
+    VK_SHADER_STAGE_RAYGEN_BIT_NV = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
+    VK_SHADER_STAGE_ANY_HIT_BIT_NV = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
+    VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
+    VK_SHADER_STAGE_MISS_BIT_NV = VK_SHADER_STAGE_MISS_BIT_KHR,
+    VK_SHADER_STAGE_INTERSECTION_BIT_NV = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
+    VK_SHADER_STAGE_CALLABLE_BIT_NV = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
     VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkShaderStageFlagBits;
-typedef VkFlags VkPipelineVertexInputStateCreateFlags;
-typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
-typedef VkFlags VkPipelineTessellationStateCreateFlags;
-typedef VkFlags VkPipelineViewportStateCreateFlags;
-typedef VkFlags VkPipelineRasterizationStateCreateFlags;
 
 typedef enum VkCullModeFlagBits {
     VK_CULL_MODE_NONE = 0,
@@ -1822,18 +1844,14 @@
     VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkCullModeFlagBits;
 typedef VkFlags VkCullModeFlags;
+typedef VkFlags VkPipelineVertexInputStateCreateFlags;
+typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
+typedef VkFlags VkPipelineTessellationStateCreateFlags;
+typedef VkFlags VkPipelineViewportStateCreateFlags;
+typedef VkFlags VkPipelineRasterizationStateCreateFlags;
 typedef VkFlags VkPipelineMultisampleStateCreateFlags;
 typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
 typedef VkFlags VkPipelineColorBlendStateCreateFlags;
-
-typedef enum VkColorComponentFlagBits {
-    VK_COLOR_COMPONENT_R_BIT = 0x00000001,
-    VK_COLOR_COMPONENT_G_BIT = 0x00000002,
-    VK_COLOR_COMPONENT_B_BIT = 0x00000004,
-    VK_COLOR_COMPONENT_A_BIT = 0x00000008,
-    VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
-} VkColorComponentFlagBits;
-typedef VkFlags VkColorComponentFlags;
 typedef VkFlags VkPipelineDynamicStateCreateFlags;
 typedef VkFlags VkPipelineLayoutCreateFlags;
 typedef VkFlags VkShaderStageFlags;
@@ -1845,14 +1863,6 @@
 } VkSamplerCreateFlagBits;
 typedef VkFlags VkSamplerCreateFlags;
 
-typedef enum VkDescriptorSetLayoutCreateFlagBits {
-    VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0x00000002,
-    VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
-    VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
-    VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
-} VkDescriptorSetLayoutCreateFlagBits;
-typedef VkFlags VkDescriptorSetLayoutCreateFlags;
-
 typedef enum VkDescriptorPoolCreateFlagBits {
     VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
     VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002,
@@ -1862,17 +1872,13 @@
 typedef VkFlags VkDescriptorPoolCreateFlags;
 typedef VkFlags VkDescriptorPoolResetFlags;
 
-typedef enum VkFramebufferCreateFlagBits {
-    VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001,
-    VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
-    VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
-} VkFramebufferCreateFlagBits;
-typedef VkFlags VkFramebufferCreateFlags;
-
-typedef enum VkRenderPassCreateFlagBits {
-    VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
-} VkRenderPassCreateFlagBits;
-typedef VkFlags VkRenderPassCreateFlags;
+typedef enum VkDescriptorSetLayoutCreateFlagBits {
+    VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0x00000002,
+    VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
+    VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
+    VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
+} VkDescriptorSetLayoutCreateFlagBits;
+typedef VkFlags VkDescriptorSetLayoutCreateFlags;
 
 typedef enum VkAttachmentDescriptionFlagBits {
     VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
@@ -1880,46 +1886,6 @@
 } VkAttachmentDescriptionFlagBits;
 typedef VkFlags VkAttachmentDescriptionFlags;
 
-typedef enum VkSubpassDescriptionFlagBits {
-    VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
-    VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
-    VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
-} VkSubpassDescriptionFlagBits;
-typedef VkFlags VkSubpassDescriptionFlags;
-
-typedef enum VkAccessFlagBits {
-    VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
-    VK_ACCESS_INDEX_READ_BIT = 0x00000002,
-    VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
-    VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
-    VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
-    VK_ACCESS_SHADER_READ_BIT = 0x00000020,
-    VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
-    VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
-    VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
-    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
-    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
-    VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
-    VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
-    VK_ACCESS_HOST_READ_BIT = 0x00002000,
-    VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
-    VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
-    VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
-    VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
-    VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
-    VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
-    VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
-    VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
-    VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
-    VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
-    VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000,
-    VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000,
-    VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000,
-    VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000,
-    VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
-} VkAccessFlagBits;
-typedef VkFlags VkAccessFlags;
-
 typedef enum VkDependencyFlagBits {
     VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
     VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
@@ -1930,6 +1896,28 @@
 } VkDependencyFlagBits;
 typedef VkFlags VkDependencyFlags;
 
+typedef enum VkFramebufferCreateFlagBits {
+    VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001,
+    VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
+    VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
+} VkFramebufferCreateFlagBits;
+typedef VkFlags VkFramebufferCreateFlags;
+
+typedef enum VkRenderPassCreateFlagBits {
+    VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 0x00000002,
+    VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
+} VkRenderPassCreateFlagBits;
+typedef VkFlags VkRenderPassCreateFlags;
+
+typedef enum VkSubpassDescriptionFlagBits {
+    VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
+    VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
+    VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 0x00000004,
+    VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 0x00000008,
+    VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
+} VkSubpassDescriptionFlagBits;
+typedef VkFlags VkSubpassDescriptionFlags;
+
 typedef enum VkCommandPoolCreateFlagBits {
     VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
     VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
@@ -1972,26 +1960,103 @@
     VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkStencilFaceFlagBits;
 typedef VkFlags VkStencilFaceFlags;
-typedef struct VkApplicationInfo {
+typedef struct VkExtent2D {
+    deUint32    width;
+    deUint32    height;
+} VkExtent2D;
+
+typedef struct VkExtent3D {
+    deUint32    width;
+    deUint32    height;
+    deUint32    depth;
+} VkExtent3D;
+
+typedef struct VkOffset2D {
+    deInt32    x;
+    deInt32    y;
+} VkOffset2D;
+
+typedef struct VkOffset3D {
+    deInt32    x;
+    deInt32    y;
+    deInt32    z;
+} VkOffset3D;
+
+typedef struct VkRect2D {
+    VkOffset2D    offset;
+    VkExtent2D    extent;
+} VkRect2D;
+
+typedef struct VkBaseInStructure {
+    VkStructureType                    sType;
+    const struct VkBaseInStructure*    pNext;
+} VkBaseInStructure;
+
+typedef struct VkBaseOutStructure {
+    VkStructureType               sType;
+    struct VkBaseOutStructure*    pNext;
+} VkBaseOutStructure;
+
+typedef struct VkBufferMemoryBarrier {
     VkStructureType    sType;
     const void*        pNext;
-    const char*        pApplicationName;
-    deUint32           applicationVersion;
-    const char*        pEngineName;
-    deUint32           engineVersion;
-    deUint32           apiVersion;
-} VkApplicationInfo;
+    VkAccessFlags      srcAccessMask;
+    VkAccessFlags      dstAccessMask;
+    deUint32           srcQueueFamilyIndex;
+    deUint32           dstQueueFamilyIndex;
+    VkBuffer           buffer;
+    VkDeviceSize       offset;
+    VkDeviceSize       size;
+} VkBufferMemoryBarrier;
 
-typedef struct VkInstanceCreateInfo {
-    VkStructureType             sType;
-    const void*                 pNext;
-    VkInstanceCreateFlags       flags;
-    const VkApplicationInfo*    pApplicationInfo;
-    deUint32                    enabledLayerCount;
-    const char* const*          ppEnabledLayerNames;
-    deUint32                    enabledExtensionCount;
-    const char* const*          ppEnabledExtensionNames;
-} VkInstanceCreateInfo;
+typedef struct VkDispatchIndirectCommand {
+    deUint32    x;
+    deUint32    y;
+    deUint32    z;
+} VkDispatchIndirectCommand;
+
+typedef struct VkDrawIndexedIndirectCommand {
+    deUint32    indexCount;
+    deUint32    instanceCount;
+    deUint32    firstIndex;
+    deInt32     vertexOffset;
+    deUint32    firstInstance;
+} VkDrawIndexedIndirectCommand;
+
+typedef struct VkDrawIndirectCommand {
+    deUint32    vertexCount;
+    deUint32    instanceCount;
+    deUint32    firstVertex;
+    deUint32    firstInstance;
+} VkDrawIndirectCommand;
+
+typedef struct VkImageSubresourceRange {
+    VkImageAspectFlags    aspectMask;
+    deUint32              baseMipLevel;
+    deUint32              levelCount;
+    deUint32              baseArrayLayer;
+    deUint32              layerCount;
+} VkImageSubresourceRange;
+
+typedef struct VkImageMemoryBarrier {
+    VkStructureType            sType;
+    const void*                pNext;
+    VkAccessFlags              srcAccessMask;
+    VkAccessFlags              dstAccessMask;
+    VkImageLayout              oldLayout;
+    VkImageLayout              newLayout;
+    deUint32                   srcQueueFamilyIndex;
+    deUint32                   dstQueueFamilyIndex;
+    VkImage                    image;
+    VkImageSubresourceRange    subresourceRange;
+} VkImageMemoryBarrier;
+
+typedef struct VkMemoryBarrier {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkAccessFlags      srcAccessMask;
+    VkAccessFlags      dstAccessMask;
+} VkMemoryBarrier;
 
 typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
     void*                                       pUserData,
@@ -1999,13 +2064,6 @@
     deUintptr                                      alignment,
     VkSystemAllocationScope                     allocationScope);
 
-typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
-    void*                                       pUserData,
-    void*                                       pOriginal,
-    deUintptr                                      size,
-    deUintptr                                      alignment,
-    VkSystemAllocationScope                     allocationScope);
-
 typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
     void*                                       pUserData,
     void*                                       pMemory);
@@ -2022,6 +2080,14 @@
     VkInternalAllocationType                    allocationType,
     VkSystemAllocationScope                     allocationScope);
 
+typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
+    void*                                       pUserData,
+    void*                                       pOriginal,
+    deUintptr                                      size,
+    deUintptr                                      alignment,
+    VkSystemAllocationScope                     allocationScope);
+
+typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
 typedef struct VkAllocationCallbacks {
     void*                                   pUserData;
     PFN_vkAllocationFunction                pfnAllocation;
@@ -2031,6 +2097,51 @@
     PFN_vkInternalFreeNotification          pfnInternalFree;
 } VkAllocationCallbacks;
 
+typedef struct VkApplicationInfo {
+    VkStructureType    sType;
+    const void*        pNext;
+    const char*        pApplicationName;
+    deUint32           applicationVersion;
+    const char*        pEngineName;
+    deUint32           engineVersion;
+    deUint32           apiVersion;
+} VkApplicationInfo;
+
+typedef struct VkFormatProperties {
+    VkFormatFeatureFlags    linearTilingFeatures;
+    VkFormatFeatureFlags    optimalTilingFeatures;
+    VkFormatFeatureFlags    bufferFeatures;
+} VkFormatProperties;
+
+typedef struct VkImageFormatProperties {
+    VkExtent3D            maxExtent;
+    deUint32              maxMipLevels;
+    deUint32              maxArrayLayers;
+    VkSampleCountFlags    sampleCounts;
+    VkDeviceSize          maxResourceSize;
+} VkImageFormatProperties;
+
+typedef struct VkInstanceCreateInfo {
+    VkStructureType             sType;
+    const void*                 pNext;
+    VkInstanceCreateFlags       flags;
+    const VkApplicationInfo*    pApplicationInfo;
+    deUint32                    enabledLayerCount;
+    const char* const*          ppEnabledLayerNames;
+    deUint32                    enabledExtensionCount;
+    const char* const*          ppEnabledExtensionNames;
+} VkInstanceCreateInfo;
+
+typedef struct VkMemoryHeap {
+    VkDeviceSize         size;
+    VkMemoryHeapFlags    flags;
+} VkMemoryHeap;
+
+typedef struct VkMemoryType {
+    VkMemoryPropertyFlags    propertyFlags;
+    deUint32                 heapIndex;
+} VkMemoryType;
+
 typedef struct VkPhysicalDeviceFeatures {
     VkBool32    robustBufferAccess;
     VkBool32    fullDrawIndexUint32;
@@ -2089,26 +2200,6 @@
     VkBool32    inheritedQueries;
 } VkPhysicalDeviceFeatures;
 
-typedef struct VkFormatProperties {
-    VkFormatFeatureFlags    linearTilingFeatures;
-    VkFormatFeatureFlags    optimalTilingFeatures;
-    VkFormatFeatureFlags    bufferFeatures;
-} VkFormatProperties;
-
-typedef struct VkExtent3D {
-    deUint32    width;
-    deUint32    height;
-    deUint32    depth;
-} VkExtent3D;
-
-typedef struct VkImageFormatProperties {
-    VkExtent3D            maxExtent;
-    deUint32              maxMipLevels;
-    deUint32              maxArrayLayers;
-    VkSampleCountFlags    sampleCounts;
-    VkDeviceSize          maxResourceSize;
-} VkImageFormatProperties;
-
 typedef struct VkPhysicalDeviceLimits {
     deUint32              maxImageDimension1D;
     deUint32              maxImageDimension2D;
@@ -2218,6 +2309,13 @@
     VkDeviceSize          nonCoherentAtomSize;
 } VkPhysicalDeviceLimits;
 
+typedef struct VkPhysicalDeviceMemoryProperties {
+    deUint32        memoryTypeCount;
+    VkMemoryType    memoryTypes[VK_MAX_MEMORY_TYPES];
+    deUint32        memoryHeapCount;
+    VkMemoryHeap    memoryHeaps[VK_MAX_MEMORY_HEAPS];
+} VkPhysicalDeviceMemoryProperties;
+
 typedef struct VkPhysicalDeviceSparseProperties {
     VkBool32    residencyStandard2DBlockShape;
     VkBool32    residencyStandard2DMultisampleBlockShape;
@@ -2245,24 +2343,6 @@
     VkExtent3D      minImageTransferGranularity;
 } VkQueueFamilyProperties;
 
-typedef struct VkMemoryType {
-    VkMemoryPropertyFlags    propertyFlags;
-    deUint32                 heapIndex;
-} VkMemoryType;
-
-typedef struct VkMemoryHeap {
-    VkDeviceSize         size;
-    VkMemoryHeapFlags    flags;
-} VkMemoryHeap;
-
-typedef struct VkPhysicalDeviceMemoryProperties {
-    deUint32        memoryTypeCount;
-    VkMemoryType    memoryTypes[VK_MAX_MEMORY_TYPES];
-    deUint32        memoryHeapCount;
-    VkMemoryHeap    memoryHeaps[VK_MAX_MEMORY_HEAPS];
-} VkPhysicalDeviceMemoryProperties;
-
-typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
 typedef struct VkDeviceQueueCreateInfo {
     VkStructureType             sType;
     const void*                 pNext;
@@ -2309,13 +2389,6 @@
     const VkSemaphore*             pSignalSemaphores;
 } VkSubmitInfo;
 
-typedef struct VkMemoryAllocateInfo {
-    VkStructureType    sType;
-    const void*        pNext;
-    VkDeviceSize       allocationSize;
-    deUint32           memoryTypeIndex;
-} VkMemoryAllocateInfo;
-
 typedef struct VkMappedMemoryRange {
     VkStructureType    sType;
     const void*        pNext;
@@ -2324,26 +2397,19 @@
     VkDeviceSize       size;
 } VkMappedMemoryRange;
 
+typedef struct VkMemoryAllocateInfo {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkDeviceSize       allocationSize;
+    deUint32           memoryTypeIndex;
+} VkMemoryAllocateInfo;
+
 typedef struct VkMemoryRequirements {
     VkDeviceSize    size;
     VkDeviceSize    alignment;
     deUint32        memoryTypeBits;
 } VkMemoryRequirements;
 
-typedef struct VkSparseImageFormatProperties {
-    VkImageAspectFlags          aspectMask;
-    VkExtent3D                  imageGranularity;
-    VkSparseImageFormatFlags    flags;
-} VkSparseImageFormatProperties;
-
-typedef struct VkSparseImageMemoryRequirements {
-    VkSparseImageFormatProperties    formatProperties;
-    deUint32                         imageMipTailFirstLod;
-    VkDeviceSize                     imageMipTailSize;
-    VkDeviceSize                     imageMipTailOffset;
-    VkDeviceSize                     imageMipTailStride;
-} VkSparseImageMemoryRequirements;
-
 typedef struct VkSparseMemoryBind {
     VkDeviceSize               resourceOffset;
     VkDeviceSize               size;
@@ -2370,12 +2436,6 @@
     deUint32              arrayLayer;
 } VkImageSubresource;
 
-typedef struct VkOffset3D {
-    deInt32    x;
-    deInt32    y;
-    deInt32    z;
-} VkOffset3D;
-
 typedef struct VkSparseImageMemoryBind {
     VkImageSubresource         subresource;
     VkOffset3D                 offset;
@@ -2406,6 +2466,20 @@
     const VkSemaphore*                          pSignalSemaphores;
 } VkBindSparseInfo;
 
+typedef struct VkSparseImageFormatProperties {
+    VkImageAspectFlags          aspectMask;
+    VkExtent3D                  imageGranularity;
+    VkSparseImageFormatFlags    flags;
+} VkSparseImageFormatProperties;
+
+typedef struct VkSparseImageMemoryRequirements {
+    VkSparseImageFormatProperties    formatProperties;
+    deUint32                         imageMipTailFirstLod;
+    VkDeviceSize                     imageMipTailSize;
+    VkDeviceSize                     imageMipTailOffset;
+    VkDeviceSize                     imageMipTailStride;
+} VkSparseImageMemoryRequirements;
+
 typedef struct VkFenceCreateInfo {
     VkStructureType       sType;
     const void*           pNext;
@@ -2487,14 +2561,6 @@
     VkComponentSwizzle    a;
 } VkComponentMapping;
 
-typedef struct VkImageSubresourceRange {
-    VkImageAspectFlags    aspectMask;
-    deUint32              baseMipLevel;
-    deUint32              levelCount;
-    deUint32              baseArrayLayer;
-    deUint32              layerCount;
-} VkImageSubresourceRange;
-
 typedef struct VkImageViewCreateInfo {
     VkStructureType            sType;
     const void*                pNext;
@@ -2545,6 +2611,16 @@
     const VkSpecializationInfo*         pSpecializationInfo;
 } VkPipelineShaderStageCreateInfo;
 
+typedef struct VkComputePipelineCreateInfo {
+    VkStructureType                    sType;
+    const void*                        pNext;
+    VkPipelineCreateFlags              flags;
+    VkPipelineShaderStageCreateInfo    stage;
+    VkPipelineLayout                   layout;
+    VkPipeline                         basePipelineHandle;
+    deInt32                            basePipelineIndex;
+} VkComputePipelineCreateInfo;
+
 typedef struct VkVertexInputBindingDescription {
     deUint32             binding;
     deUint32             stride;
@@ -2592,21 +2668,6 @@
     float    maxDepth;
 } VkViewport;
 
-typedef struct VkOffset2D {
-    deInt32    x;
-    deInt32    y;
-} VkOffset2D;
-
-typedef struct VkExtent2D {
-    deUint32    width;
-    deUint32    height;
-} VkExtent2D;
-
-typedef struct VkRect2D {
-    VkOffset2D    offset;
-    VkExtent2D    extent;
-} VkRect2D;
-
 typedef struct VkPipelineViewportStateCreateInfo {
     VkStructureType                       sType;
     const void*                           pNext;
@@ -2722,16 +2783,6 @@
     deInt32                                          basePipelineIndex;
 } VkGraphicsPipelineCreateInfo;
 
-typedef struct VkComputePipelineCreateInfo {
-    VkStructureType                    sType;
-    const void*                        pNext;
-    VkPipelineCreateFlags              flags;
-    VkPipelineShaderStageCreateInfo    stage;
-    VkPipelineLayout                   layout;
-    VkPipeline                         basePipelineHandle;
-    deInt32                            basePipelineIndex;
-} VkComputePipelineCreateInfo;
-
 typedef struct VkPushConstantRange {
     VkShaderStageFlags    stageFlags;
     deUint32              offset;
@@ -2769,21 +2820,29 @@
     VkBool32                unnormalizedCoordinates;
 } VkSamplerCreateInfo;
 
-typedef struct VkDescriptorSetLayoutBinding {
-    deUint32              binding;
-    VkDescriptorType      descriptorType;
-    deUint32              descriptorCount;
-    VkShaderStageFlags    stageFlags;
-    const VkSampler*      pImmutableSamplers;
-} VkDescriptorSetLayoutBinding;
+typedef struct VkCopyDescriptorSet {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkDescriptorSet    srcSet;
+    deUint32           srcBinding;
+    deUint32           srcArrayElement;
+    VkDescriptorSet    dstSet;
+    deUint32           dstBinding;
+    deUint32           dstArrayElement;
+    deUint32           descriptorCount;
+} VkCopyDescriptorSet;
 
-typedef struct VkDescriptorSetLayoutCreateInfo {
-    VkStructureType                        sType;
-    const void*                            pNext;
-    VkDescriptorSetLayoutCreateFlags       flags;
-    deUint32                               bindingCount;
-    const VkDescriptorSetLayoutBinding*    pBindings;
-} VkDescriptorSetLayoutCreateInfo;
+typedef struct VkDescriptorBufferInfo {
+    VkBuffer        buffer;
+    VkDeviceSize    offset;
+    VkDeviceSize    range;
+} VkDescriptorBufferInfo;
+
+typedef struct VkDescriptorImageInfo {
+    VkSampler        sampler;
+    VkImageView      imageView;
+    VkImageLayout    imageLayout;
+} VkDescriptorImageInfo;
 
 typedef struct VkDescriptorPoolSize {
     VkDescriptorType    type;
@@ -2807,17 +2866,21 @@
     const VkDescriptorSetLayout*    pSetLayouts;
 } VkDescriptorSetAllocateInfo;
 
-typedef struct VkDescriptorImageInfo {
-    VkSampler        sampler;
-    VkImageView      imageView;
-    VkImageLayout    imageLayout;
-} VkDescriptorImageInfo;
+typedef struct VkDescriptorSetLayoutBinding {
+    deUint32              binding;
+    VkDescriptorType      descriptorType;
+    deUint32              descriptorCount;
+    VkShaderStageFlags    stageFlags;
+    const VkSampler*      pImmutableSamplers;
+} VkDescriptorSetLayoutBinding;
 
-typedef struct VkDescriptorBufferInfo {
-    VkBuffer        buffer;
-    VkDeviceSize    offset;
-    VkDeviceSize    range;
-} VkDescriptorBufferInfo;
+typedef struct VkDescriptorSetLayoutCreateInfo {
+    VkStructureType                        sType;
+    const void*                            pNext;
+    VkDescriptorSetLayoutCreateFlags       flags;
+    deUint32                               bindingCount;
+    const VkDescriptorSetLayoutBinding*    pBindings;
+} VkDescriptorSetLayoutCreateInfo;
 
 typedef struct VkWriteDescriptorSet {
     VkStructureType                  sType;
@@ -2832,30 +2895,6 @@
     const VkBufferView*              pTexelBufferView;
 } VkWriteDescriptorSet;
 
-typedef struct VkCopyDescriptorSet {
-    VkStructureType    sType;
-    const void*        pNext;
-    VkDescriptorSet    srcSet;
-    deUint32           srcBinding;
-    deUint32           srcArrayElement;
-    VkDescriptorSet    dstSet;
-    deUint32           dstBinding;
-    deUint32           dstArrayElement;
-    deUint32           descriptorCount;
-} VkCopyDescriptorSet;
-
-typedef struct VkFramebufferCreateInfo {
-    VkStructureType             sType;
-    const void*                 pNext;
-    VkFramebufferCreateFlags    flags;
-    VkRenderPass                renderPass;
-    deUint32                    attachmentCount;
-    const VkImageView*          pAttachments;
-    deUint32                    width;
-    deUint32                    height;
-    deUint32                    layers;
-} VkFramebufferCreateInfo;
-
 typedef struct VkAttachmentDescription {
     VkAttachmentDescriptionFlags    flags;
     VkFormat                        format;
@@ -2873,6 +2912,18 @@
     VkImageLayout    layout;
 } VkAttachmentReference;
 
+typedef struct VkFramebufferCreateInfo {
+    VkStructureType             sType;
+    const void*                 pNext;
+    VkFramebufferCreateFlags    flags;
+    VkRenderPass                renderPass;
+    deUint32                    attachmentCount;
+    const VkImageView*          pAttachments;
+    deUint32                    width;
+    deUint32                    height;
+    deUint32                    layers;
+} VkFramebufferCreateInfo;
+
 typedef struct VkSubpassDescription {
     VkSubpassDescriptionFlags       flags;
     VkPipelineBindPoint             pipelineBindPoint;
@@ -2954,21 +3005,6 @@
     deUint32              layerCount;
 } VkImageSubresourceLayers;
 
-typedef struct VkImageCopy {
-    VkImageSubresourceLayers    srcSubresource;
-    VkOffset3D                  srcOffset;
-    VkImageSubresourceLayers    dstSubresource;
-    VkOffset3D                  dstOffset;
-    VkExtent3D                  extent;
-} VkImageCopy;
-
-typedef struct VkImageBlit {
-    VkImageSubresourceLayers    srcSubresource;
-    VkOffset3D                  srcOffsets[2];
-    VkImageSubresourceLayers    dstSubresource;
-    VkOffset3D                  dstOffsets[2];
-} VkImageBlit;
-
 typedef struct VkBufferImageCopy {
     VkDeviceSize                bufferOffset;
     deUint32                    bufferRowLength;
@@ -3006,6 +3042,21 @@
     deUint32    layerCount;
 } VkClearRect;
 
+typedef struct VkImageBlit {
+    VkImageSubresourceLayers    srcSubresource;
+    VkOffset3D                  srcOffsets[2];
+    VkImageSubresourceLayers    dstSubresource;
+    VkOffset3D                  dstOffsets[2];
+} VkImageBlit;
+
+typedef struct VkImageCopy {
+    VkImageSubresourceLayers    srcSubresource;
+    VkOffset3D                  srcOffset;
+    VkImageSubresourceLayers    dstSubresource;
+    VkOffset3D                  dstOffset;
+    VkExtent3D                  extent;
+} VkImageCopy;
+
 typedef struct VkImageResolve {
     VkImageSubresourceLayers    srcSubresource;
     VkOffset3D                  srcOffset;
@@ -3014,38 +3065,6 @@
     VkExtent3D                  extent;
 } VkImageResolve;
 
-typedef struct VkMemoryBarrier {
-    VkStructureType    sType;
-    const void*        pNext;
-    VkAccessFlags      srcAccessMask;
-    VkAccessFlags      dstAccessMask;
-} VkMemoryBarrier;
-
-typedef struct VkBufferMemoryBarrier {
-    VkStructureType    sType;
-    const void*        pNext;
-    VkAccessFlags      srcAccessMask;
-    VkAccessFlags      dstAccessMask;
-    deUint32           srcQueueFamilyIndex;
-    deUint32           dstQueueFamilyIndex;
-    VkBuffer           buffer;
-    VkDeviceSize       offset;
-    VkDeviceSize       size;
-} VkBufferMemoryBarrier;
-
-typedef struct VkImageMemoryBarrier {
-    VkStructureType            sType;
-    const void*                pNext;
-    VkAccessFlags              srcAccessMask;
-    VkAccessFlags              dstAccessMask;
-    VkImageLayout              oldLayout;
-    VkImageLayout              newLayout;
-    deUint32                   srcQueueFamilyIndex;
-    deUint32                   dstQueueFamilyIndex;
-    VkImage                    image;
-    VkImageSubresourceRange    subresourceRange;
-} VkImageMemoryBarrier;
-
 typedef struct VkRenderPassBeginInfo {
     VkStructureType        sType;
     const void*            pNext;
@@ -3056,37 +3075,6 @@
     const VkClearValue*    pClearValues;
 } VkRenderPassBeginInfo;
 
-typedef struct VkDispatchIndirectCommand {
-    deUint32    x;
-    deUint32    y;
-    deUint32    z;
-} VkDispatchIndirectCommand;
-
-typedef struct VkDrawIndexedIndirectCommand {
-    deUint32    indexCount;
-    deUint32    instanceCount;
-    deUint32    firstIndex;
-    deInt32     vertexOffset;
-    deUint32    firstInstance;
-} VkDrawIndexedIndirectCommand;
-
-typedef struct VkDrawIndirectCommand {
-    deUint32    vertexCount;
-    deUint32    instanceCount;
-    deUint32    firstVertex;
-    deUint32    firstInstance;
-} VkDrawIndirectCommand;
-
-typedef struct VkBaseOutStructure {
-    VkStructureType               sType;
-    struct VkBaseOutStructure*    pNext;
-} VkBaseOutStructure;
-
-typedef struct VkBaseInStructure {
-    VkStructureType                    sType;
-    const struct VkBaseInStructure*    pNext;
-} VkBaseInStructure;
-
 typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
 typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, deUint32* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
@@ -4040,9 +4028,6 @@
     VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
     VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
     VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
-    VK_POINT_CLIPPING_BEHAVIOR_BEGIN_RANGE = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
-    VK_POINT_CLIPPING_BEHAVIOR_END_RANGE = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
-    VK_POINT_CLIPPING_BEHAVIOR_RANGE_SIZE = (VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY - VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES + 1),
     VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
 } VkPointClippingBehavior;
 
@@ -4051,9 +4036,6 @@
     VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
     VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
     VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
-    VK_TESSELLATION_DOMAIN_ORIGIN_BEGIN_RANGE = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
-    VK_TESSELLATION_DOMAIN_ORIGIN_END_RANGE = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
-    VK_TESSELLATION_DOMAIN_ORIGIN_RANGE_SIZE = (VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT - VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT + 1),
     VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF
 } VkTessellationDomainOrigin;
 
@@ -4068,9 +4050,6 @@
     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
-    VK_SAMPLER_YCBCR_MODEL_CONVERSION_BEGIN_RANGE = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
-    VK_SAMPLER_YCBCR_MODEL_CONVERSION_END_RANGE = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
-    VK_SAMPLER_YCBCR_MODEL_CONVERSION_RANGE_SIZE = (VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 - VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY + 1),
     VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF
 } VkSamplerYcbcrModelConversion;
 
@@ -4079,9 +4058,6 @@
     VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
     VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
     VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
-    VK_SAMPLER_YCBCR_RANGE_BEGIN_RANGE = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
-    VK_SAMPLER_YCBCR_RANGE_END_RANGE = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
-    VK_SAMPLER_YCBCR_RANGE_RANGE_SIZE = (VK_SAMPLER_YCBCR_RANGE_ITU_NARROW - VK_SAMPLER_YCBCR_RANGE_ITU_FULL + 1),
     VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF
 } VkSamplerYcbcrRange;
 
@@ -4090,9 +4066,6 @@
     VK_CHROMA_LOCATION_MIDPOINT = 1,
     VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN,
     VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT,
-    VK_CHROMA_LOCATION_BEGIN_RANGE = VK_CHROMA_LOCATION_COSITED_EVEN,
-    VK_CHROMA_LOCATION_END_RANGE = VK_CHROMA_LOCATION_MIDPOINT,
-    VK_CHROMA_LOCATION_RANGE_SIZE = (VK_CHROMA_LOCATION_MIDPOINT - VK_CHROMA_LOCATION_COSITED_EVEN + 1),
     VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF
 } VkChromaLocation;
 
@@ -4100,9 +4073,6 @@
     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
-    VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
-    VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_END_RANGE = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
-    VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET - VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET + 1),
     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkDescriptorUpdateTemplateType;
 
@@ -4381,8 +4351,6 @@
     VkMemoryRequirements    memoryRequirements;
 } VkMemoryRequirements2;
 
-typedef VkMemoryRequirements2 VkMemoryRequirements2KHR;
-
 typedef struct VkSparseImageMemoryRequirements2 {
     VkStructureType                    sType;
     void*                              pNext;
@@ -4910,7 +4878,6 @@
 // Vulkan 1.2 version number
 #define VK_API_VERSION_1_2 VK_MAKE_VERSION(1, 2, 0)// Patch version should always be set to 0
 
-typedef deUint64 VkDeviceAddress;
 #define VK_MAX_DRIVER_NAME_SIZE           256
 #define VK_MAX_DRIVER_INFO_SIZE           256
 
@@ -4927,6 +4894,7 @@
     VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10,
     VK_DRIVER_ID_GGP_PROPRIETARY = 11,
     VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12,
+    VK_DRIVER_ID_MESA_LLVMPIPE = 13,
     VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY,
     VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE,
     VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV,
@@ -4939,9 +4907,6 @@
     VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
     VK_DRIVER_ID_GGP_PROPRIETARY_KHR = VK_DRIVER_ID_GGP_PROPRIETARY,
     VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
-    VK_DRIVER_ID_BEGIN_RANGE = VK_DRIVER_ID_AMD_PROPRIETARY,
-    VK_DRIVER_ID_END_RANGE = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
-    VK_DRIVER_ID_RANGE_SIZE = (VK_DRIVER_ID_BROADCOM_PROPRIETARY - VK_DRIVER_ID_AMD_PROPRIETARY + 1),
     VK_DRIVER_ID_MAX_ENUM = 0x7FFFFFFF
 } VkDriverId;
 
@@ -4952,9 +4917,6 @@
     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE,
-    VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_BEGIN_RANGE = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
-    VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_END_RANGE = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE,
-    VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_RANGE_SIZE = (VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE - VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY + 1),
     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM = 0x7FFFFFFF
 } VkShaderFloatControlsIndependence;
 
@@ -4965,9 +4927,6 @@
     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
     VK_SAMPLER_REDUCTION_MODE_MIN_EXT = VK_SAMPLER_REDUCTION_MODE_MIN,
     VK_SAMPLER_REDUCTION_MODE_MAX_EXT = VK_SAMPLER_REDUCTION_MODE_MAX,
-    VK_SAMPLER_REDUCTION_MODE_BEGIN_RANGE = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
-    VK_SAMPLER_REDUCTION_MODE_END_RANGE = VK_SAMPLER_REDUCTION_MODE_MAX,
-    VK_SAMPLER_REDUCTION_MODE_RANGE_SIZE = (VK_SAMPLER_REDUCTION_MODE_MAX - VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE + 1),
     VK_SAMPLER_REDUCTION_MODE_MAX_ENUM = 0x7FFFFFFF
 } VkSamplerReductionMode;
 
@@ -4976,9 +4935,6 @@
     VK_SEMAPHORE_TYPE_TIMELINE = 1,
     VK_SEMAPHORE_TYPE_BINARY_KHR = VK_SEMAPHORE_TYPE_BINARY,
     VK_SEMAPHORE_TYPE_TIMELINE_KHR = VK_SEMAPHORE_TYPE_TIMELINE,
-    VK_SEMAPHORE_TYPE_BEGIN_RANGE = VK_SEMAPHORE_TYPE_BINARY,
-    VK_SEMAPHORE_TYPE_END_RANGE = VK_SEMAPHORE_TYPE_TIMELINE,
-    VK_SEMAPHORE_TYPE_RANGE_SIZE = (VK_SEMAPHORE_TYPE_TIMELINE - VK_SEMAPHORE_TYPE_BINARY + 1),
     VK_SEMAPHORE_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkSemaphoreType;
 
@@ -5665,6 +5621,16 @@
 #define VK_KHR_SURFACE_SPEC_VERSION       25
 #define VK_KHR_SURFACE_EXTENSION_NAME     "VK_KHR_surface"
 
+typedef enum VkPresentModeKHR {
+    VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
+    VK_PRESENT_MODE_MAILBOX_KHR = 1,
+    VK_PRESENT_MODE_FIFO_KHR = 2,
+    VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
+    VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
+    VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
+    VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkPresentModeKHR;
+
 typedef enum VkColorSpaceKHR {
     VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
     VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
@@ -5684,25 +5650,9 @@
     VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000,
     VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
     VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
-    VK_COLOR_SPACE_BEGIN_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
-    VK_COLOR_SPACE_END_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
-    VK_COLOR_SPACE_RANGE_SIZE_KHR = (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR + 1),
     VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
 } VkColorSpaceKHR;
 
-typedef enum VkPresentModeKHR {
-    VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
-    VK_PRESENT_MODE_MAILBOX_KHR = 1,
-    VK_PRESENT_MODE_FIFO_KHR = 2,
-    VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
-    VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
-    VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
-    VK_PRESENT_MODE_BEGIN_RANGE_KHR = VK_PRESENT_MODE_IMMEDIATE_KHR,
-    VK_PRESENT_MODE_END_RANGE_KHR = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
-    VK_PRESENT_MODE_RANGE_SIZE_KHR = (VK_PRESENT_MODE_FIFO_RELAXED_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1),
-    VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
-} VkPresentModeKHR;
-
 typedef enum VkSurfaceTransformFlagBitsKHR {
     VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
     VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
@@ -5715,7 +5665,6 @@
     VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
     VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
 } VkSurfaceTransformFlagBitsKHR;
-typedef VkFlags VkSurfaceTransformFlagsKHR;
 
 typedef enum VkCompositeAlphaFlagBitsKHR {
     VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
@@ -5725,6 +5674,7 @@
     VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
 } VkCompositeAlphaFlagBitsKHR;
 typedef VkFlags VkCompositeAlphaFlagsKHR;
+typedef VkFlags VkSurfaceTransformFlagsKHR;
 typedef struct VkSurfaceCapabilitiesKHR {
     deUint32                         minImageCount;
     deUint32                         maxImageCount;
@@ -5944,6 +5894,7 @@
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
 #define VK_KHR_DISPLAY_SPEC_VERSION       23
 #define VK_KHR_DISPLAY_EXTENSION_NAME     "VK_KHR_display"
+typedef VkFlags VkDisplayModeCreateFlagsKHR;
 
 typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
     VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
@@ -5953,28 +5904,12 @@
     VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
 } VkDisplayPlaneAlphaFlagBitsKHR;
 typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
-typedef VkFlags VkDisplayModeCreateFlagsKHR;
 typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
-typedef struct VkDisplayPropertiesKHR {
-    VkDisplayKHR                  display;
-    const char*                   displayName;
-    VkExtent2D                    physicalDimensions;
-    VkExtent2D                    physicalResolution;
-    VkSurfaceTransformFlagsKHR    supportedTransforms;
-    VkBool32                      planeReorderPossible;
-    VkBool32                      persistentContent;
-} VkDisplayPropertiesKHR;
-
 typedef struct VkDisplayModeParametersKHR {
     VkExtent2D    visibleRegion;
     deUint32      refreshRate;
 } VkDisplayModeParametersKHR;
 
-typedef struct VkDisplayModePropertiesKHR {
-    VkDisplayModeKHR              displayMode;
-    VkDisplayModeParametersKHR    parameters;
-} VkDisplayModePropertiesKHR;
-
 typedef struct VkDisplayModeCreateInfoKHR {
     VkStructureType                sType;
     const void*                    pNext;
@@ -5982,6 +5917,11 @@
     VkDisplayModeParametersKHR     parameters;
 } VkDisplayModeCreateInfoKHR;
 
+typedef struct VkDisplayModePropertiesKHR {
+    VkDisplayModeKHR              displayMode;
+    VkDisplayModeParametersKHR    parameters;
+} VkDisplayModePropertiesKHR;
+
 typedef struct VkDisplayPlaneCapabilitiesKHR {
     VkDisplayPlaneAlphaFlagsKHR    supportedAlpha;
     VkOffset2D                     minSrcPosition;
@@ -5999,6 +5939,16 @@
     deUint32        currentStackIndex;
 } VkDisplayPlanePropertiesKHR;
 
+typedef struct VkDisplayPropertiesKHR {
+    VkDisplayKHR                  display;
+    const char*                   displayName;
+    VkExtent2D                    physicalDimensions;
+    VkExtent2D                    physicalResolution;
+    VkSurfaceTransformFlagsKHR    supportedTransforms;
+    VkBool32                      planeReorderPossible;
+    VkBool32                      persistentContent;
+} VkDisplayPropertiesKHR;
+
 typedef struct VkDisplaySurfaceCreateInfoKHR {
     VkStructureType                   sType;
     const void*                       pNext;
@@ -6682,9 +6632,6 @@
     VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8,
     VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9,
     VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10,
-    VK_PERFORMANCE_COUNTER_UNIT_BEGIN_RANGE_KHR = VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR,
-    VK_PERFORMANCE_COUNTER_UNIT_END_RANGE_KHR = VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR,
-    VK_PERFORMANCE_COUNTER_UNIT_RANGE_SIZE_KHR = (VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR - VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR + 1),
     VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 0x7FFFFFFF
 } VkPerformanceCounterUnitKHR;
 
@@ -6695,9 +6642,6 @@
     VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
     VK_QUERY_SCOPE_RENDER_PASS_KHR = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
     VK_QUERY_SCOPE_COMMAND_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
-    VK_PERFORMANCE_COUNTER_SCOPE_BEGIN_RANGE_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
-    VK_PERFORMANCE_COUNTER_SCOPE_END_RANGE_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
-    VK_PERFORMANCE_COUNTER_SCOPE_RANGE_SIZE_KHR = (VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR + 1),
     VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
 } VkPerformanceCounterScopeKHR;
 
@@ -6708,9 +6652,6 @@
     VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3,
     VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4,
     VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5,
-    VK_PERFORMANCE_COUNTER_STORAGE_BEGIN_RANGE_KHR = VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR,
-    VK_PERFORMANCE_COUNTER_STORAGE_END_RANGE_KHR = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR,
-    VK_PERFORMANCE_COUNTER_STORAGE_RANGE_SIZE_KHR = (VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR - VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR + 1),
     VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 0x7FFFFFFF
 } VkPerformanceCounterStorageKHR;
 
@@ -6970,6 +6911,8 @@
 
 typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR;
 
+typedef VkMemoryRequirements2 VkMemoryRequirements2KHR;
+
 typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR;
 
 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
@@ -7306,9 +7249,6 @@
     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1,
     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2,
     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3,
-    VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BEGIN_RANGE_KHR = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR,
-    VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_END_RANGE_KHR = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR,
-    VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_RANGE_SIZE_KHR = (VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR + 1),
     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 0x7FFFFFFF
 } VkPipelineExecutableStatisticFormatKHR;
 typedef struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
@@ -7390,6 +7330,11 @@
 #endif
 
 
+#define VK_KHR_shader_non_semantic_info 1
+#define VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION 1
+#define VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME "VK_KHR_shader_non_semantic_info"
+
+
 #define VK_EXT_debug_report 1
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
 #define VK_EXT_DEBUG_REPORT_SPEC_VERSION  9
@@ -7427,19 +7372,15 @@
     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
-    VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
-    VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000,
     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000,
-    VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000,
+    VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000165000,
     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
-    VK_DEBUG_REPORT_OBJECT_TYPE_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
-    VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
-    VK_DEBUG_REPORT_OBJECT_TYPE_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT + 1),
+    VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT,
     VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkDebugReportObjectTypeEXT;
 
@@ -7520,9 +7461,6 @@
 typedef enum VkRasterizationOrderAMD {
     VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
     VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
-    VK_RASTERIZATION_ORDER_BEGIN_RANGE_AMD = VK_RASTERIZATION_ORDER_STRICT_AMD,
-    VK_RASTERIZATION_ORDER_END_RANGE_AMD = VK_RASTERIZATION_ORDER_RELAXED_AMD,
-    VK_RASTERIZATION_ORDER_RANGE_SIZE_AMD = (VK_RASTERIZATION_ORDER_RELAXED_AMD - VK_RASTERIZATION_ORDER_STRICT_AMD + 1),
     VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
 } VkRasterizationOrderAMD;
 typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
@@ -7716,7 +7654,7 @@
 
 
 #define VK_NVX_image_view_handle 1
-#define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 1
+#define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 2
 #define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle"
 typedef struct VkImageViewHandleInfoNVX {
     VkStructureType     sType;
@@ -7726,12 +7664,25 @@
     VkSampler           sampler;
 } VkImageViewHandleInfoNVX;
 
+typedef struct VkImageViewAddressPropertiesNVX {
+    VkStructureType    sType;
+    void*              pNext;
+    VkDeviceAddress    deviceAddress;
+    VkDeviceSize       size;
+} VkImageViewAddressPropertiesNVX;
+
 typedef deUint32 (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
+typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewAddressNVX)(VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties);
 
 #ifndef VK_NO_PROTOTYPES
 VKAPI_ATTR deUint32 VKAPI_CALL vkGetImageViewHandleNVX(
     VkDevice                                    device,
     const VkImageViewHandleInfoNVX*             pInfo);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewAddressNVX(
+    VkDevice                                    device,
+    VkImageView                                 imageView,
+    VkImageViewAddressPropertiesNVX*            pProperties);
 #endif
 
 
@@ -7796,9 +7747,6 @@
     VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
     VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
     VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
-    VK_SHADER_INFO_TYPE_BEGIN_RANGE_AMD = VK_SHADER_INFO_TYPE_STATISTICS_AMD,
-    VK_SHADER_INFO_TYPE_END_RANGE_AMD = VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD,
-    VK_SHADER_INFO_TYPE_RANGE_SIZE_AMD = (VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD - VK_SHADER_INFO_TYPE_STATISTICS_AMD + 1),
     VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF
 } VkShaderInfoTypeAMD;
 typedef struct VkShaderResourceUsageAMD {
@@ -7919,9 +7867,6 @@
 typedef enum VkValidationCheckEXT {
     VK_VALIDATION_CHECK_ALL_EXT = 0,
     VK_VALIDATION_CHECK_SHADERS_EXT = 1,
-    VK_VALIDATION_CHECK_BEGIN_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT,
-    VK_VALIDATION_CHECK_END_RANGE_EXT = VK_VALIDATION_CHECK_SHADERS_EXT,
-    VK_VALIDATION_CHECK_RANGE_SIZE_EXT = (VK_VALIDATION_CHECK_SHADERS_EXT - VK_VALIDATION_CHECK_ALL_EXT + 1),
     VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkValidationCheckEXT;
 typedef struct VkValidationFlagsEXT {
@@ -8014,229 +7959,6 @@
 #endif
 
 
-#define VK_NVX_device_generated_commands 1
-VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkObjectTableNVX)
-VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNVX)
-#define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
-#define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands"
-
-typedef enum VkIndirectCommandsTokenTypeNVX {
-    VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0,
-    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1,
-    VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = 2,
-    VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = 3,
-    VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = 4,
-    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = 5,
-    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = 6,
-    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = 7,
-    VK_INDIRECT_COMMANDS_TOKEN_TYPE_BEGIN_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX,
-    VK_INDIRECT_COMMANDS_TOKEN_TYPE_END_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX,
-    VK_INDIRECT_COMMANDS_TOKEN_TYPE_RANGE_SIZE_NVX = (VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX + 1),
-    VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF
-} VkIndirectCommandsTokenTypeNVX;
-
-typedef enum VkObjectEntryTypeNVX {
-    VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = 0,
-    VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = 1,
-    VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = 2,
-    VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = 3,
-    VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = 4,
-    VK_OBJECT_ENTRY_TYPE_BEGIN_RANGE_NVX = VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX,
-    VK_OBJECT_ENTRY_TYPE_END_RANGE_NVX = VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX,
-    VK_OBJECT_ENTRY_TYPE_RANGE_SIZE_NVX = (VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX - VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX + 1),
-    VK_OBJECT_ENTRY_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF
-} VkObjectEntryTypeNVX;
-
-typedef enum VkIndirectCommandsLayoutUsageFlagBitsNVX {
-    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001,
-    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002,
-    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004,
-    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008,
-    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF
-} VkIndirectCommandsLayoutUsageFlagBitsNVX;
-typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNVX;
-
-typedef enum VkObjectEntryUsageFlagBitsNVX {
-    VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001,
-    VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002,
-    VK_OBJECT_ENTRY_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF
-} VkObjectEntryUsageFlagBitsNVX;
-typedef VkFlags VkObjectEntryUsageFlagsNVX;
-typedef struct VkDeviceGeneratedCommandsFeaturesNVX {
-    VkStructureType    sType;
-    const void*        pNext;
-    VkBool32           computeBindingPointSupport;
-} VkDeviceGeneratedCommandsFeaturesNVX;
-
-typedef struct VkDeviceGeneratedCommandsLimitsNVX {
-    VkStructureType    sType;
-    const void*        pNext;
-    deUint32           maxIndirectCommandsLayoutTokenCount;
-    deUint32           maxObjectEntryCounts;
-    deUint32           minSequenceCountBufferOffsetAlignment;
-    deUint32           minSequenceIndexBufferOffsetAlignment;
-    deUint32           minCommandsTokenBufferOffsetAlignment;
-} VkDeviceGeneratedCommandsLimitsNVX;
-
-typedef struct VkIndirectCommandsTokenNVX {
-    VkIndirectCommandsTokenTypeNVX    tokenType;
-    VkBuffer                          buffer;
-    VkDeviceSize                      offset;
-} VkIndirectCommandsTokenNVX;
-
-typedef struct VkIndirectCommandsLayoutTokenNVX {
-    VkIndirectCommandsTokenTypeNVX    tokenType;
-    deUint32                          bindingUnit;
-    deUint32                          dynamicCount;
-    deUint32                          divisor;
-} VkIndirectCommandsLayoutTokenNVX;
-
-typedef struct VkIndirectCommandsLayoutCreateInfoNVX {
-    VkStructureType                            sType;
-    const void*                                pNext;
-    VkPipelineBindPoint                        pipelineBindPoint;
-    VkIndirectCommandsLayoutUsageFlagsNVX      flags;
-    deUint32                                   tokenCount;
-    const VkIndirectCommandsLayoutTokenNVX*    pTokens;
-} VkIndirectCommandsLayoutCreateInfoNVX;
-
-typedef struct VkCmdProcessCommandsInfoNVX {
-    VkStructureType                      sType;
-    const void*                          pNext;
-    VkObjectTableNVX                     objectTable;
-    VkIndirectCommandsLayoutNVX          indirectCommandsLayout;
-    deUint32                             indirectCommandsTokenCount;
-    const VkIndirectCommandsTokenNVX*    pIndirectCommandsTokens;
-    deUint32                             maxSequencesCount;
-    VkCommandBuffer                      targetCommandBuffer;
-    VkBuffer                             sequencesCountBuffer;
-    VkDeviceSize                         sequencesCountOffset;
-    VkBuffer                             sequencesIndexBuffer;
-    VkDeviceSize                         sequencesIndexOffset;
-} VkCmdProcessCommandsInfoNVX;
-
-typedef struct VkCmdReserveSpaceForCommandsInfoNVX {
-    VkStructureType                sType;
-    const void*                    pNext;
-    VkObjectTableNVX               objectTable;
-    VkIndirectCommandsLayoutNVX    indirectCommandsLayout;
-    deUint32                       maxSequencesCount;
-} VkCmdReserveSpaceForCommandsInfoNVX;
-
-typedef struct VkObjectTableCreateInfoNVX {
-    VkStructureType                      sType;
-    const void*                          pNext;
-    deUint32                             objectCount;
-    const VkObjectEntryTypeNVX*          pObjectEntryTypes;
-    const deUint32*                      pObjectEntryCounts;
-    const VkObjectEntryUsageFlagsNVX*    pObjectEntryUsageFlags;
-    deUint32                             maxUniformBuffersPerDescriptor;
-    deUint32                             maxStorageBuffersPerDescriptor;
-    deUint32                             maxStorageImagesPerDescriptor;
-    deUint32                             maxSampledImagesPerDescriptor;
-    deUint32                             maxPipelineLayouts;
-} VkObjectTableCreateInfoNVX;
-
-typedef struct VkObjectTableEntryNVX {
-    VkObjectEntryTypeNVX          type;
-    VkObjectEntryUsageFlagsNVX    flags;
-} VkObjectTableEntryNVX;
-
-typedef struct VkObjectTablePipelineEntryNVX {
-    VkObjectEntryTypeNVX          type;
-    VkObjectEntryUsageFlagsNVX    flags;
-    VkPipeline                    pipeline;
-} VkObjectTablePipelineEntryNVX;
-
-typedef struct VkObjectTableDescriptorSetEntryNVX {
-    VkObjectEntryTypeNVX          type;
-    VkObjectEntryUsageFlagsNVX    flags;
-    VkPipelineLayout              pipelineLayout;
-    VkDescriptorSet               descriptorSet;
-} VkObjectTableDescriptorSetEntryNVX;
-
-typedef struct VkObjectTableVertexBufferEntryNVX {
-    VkObjectEntryTypeNVX          type;
-    VkObjectEntryUsageFlagsNVX    flags;
-    VkBuffer                      buffer;
-} VkObjectTableVertexBufferEntryNVX;
-
-typedef struct VkObjectTableIndexBufferEntryNVX {
-    VkObjectEntryTypeNVX          type;
-    VkObjectEntryUsageFlagsNVX    flags;
-    VkBuffer                      buffer;
-    VkIndexType                   indexType;
-} VkObjectTableIndexBufferEntryNVX;
-
-typedef struct VkObjectTablePushConstantEntryNVX {
-    VkObjectEntryTypeNVX          type;
-    VkObjectEntryUsageFlagsNVX    flags;
-    VkPipelineLayout              pipelineLayout;
-    VkShaderStageFlags            stageFlags;
-} VkObjectTablePushConstantEntryNVX;
-
-typedef void (VKAPI_PTR *PFN_vkCmdProcessCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo);
-typedef void (VKAPI_PTR *PFN_vkCmdReserveSpaceForCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo);
-typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNVX)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout);
-typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNVX)(VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
-typedef VkResult (VKAPI_PTR *PFN_vkCreateObjectTableNVX)(VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable);
-typedef void (VKAPI_PTR *PFN_vkDestroyObjectTableNVX)(VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator);
-typedef VkResult (VKAPI_PTR *PFN_vkRegisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectTableEntryNVX* const*    ppObjectTableEntries, const deUint32* pObjectIndices);
-typedef VkResult (VKAPI_PTR *PFN_vkUnregisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, deUint32 objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const deUint32* pObjectIndices);
-typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX)(VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits);
-
-#ifndef VK_NO_PROTOTYPES
-VKAPI_ATTR void VKAPI_CALL vkCmdProcessCommandsNVX(
-    VkCommandBuffer                             commandBuffer,
-    const VkCmdProcessCommandsInfoNVX*          pProcessCommandsInfo);
-
-VKAPI_ATTR void VKAPI_CALL vkCmdReserveSpaceForCommandsNVX(
-    VkCommandBuffer                             commandBuffer,
-    const VkCmdReserveSpaceForCommandsInfoNVX*  pReserveSpaceInfo);
-
-VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNVX(
-    VkDevice                                    device,
-    const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
-    const VkAllocationCallbacks*                pAllocator,
-    VkIndirectCommandsLayoutNVX*                pIndirectCommandsLayout);
-
-VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNVX(
-    VkDevice                                    device,
-    VkIndirectCommandsLayoutNVX                 indirectCommandsLayout,
-    const VkAllocationCallbacks*                pAllocator);
-
-VKAPI_ATTR VkResult VKAPI_CALL vkCreateObjectTableNVX(
-    VkDevice                                    device,
-    const VkObjectTableCreateInfoNVX*           pCreateInfo,
-    const VkAllocationCallbacks*                pAllocator,
-    VkObjectTableNVX*                           pObjectTable);
-
-VKAPI_ATTR void VKAPI_CALL vkDestroyObjectTableNVX(
-    VkDevice                                    device,
-    VkObjectTableNVX                            objectTable,
-    const VkAllocationCallbacks*                pAllocator);
-
-VKAPI_ATTR VkResult VKAPI_CALL vkRegisterObjectsNVX(
-    VkDevice                                    device,
-    VkObjectTableNVX                            objectTable,
-    deUint32                                    objectCount,
-    const VkObjectTableEntryNVX* const*         ppObjectTableEntries,
-    const deUint32*                             pObjectIndices);
-
-VKAPI_ATTR VkResult VKAPI_CALL vkUnregisterObjectsNVX(
-    VkDevice                                    device,
-    VkObjectTableNVX                            objectTable,
-    deUint32                                    objectCount,
-    const VkObjectEntryTypeNVX*                 pObjectEntryTypes,
-    const deUint32*                             pObjectIndices);
-
-VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
-    VkPhysicalDevice                            physicalDevice,
-    VkDeviceGeneratedCommandsFeaturesNVX*       pFeatures,
-    VkDeviceGeneratedCommandsLimitsNVX*         pLimits);
-#endif
-
-
 #define VK_NV_clip_space_w_scaling 1
 #define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
 #define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
@@ -8319,25 +8041,16 @@
     VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
     VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
     VK_DISPLAY_POWER_STATE_ON_EXT = 2,
-    VK_DISPLAY_POWER_STATE_BEGIN_RANGE_EXT = VK_DISPLAY_POWER_STATE_OFF_EXT,
-    VK_DISPLAY_POWER_STATE_END_RANGE_EXT = VK_DISPLAY_POWER_STATE_ON_EXT,
-    VK_DISPLAY_POWER_STATE_RANGE_SIZE_EXT = (VK_DISPLAY_POWER_STATE_ON_EXT - VK_DISPLAY_POWER_STATE_OFF_EXT + 1),
     VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkDisplayPowerStateEXT;
 
 typedef enum VkDeviceEventTypeEXT {
     VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
-    VK_DEVICE_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT,
-    VK_DEVICE_EVENT_TYPE_END_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT,
-    VK_DEVICE_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT + 1),
     VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkDeviceEventTypeEXT;
 
 typedef enum VkDisplayEventTypeEXT {
     VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
-    VK_DISPLAY_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT,
-    VK_DISPLAY_EVENT_TYPE_END_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT,
-    VK_DISPLAY_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT + 1),
     VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkDisplayEventTypeEXT;
 typedef struct VkDisplayPowerInfoEXT {
@@ -8479,9 +8192,6 @@
     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
-    VK_VIEWPORT_COORDINATE_SWIZZLE_BEGIN_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV,
-    VK_VIEWPORT_COORDINATE_SWIZZLE_END_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV,
-    VK_VIEWPORT_COORDINATE_SWIZZLE_RANGE_SIZE_NV = (VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV + 1),
     VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF
 } VkViewportCoordinateSwizzleNV;
 typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV;
@@ -8509,9 +8219,6 @@
 typedef enum VkDiscardRectangleModeEXT {
     VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
     VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
-    VK_DISCARD_RECTANGLE_MODE_BEGIN_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT,
-    VK_DISCARD_RECTANGLE_MODE_END_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT,
-    VK_DISCARD_RECTANGLE_MODE_RANGE_SIZE_EXT = (VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT + 1),
     VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkDiscardRectangleModeEXT;
 typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
@@ -8549,9 +8256,6 @@
     VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
     VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
     VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
-    VK_CONSERVATIVE_RASTERIZATION_MODE_BEGIN_RANGE_EXT = VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT,
-    VK_CONSERVATIVE_RASTERIZATION_MODE_END_RANGE_EXT = VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT,
-    VK_CONSERVATIVE_RASTERIZATION_MODE_RANGE_SIZE_EXT = (VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT - VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT + 1),
     VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkConservativeRasterizationModeEXT;
 typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT;
@@ -8648,10 +8352,9 @@
 
 #define VK_EXT_debug_utils 1
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT)
-#define VK_EXT_DEBUG_UTILS_SPEC_VERSION   1
+#define VK_EXT_DEBUG_UTILS_SPEC_VERSION   2
 #define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
 typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT;
-typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT;
 
 typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT {
     VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
@@ -8660,7 +8363,6 @@
     VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
     VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkDebugUtilsMessageSeverityFlagBitsEXT;
-typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT;
 
 typedef enum VkDebugUtilsMessageTypeFlagBitsEXT {
     VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
@@ -8669,6 +8371,15 @@
     VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkDebugUtilsMessageTypeFlagBitsEXT;
 typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT;
+typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT;
+typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT;
+typedef struct VkDebugUtilsLabelEXT {
+    VkStructureType    sType;
+    const void*        pNext;
+    const char*        pLabelName;
+    float              color[4];
+} VkDebugUtilsLabelEXT;
+
 typedef struct VkDebugUtilsObjectNameInfoEXT {
     VkStructureType    sType;
     const void*        pNext;
@@ -8677,23 +8388,6 @@
     const char*        pObjectName;
 } VkDebugUtilsObjectNameInfoEXT;
 
-typedef struct VkDebugUtilsObjectTagInfoEXT {
-    VkStructureType    sType;
-    const void*        pNext;
-    VkObjectType       objectType;
-    deUint64           objectHandle;
-    deUint64           tagName;
-    deUintptr             tagSize;
-    const void*        pTag;
-} VkDebugUtilsObjectTagInfoEXT;
-
-typedef struct VkDebugUtilsLabelEXT {
-    VkStructureType    sType;
-    const void*        pNext;
-    const char*        pLabelName;
-    float              color[4];
-} VkDebugUtilsLabelEXT;
-
 typedef struct VkDebugUtilsMessengerCallbackDataEXT {
     VkStructureType                              sType;
     const void*                                  pNext;
@@ -8725,6 +8419,16 @@
     void*                                   pUserData;
 } VkDebugUtilsMessengerCreateInfoEXT;
 
+typedef struct VkDebugUtilsObjectTagInfoEXT {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkObjectType       objectType;
+    deUint64           objectHandle;
+    deUint64           tagName;
+    deUintptr             tagSize;
+    const void*        pTag;
+} VkDebugUtilsObjectTagInfoEXT;
+
 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
 typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
@@ -8935,9 +8639,6 @@
     VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
     VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
     VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
-    VK_BLEND_OVERLAP_BEGIN_RANGE_EXT = VK_BLEND_OVERLAP_UNCORRELATED_EXT,
-    VK_BLEND_OVERLAP_END_RANGE_EXT = VK_BLEND_OVERLAP_CONJOINT_EXT,
-    VK_BLEND_OVERLAP_RANGE_SIZE_EXT = (VK_BLEND_OVERLAP_CONJOINT_EXT - VK_BLEND_OVERLAP_UNCORRELATED_EXT + 1),
     VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkBlendOverlapEXT;
 typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
@@ -8990,9 +8691,6 @@
     VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
     VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
     VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
-    VK_COVERAGE_MODULATION_MODE_BEGIN_RANGE_NV = VK_COVERAGE_MODULATION_MODE_NONE_NV,
-    VK_COVERAGE_MODULATION_MODE_END_RANGE_NV = VK_COVERAGE_MODULATION_MODE_RGBA_NV,
-    VK_COVERAGE_MODULATION_MODE_RANGE_SIZE_NV = (VK_COVERAGE_MODULATION_MODE_RGBA_NV - VK_COVERAGE_MODULATION_MODE_NONE_NV + 1),
     VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
 } VkCoverageModulationModeNV;
 typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV;
@@ -9099,9 +8797,6 @@
 
 typedef enum VkValidationCacheHeaderVersionEXT {
     VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
-    VK_VALIDATION_CACHE_HEADER_VERSION_BEGIN_RANGE_EXT = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT,
-    VK_VALIDATION_CACHE_HEADER_VERSION_END_RANGE_EXT = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT,
-    VK_VALIDATION_CACHE_HEADER_VERSION_RANGE_SIZE_EXT = (VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT + 1),
     VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkValidationCacheHeaderVersionEXT;
 typedef VkFlags VkValidationCacheCreateFlagsEXT;
@@ -9191,9 +8886,6 @@
     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
-    VK_SHADING_RATE_PALETTE_ENTRY_BEGIN_RANGE_NV = VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV,
-    VK_SHADING_RATE_PALETTE_ENTRY_END_RANGE_NV = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV,
-    VK_SHADING_RATE_PALETTE_ENTRY_RANGE_SIZE_NV = (VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV - VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV + 1),
     VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF
 } VkShadingRatePaletteEntryNV;
 
@@ -9202,9 +8894,6 @@
     VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
     VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
     VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
-    VK_COARSE_SAMPLE_ORDER_TYPE_BEGIN_RANGE_NV = VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV,
-    VK_COARSE_SAMPLE_ORDER_TYPE_END_RANGE_NV = VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV,
-    VK_COARSE_SAMPLE_ORDER_TYPE_RANGE_SIZE_NV = (VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV - VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV + 1),
     VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
 } VkCoarseSampleOrderTypeNV;
 typedef struct VkShadingRatePaletteNV {
@@ -9281,91 +8970,127 @@
 
 
 #define VK_NV_ray_tracing 1
-VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV)
+VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR)
+typedef VkAccelerationStructureKHR VkAccelerationStructureNV;
+
 #define VK_NV_RAY_TRACING_SPEC_VERSION    3
 #define VK_NV_RAY_TRACING_EXTENSION_NAME  "VK_NV_ray_tracing"
-#define VK_SHADER_UNUSED_NV               (~0U)
+#define VK_SHADER_UNUSED_KHR              (~0U)
+#define VK_SHADER_UNUSED_NV               VK_SHADER_UNUSED_KHR
 
-typedef enum VkAccelerationStructureTypeNV {
-    VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0,
-    VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1,
-    VK_ACCELERATION_STRUCTURE_TYPE_BEGIN_RANGE_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV,
-    VK_ACCELERATION_STRUCTURE_TYPE_END_RANGE_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV,
-    VK_ACCELERATION_STRUCTURE_TYPE_RANGE_SIZE_NV = (VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV + 1),
-    VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
-} VkAccelerationStructureTypeNV;
+typedef enum VkRayTracingShaderGroupTypeKHR {
+    VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0,
+    VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1,
+    VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2,
+    VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
+    VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
+    VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR,
+    VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkRayTracingShaderGroupTypeKHR;
+typedef VkRayTracingShaderGroupTypeKHR VkRayTracingShaderGroupTypeNV;
 
-typedef enum VkRayTracingShaderGroupTypeNV {
-    VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0,
-    VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1,
-    VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2,
-    VK_RAY_TRACING_SHADER_GROUP_TYPE_BEGIN_RANGE_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV,
-    VK_RAY_TRACING_SHADER_GROUP_TYPE_END_RANGE_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV,
-    VK_RAY_TRACING_SHADER_GROUP_TYPE_RANGE_SIZE_NV = (VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV + 1),
-    VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
-} VkRayTracingShaderGroupTypeNV;
 
-typedef enum VkGeometryTypeNV {
-    VK_GEOMETRY_TYPE_TRIANGLES_NV = 0,
-    VK_GEOMETRY_TYPE_AABBS_NV = 1,
-    VK_GEOMETRY_TYPE_BEGIN_RANGE_NV = VK_GEOMETRY_TYPE_TRIANGLES_NV,
-    VK_GEOMETRY_TYPE_END_RANGE_NV = VK_GEOMETRY_TYPE_AABBS_NV,
-    VK_GEOMETRY_TYPE_RANGE_SIZE_NV = (VK_GEOMETRY_TYPE_AABBS_NV - VK_GEOMETRY_TYPE_TRIANGLES_NV + 1),
-    VK_GEOMETRY_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
-} VkGeometryTypeNV;
+typedef enum VkGeometryTypeKHR {
+    VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0,
+    VK_GEOMETRY_TYPE_AABBS_KHR = 1,
+    VK_GEOMETRY_TYPE_INSTANCES_KHR = 1000150000,
+    VK_GEOMETRY_TYPE_TRIANGLES_NV = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
+    VK_GEOMETRY_TYPE_AABBS_NV = VK_GEOMETRY_TYPE_AABBS_KHR,
+    VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkGeometryTypeKHR;
+typedef VkGeometryTypeKHR VkGeometryTypeNV;
 
-typedef enum VkCopyAccelerationStructureModeNV {
-    VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0,
-    VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1,
-    VK_COPY_ACCELERATION_STRUCTURE_MODE_BEGIN_RANGE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV,
-    VK_COPY_ACCELERATION_STRUCTURE_MODE_END_RANGE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV,
-    VK_COPY_ACCELERATION_STRUCTURE_MODE_RANGE_SIZE_NV = (VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV + 1),
-    VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_NV = 0x7FFFFFFF
-} VkCopyAccelerationStructureModeNV;
 
-typedef enum VkAccelerationStructureMemoryRequirementsTypeNV {
-    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0,
-    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1,
-    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2,
-    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BEGIN_RANGE_NV = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV,
-    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_END_RANGE_NV = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV,
-    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_RANGE_SIZE_NV = (VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV + 1),
-    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
-} VkAccelerationStructureMemoryRequirementsTypeNV;
+typedef enum VkAccelerationStructureTypeKHR {
+    VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0,
+    VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1,
+    VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
+    VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
+    VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkAccelerationStructureTypeKHR;
+typedef VkAccelerationStructureTypeKHR VkAccelerationStructureTypeNV;
 
-typedef enum VkGeometryFlagBitsNV {
-    VK_GEOMETRY_OPAQUE_BIT_NV = 0x00000001,
-    VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 0x00000002,
-    VK_GEOMETRY_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
-} VkGeometryFlagBitsNV;
-typedef VkFlags VkGeometryFlagsNV;
 
-typedef enum VkGeometryInstanceFlagBitsNV {
-    VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 0x00000001,
-    VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 0x00000002,
-    VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 0x00000004,
-    VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 0x00000008,
-    VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
-} VkGeometryInstanceFlagBitsNV;
-typedef VkFlags VkGeometryInstanceFlagsNV;
+typedef enum VkCopyAccelerationStructureModeKHR {
+    VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0,
+    VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1,
+    VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2,
+    VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3,
+    VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
+    VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
+    VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkCopyAccelerationStructureModeKHR;
+typedef VkCopyAccelerationStructureModeKHR VkCopyAccelerationStructureModeNV;
 
-typedef enum VkBuildAccelerationStructureFlagBitsNV {
-    VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 0x00000001,
-    VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 0x00000002,
-    VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 0x00000004,
-    VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 0x00000008,
-    VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 0x00000010,
-    VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
-} VkBuildAccelerationStructureFlagBitsNV;
-typedef VkFlags VkBuildAccelerationStructureFlagsNV;
+
+typedef enum VkAccelerationStructureMemoryRequirementsTypeKHR {
+    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR = 0,
+    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_KHR = 1,
+    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_KHR = 2,
+    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR,
+    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_KHR,
+    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_KHR,
+    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkAccelerationStructureMemoryRequirementsTypeKHR;
+typedef VkAccelerationStructureMemoryRequirementsTypeKHR VkAccelerationStructureMemoryRequirementsTypeNV;
+
+
+typedef enum VkGeometryFlagBitsKHR {
+    VK_GEOMETRY_OPAQUE_BIT_KHR = 0x00000001,
+    VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 0x00000002,
+    VK_GEOMETRY_OPAQUE_BIT_NV = VK_GEOMETRY_OPAQUE_BIT_KHR,
+    VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,
+    VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkGeometryFlagBitsKHR;
+typedef VkFlags VkGeometryFlagsKHR;
+typedef VkGeometryFlagsKHR VkGeometryFlagsNV;
+
+typedef VkGeometryFlagBitsKHR VkGeometryFlagBitsNV;
+
+
+typedef enum VkGeometryInstanceFlagBitsKHR {
+    VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 0x00000001,
+    VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 0x00000002,
+    VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0x00000004,
+    VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0x00000008,
+    VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
+    VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
+    VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
+    VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
+    VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkGeometryInstanceFlagBitsKHR;
+typedef VkFlags VkGeometryInstanceFlagsKHR;
+typedef VkGeometryInstanceFlagsKHR VkGeometryInstanceFlagsNV;
+
+typedef VkGeometryInstanceFlagBitsKHR VkGeometryInstanceFlagBitsNV;
+
+
+typedef enum VkBuildAccelerationStructureFlagBitsKHR {
+    VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 0x00000001,
+    VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 0x00000002,
+    VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 0x00000004,
+    VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 0x00000008,
+    VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 0x00000010,
+    VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
+    VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
+    VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
+    VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
+    VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,
+    VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkBuildAccelerationStructureFlagBitsKHR;
+typedef VkFlags VkBuildAccelerationStructureFlagsKHR;
+typedef VkBuildAccelerationStructureFlagsKHR VkBuildAccelerationStructureFlagsNV;
+
+typedef VkBuildAccelerationStructureFlagBitsKHR VkBuildAccelerationStructureFlagBitsNV;
+
 typedef struct VkRayTracingShaderGroupCreateInfoNV {
-    VkStructureType                  sType;
-    const void*                      pNext;
-    VkRayTracingShaderGroupTypeNV    type;
-    deUint32                         generalShader;
-    deUint32                         closestHitShader;
-    deUint32                         anyHitShader;
-    deUint32                         intersectionShader;
+    VkStructureType                   sType;
+    const void*                       pNext;
+    VkRayTracingShaderGroupTypeKHR    type;
+    deUint32                          generalShader;
+    deUint32                          closestHitShader;
+    deUint32                          anyHitShader;
+    deUint32                          intersectionShader;
 } VkRayTracingShaderGroupCreateInfoNV;
 
 typedef struct VkRayTracingPipelineCreateInfoNV {
@@ -9413,11 +9138,11 @@
 } VkGeometryDataNV;
 
 typedef struct VkGeometryNV {
-    VkStructureType      sType;
-    const void*          pNext;
-    VkGeometryTypeNV     geometryType;
-    VkGeometryDataNV     geometry;
-    VkGeometryFlagsNV    flags;
+    VkStructureType       sType;
+    const void*           pNext;
+    VkGeometryTypeKHR     geometryType;
+    VkGeometryDataNV      geometry;
+    VkGeometryFlagsKHR    flags;
 } VkGeometryNV;
 
 typedef struct VkAccelerationStructureInfoNV {
@@ -9437,22 +9162,26 @@
     VkAccelerationStructureInfoNV    info;
 } VkAccelerationStructureCreateInfoNV;
 
-typedef struct VkBindAccelerationStructureMemoryInfoNV {
-    VkStructureType              sType;
-    const void*                  pNext;
-    VkAccelerationStructureNV    accelerationStructure;
-    VkDeviceMemory               memory;
-    VkDeviceSize                 memoryOffset;
-    deUint32                     deviceIndexCount;
-    const deUint32*              pDeviceIndices;
-} VkBindAccelerationStructureMemoryInfoNV;
+typedef struct VkBindAccelerationStructureMemoryInfoKHR {
+    VkStructureType               sType;
+    const void*                   pNext;
+    VkAccelerationStructureKHR    accelerationStructure;
+    VkDeviceMemory                memory;
+    VkDeviceSize                  memoryOffset;
+    deUint32                      deviceIndexCount;
+    const deUint32*               pDeviceIndices;
+} VkBindAccelerationStructureMemoryInfoKHR;
 
-typedef struct VkWriteDescriptorSetAccelerationStructureNV {
-    VkStructureType                     sType;
-    const void*                         pNext;
-    deUint32                            accelerationStructureCount;
-    const VkAccelerationStructureNV*    pAccelerationStructures;
-} VkWriteDescriptorSetAccelerationStructureNV;
+typedef VkBindAccelerationStructureMemoryInfoKHR VkBindAccelerationStructureMemoryInfoNV;
+
+typedef struct VkWriteDescriptorSetAccelerationStructureKHR {
+    VkStructureType                      sType;
+    const void*                          pNext;
+    deUint32                             accelerationStructureCount;
+    const VkAccelerationStructureKHR*    pAccelerationStructures;
+} VkWriteDescriptorSetAccelerationStructureKHR;
+
+typedef VkWriteDescriptorSetAccelerationStructureKHR VkWriteDescriptorSetAccelerationStructureNV;
 
 typedef struct VkAccelerationStructureMemoryRequirementsInfoNV {
     VkStructureType                                    sType;
@@ -9474,17 +9203,49 @@
     deUint32           maxDescriptorSetAccelerationStructures;
 } VkPhysicalDeviceRayTracingPropertiesNV;
 
+typedef struct VkTransformMatrixKHR {
+    float    matrix[3][4];
+} VkTransformMatrixKHR;
+
+typedef VkTransformMatrixKHR VkTransformMatrixNV;
+
+typedef struct VkAabbPositionsKHR {
+    float    minX;
+    float    minY;
+    float    minZ;
+    float    maxX;
+    float    maxY;
+    float    maxZ;
+} VkAabbPositionsKHR;
+
+typedef VkAabbPositionsKHR VkAabbPositionsNV;
+
+typedef struct VkAccelerationStructureInstanceKHR {
+    VkTransformMatrixKHR          transform;
+    deUint32                      instanceCustomIndex:24;
+    deUint32                      mask:8;
+    deUint32                      instanceShaderBindingTableRecordOffset:24;
+    VkGeometryInstanceFlagsKHR    flags:8;
+    deUint64                      accelerationStructureReference;
+} VkAccelerationStructureInstanceKHR;
+
+typedef VkAccelerationStructureInstanceKHR VkAccelerationStructureInstanceNV;
+
 typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure);
-typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator);
+typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureKHR)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator);
+typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator);
 typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements);
-typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, deUint32 bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
-typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureNV)(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset);
-typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeNV mode);
+typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryKHR)(VkDevice device, deUint32 bindInfoCount, const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos);
+typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, deUint32 bindInfoCount, const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos);
+typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureNV)(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureKHR dst, VkAccelerationStructureKHR src, VkBuffer scratch, VkDeviceSize scratchOffset);
+typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureKHR dst, VkAccelerationStructureKHR src, VkCopyAccelerationStructureModeKHR mode);
 typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysNV)(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, deUint32 width, deUint32 height, deUint32 depth);
 typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesNV)(VkDevice device, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
+typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, deUint32 firstGroup, deUint32 groupCount, deUintptr dataSize, void* pData);
 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesNV)(VkDevice device, VkPipeline pipeline, deUint32 firstGroup, deUint32 groupCount, deUintptr dataSize, void* pData);
-typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, deUintptr dataSize, void* pData);
-typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, deUint32 accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, deUint32 firstQuery);
+typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, deUintptr dataSize, void* pData);
+typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)(VkCommandBuffer commandBuffer, deUint32 accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, deUint32 firstQuery);
+typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, deUint32 accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, deUint32 firstQuery);
 typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNV)(VkDevice device, VkPipeline pipeline, deUint32 shader);
 
 #ifndef VK_NO_PROTOTYPES
@@ -9494,9 +9255,14 @@
     const VkAllocationCallbacks*                pAllocator,
     VkAccelerationStructureNV*                  pAccelerationStructure);
 
+VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureKHR(
+    VkDevice                                    device,
+    VkAccelerationStructureKHR                  accelerationStructure,
+    const VkAllocationCallbacks*                pAllocator);
+
 VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNV(
     VkDevice                                    device,
-    VkAccelerationStructureNV                   accelerationStructure,
+    VkAccelerationStructureKHR                  accelerationStructure,
     const VkAllocationCallbacks*                pAllocator);
 
 VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNV(
@@ -9504,10 +9270,15 @@
     const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
     VkMemoryRequirements2KHR*                   pMemoryRequirements);
 
+VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryKHR(
+    VkDevice                                    device,
+    deUint32                                    bindInfoCount,
+    const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos);
+
 VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNV(
     VkDevice                                    device,
     deUint32                                    bindInfoCount,
-    const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
+    const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos);
 
 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNV(
     VkCommandBuffer                             commandBuffer,
@@ -9515,16 +9286,16 @@
     VkBuffer                                    instanceData,
     VkDeviceSize                                instanceOffset,
     VkBool32                                    update,
-    VkAccelerationStructureNV                   dst,
-    VkAccelerationStructureNV                   src,
+    VkAccelerationStructureKHR                  dst,
+    VkAccelerationStructureKHR                  src,
     VkBuffer                                    scratch,
     VkDeviceSize                                scratchOffset);
 
 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNV(
     VkCommandBuffer                             commandBuffer,
-    VkAccelerationStructureNV                   dst,
-    VkAccelerationStructureNV                   src,
-    VkCopyAccelerationStructureModeNV           mode);
+    VkAccelerationStructureKHR                  dst,
+    VkAccelerationStructureKHR                  src,
+    VkCopyAccelerationStructureModeKHR          mode);
 
 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNV(
     VkCommandBuffer                             commandBuffer,
@@ -9551,6 +9322,14 @@
     const VkAllocationCallbacks*                pAllocator,
     VkPipeline*                                 pPipelines);
 
+VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesKHR(
+    VkDevice                                    device,
+    VkPipeline                                  pipeline,
+    deUint32                                    firstGroup,
+    deUint32                                    groupCount,
+    deUintptr                                      dataSize,
+    void*                                       pData);
+
 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesNV(
     VkDevice                                    device,
     VkPipeline                                  pipeline,
@@ -9561,14 +9340,22 @@
 
 VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNV(
     VkDevice                                    device,
-    VkAccelerationStructureNV                   accelerationStructure,
+    VkAccelerationStructureKHR                  accelerationStructure,
     deUintptr                                      dataSize,
     void*                                       pData);
 
+VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesKHR(
+    VkCommandBuffer                             commandBuffer,
+    deUint32                                    accelerationStructureCount,
+    const VkAccelerationStructureKHR*           pAccelerationStructures,
+    VkQueryType                                 queryType,
+    VkQueryPool                                 queryPool,
+    deUint32                                    firstQuery);
+
 VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesNV(
     VkCommandBuffer                             commandBuffer,
     deUint32                                    accelerationStructureCount,
-    const VkAccelerationStructureNV*            pAccelerationStructures,
+    const VkAccelerationStructureKHR*           pAccelerationStructures,
     VkQueryType                                 queryType,
     VkQueryPool                                 queryPool,
     deUint32                                    firstQuery);
@@ -9615,6 +9402,11 @@
 
 
 
+#define VK_QCOM_render_pass_shader_resolve 1
+#define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION 4
+#define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME "VK_QCOM_render_pass_shader_resolve"
+
+
 #define VK_EXT_global_priority 1
 #define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2
 #define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
@@ -9624,9 +9416,6 @@
     VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256,
     VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512,
     VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024,
-    VK_QUEUE_GLOBAL_PRIORITY_BEGIN_RANGE_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT,
-    VK_QUEUE_GLOBAL_PRIORITY_END_RANGE_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT,
-    VK_QUEUE_GLOBAL_PRIORITY_RANGE_SIZE_EXT = (VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT - VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT + 1),
     VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkQueueGlobalPriorityEXT;
 typedef struct VkDeviceQueueGlobalPriorityCreateInfoEXT {
@@ -9710,9 +9499,6 @@
     VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1,
     VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2,
     VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3,
-    VK_TIME_DOMAIN_BEGIN_RANGE_EXT = VK_TIME_DOMAIN_DEVICE_EXT,
-    VK_TIME_DOMAIN_END_RANGE_EXT = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT,
-    VK_TIME_DOMAIN_RANGE_SIZE_EXT = (VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT - VK_TIME_DOMAIN_DEVICE_EXT + 1),
     VK_TIME_DOMAIN_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkTimeDomainEXT;
 typedef struct VkCalibratedTimestampInfoEXT {
@@ -9771,9 +9557,6 @@
     VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0,
     VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1,
     VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2,
-    VK_MEMORY_OVERALLOCATION_BEHAVIOR_BEGIN_RANGE_AMD = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD,
-    VK_MEMORY_OVERALLOCATION_BEHAVIOR_END_RANGE_AMD = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD,
-    VK_MEMORY_OVERALLOCATION_BEHAVIOR_RANGE_SIZE_AMD = (VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD + 1),
     VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 0x7FFFFFFF
 } VkMemoryOverallocationBehaviorAMD;
 typedef struct VkDeviceMemoryOverallocationCreateInfoAMD {
@@ -10011,40 +9794,28 @@
 
 #define VK_INTEL_performance_query 1
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL)
-#define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 1
+#define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 2
 #define VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME "VK_INTEL_performance_query"
 
 typedef enum VkPerformanceConfigurationTypeINTEL {
     VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0,
-    VK_PERFORMANCE_CONFIGURATION_TYPE_BEGIN_RANGE_INTEL = VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL,
-    VK_PERFORMANCE_CONFIGURATION_TYPE_END_RANGE_INTEL = VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL,
-    VK_PERFORMANCE_CONFIGURATION_TYPE_RANGE_SIZE_INTEL = (VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL - VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL + 1),
     VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
 } VkPerformanceConfigurationTypeINTEL;
 
 typedef enum VkQueryPoolSamplingModeINTEL {
     VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0,
-    VK_QUERY_POOL_SAMPLING_MODE_BEGIN_RANGE_INTEL = VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL,
-    VK_QUERY_POOL_SAMPLING_MODE_END_RANGE_INTEL = VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL,
-    VK_QUERY_POOL_SAMPLING_MODE_RANGE_SIZE_INTEL = (VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL - VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL + 1),
     VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 0x7FFFFFFF
 } VkQueryPoolSamplingModeINTEL;
 
 typedef enum VkPerformanceOverrideTypeINTEL {
     VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0,
     VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1,
-    VK_PERFORMANCE_OVERRIDE_TYPE_BEGIN_RANGE_INTEL = VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL,
-    VK_PERFORMANCE_OVERRIDE_TYPE_END_RANGE_INTEL = VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL,
-    VK_PERFORMANCE_OVERRIDE_TYPE_RANGE_SIZE_INTEL = (VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL - VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL + 1),
     VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
 } VkPerformanceOverrideTypeINTEL;
 
 typedef enum VkPerformanceParameterTypeINTEL {
     VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0,
     VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1,
-    VK_PERFORMANCE_PARAMETER_TYPE_BEGIN_RANGE_INTEL = VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL,
-    VK_PERFORMANCE_PARAMETER_TYPE_END_RANGE_INTEL = VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL,
-    VK_PERFORMANCE_PARAMETER_TYPE_RANGE_SIZE_INTEL = (VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL - VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL + 1),
     VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
 } VkPerformanceParameterTypeINTEL;
 
@@ -10054,9 +9825,6 @@
     VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2,
     VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3,
     VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4,
-    VK_PERFORMANCE_VALUE_TYPE_BEGIN_RANGE_INTEL = VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL,
-    VK_PERFORMANCE_VALUE_TYPE_END_RANGE_INTEL = VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL,
-    VK_PERFORMANCE_VALUE_TYPE_RANGE_SIZE_INTEL = (VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL - VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL + 1),
     VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
 } VkPerformanceValueTypeINTEL;
 typedef union VkPerformanceValueDataINTEL {
@@ -10078,11 +9846,13 @@
     void*              pUserData;
 } VkInitializePerformanceApiInfoINTEL;
 
-typedef struct VkQueryPoolCreateInfoINTEL {
+typedef struct VkQueryPoolPerformanceQueryCreateInfoINTEL {
     VkStructureType                 sType;
     const void*                     pNext;
     VkQueryPoolSamplingModeINTEL    performanceCountersSampling;
-} VkQueryPoolCreateInfoINTEL;
+} VkQueryPoolPerformanceQueryCreateInfoINTEL;
+
+typedef VkQueryPoolPerformanceQueryCreateInfoINTEL VkQueryPoolCreateInfoINTEL;
 
 typedef struct VkPerformanceMarkerInfoINTEL {
     VkStructureType    sType;
@@ -10411,16 +10181,14 @@
 
 
 #define VK_EXT_validation_features 1
-#define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 2
+#define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 3
 #define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features"
 
 typedef enum VkValidationFeatureEnableEXT {
     VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0,
     VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1,
     VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2,
-    VK_VALIDATION_FEATURE_ENABLE_BEGIN_RANGE_EXT = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT,
-    VK_VALIDATION_FEATURE_ENABLE_END_RANGE_EXT = VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT,
-    VK_VALIDATION_FEATURE_ENABLE_RANGE_SIZE_EXT = (VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT + 1),
+    VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3,
     VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkValidationFeatureEnableEXT;
 
@@ -10432,9 +10200,6 @@
     VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4,
     VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5,
     VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6,
-    VK_VALIDATION_FEATURE_DISABLE_BEGIN_RANGE_EXT = VK_VALIDATION_FEATURE_DISABLE_ALL_EXT,
-    VK_VALIDATION_FEATURE_DISABLE_END_RANGE_EXT = VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT,
-    VK_VALIDATION_FEATURE_DISABLE_RANGE_SIZE_EXT = (VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT - VK_VALIDATION_FEATURE_DISABLE_ALL_EXT + 1),
     VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkValidationFeatureDisableEXT;
 typedef struct VkValidationFeaturesEXT {
@@ -10464,9 +10229,6 @@
     VK_COMPONENT_TYPE_UINT16_NV = 8,
     VK_COMPONENT_TYPE_UINT32_NV = 9,
     VK_COMPONENT_TYPE_UINT64_NV = 10,
-    VK_COMPONENT_TYPE_BEGIN_RANGE_NV = VK_COMPONENT_TYPE_FLOAT16_NV,
-    VK_COMPONENT_TYPE_END_RANGE_NV = VK_COMPONENT_TYPE_UINT64_NV,
-    VK_COMPONENT_TYPE_RANGE_SIZE_NV = (VK_COMPONENT_TYPE_UINT64_NV - VK_COMPONENT_TYPE_FLOAT16_NV + 1),
     VK_COMPONENT_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
 } VkComponentTypeNV;
 
@@ -10475,9 +10237,6 @@
     VK_SCOPE_WORKGROUP_NV = 2,
     VK_SCOPE_SUBGROUP_NV = 3,
     VK_SCOPE_QUEUE_FAMILY_NV = 5,
-    VK_SCOPE_BEGIN_RANGE_NV = VK_SCOPE_DEVICE_NV,
-    VK_SCOPE_END_RANGE_NV = VK_SCOPE_QUEUE_FAMILY_NV,
-    VK_SCOPE_RANGE_SIZE_NV = (VK_SCOPE_QUEUE_FAMILY_NV - VK_SCOPE_DEVICE_NV + 1),
     VK_SCOPE_MAX_ENUM_NV = 0x7FFFFFFF
 } VkScopeNV;
 typedef struct VkCooperativeMatrixPropertiesNV {
@@ -10523,9 +10282,6 @@
 typedef enum VkCoverageReductionModeNV {
     VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0,
     VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1,
-    VK_COVERAGE_REDUCTION_MODE_BEGIN_RANGE_NV = VK_COVERAGE_REDUCTION_MODE_MERGE_NV,
-    VK_COVERAGE_REDUCTION_MODE_END_RANGE_NV = VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV,
-    VK_COVERAGE_REDUCTION_MODE_RANGE_SIZE_NV = (VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV - VK_COVERAGE_REDUCTION_MODE_MERGE_NV + 1),
     VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
 } VkCoverageReductionModeNV;
 typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV;
@@ -10615,9 +10371,6 @@
     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1,
     VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2,
     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3,
-    VK_LINE_RASTERIZATION_MODE_BEGIN_RANGE_EXT = VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT,
-    VK_LINE_RASTERIZATION_MODE_END_RANGE_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT,
-    VK_LINE_RASTERIZATION_MODE_RANGE_SIZE_EXT = (VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT - VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT + 1),
     VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkLineRasterizationModeEXT;
 typedef struct VkPhysicalDeviceLineRasterizationFeaturesEXT {
@@ -10683,6 +10436,90 @@
 
 
 
+#define VK_EXT_extended_dynamic_state 1
+#define VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION 1
+#define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state"
+typedef struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           extendedDynamicState;
+} VkPhysicalDeviceExtendedDynamicStateFeaturesEXT;
+
+typedef void (VKAPI_PTR *PFN_vkCmdSetCullModeEXT)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
+typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFaceEXT)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
+typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopologyEXT)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
+typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCountEXT)(VkCommandBuffer commandBuffer, deUint32 viewportCount, const VkViewport* pViewports);
+typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCountEXT)(VkCommandBuffer commandBuffer, deUint32 scissorCount, const VkRect2D* pScissors);
+typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers2EXT)(VkCommandBuffer commandBuffer, deUint32 firstBinding, deUint32 bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides);
+typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
+typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
+typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOpEXT)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
+typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
+typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
+typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOpEXT)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR void VKAPI_CALL vkCmdSetCullModeEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkCullModeFlags                             cullMode);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFaceEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkFrontFace                                 frontFace);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopologyEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkPrimitiveTopology                         primitiveTopology);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCountEXT(
+    VkCommandBuffer                             commandBuffer,
+    deUint32                                    viewportCount,
+    const VkViewport*                           pViewports);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCountEXT(
+    VkCommandBuffer                             commandBuffer,
+    deUint32                                    scissorCount,
+    const VkRect2D*                             pScissors);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2EXT(
+    VkCommandBuffer                             commandBuffer,
+    deUint32                                    firstBinding,
+    deUint32                                    bindingCount,
+    const VkBuffer*                             pBuffers,
+    const VkDeviceSize*                         pOffsets,
+    const VkDeviceSize*                         pSizes,
+    const VkDeviceSize*                         pStrides);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnableEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkBool32                                    depthTestEnable);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnableEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkBool32                                    depthWriteEnable);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOpEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkCompareOp                                 depthCompareOp);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnableEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkBool32                                    depthBoundsTestEnable);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnableEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkBool32                                    stencilTestEnable);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOpEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkStencilFaceFlags                          faceMask,
+    VkStencilOp                                 failOp,
+    VkStencilOp                                 passOp,
+    VkStencilOp                                 depthFailOp,
+    VkCompareOp                                 compareOp);
+#endif
+
+
 #define VK_EXT_shader_demote_to_helper_invocation 1
 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1
 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation"
@@ -10694,6 +10531,196 @@
 
 
 
+#define VK_NV_device_generated_commands 1
+VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNV)
+#define VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
+#define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands"
+
+typedef enum VkIndirectCommandsTokenTypeNV {
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
+} VkIndirectCommandsTokenTypeNV;
+
+typedef enum VkIndirectStateFlagBitsNV {
+    VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 0x00000001,
+    VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
+} VkIndirectStateFlagBitsNV;
+typedef VkFlags VkIndirectStateFlagsNV;
+
+typedef enum VkIndirectCommandsLayoutUsageFlagBitsNV {
+    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 0x00000001,
+    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 0x00000002,
+    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 0x00000004,
+    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
+} VkIndirectCommandsLayoutUsageFlagBitsNV;
+typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNV;
+typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
+    VkStructureType    sType;
+    void*              pNext;
+    deUint32           maxGraphicsShaderGroupCount;
+    deUint32           maxIndirectSequenceCount;
+    deUint32           maxIndirectCommandsTokenCount;
+    deUint32           maxIndirectCommandsStreamCount;
+    deUint32           maxIndirectCommandsTokenOffset;
+    deUint32           maxIndirectCommandsStreamStride;
+    deUint32           minSequencesCountBufferOffsetAlignment;
+    deUint32           minSequencesIndexBufferOffsetAlignment;
+    deUint32           minIndirectCommandsBufferOffsetAlignment;
+} VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
+
+typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           deviceGeneratedCommands;
+} VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
+
+typedef struct VkGraphicsShaderGroupCreateInfoNV {
+    VkStructureType                                 sType;
+    const void*                                     pNext;
+    deUint32                                        stageCount;
+    const VkPipelineShaderStageCreateInfo*          pStages;
+    const VkPipelineVertexInputStateCreateInfo*     pVertexInputState;
+    const VkPipelineTessellationStateCreateInfo*    pTessellationState;
+} VkGraphicsShaderGroupCreateInfoNV;
+
+typedef struct VkGraphicsPipelineShaderGroupsCreateInfoNV {
+    VkStructureType                             sType;
+    const void*                                 pNext;
+    deUint32                                    groupCount;
+    const VkGraphicsShaderGroupCreateInfoNV*    pGroups;
+    deUint32                                    pipelineCount;
+    const VkPipeline*                           pPipelines;
+} VkGraphicsPipelineShaderGroupsCreateInfoNV;
+
+typedef struct VkBindShaderGroupIndirectCommandNV {
+    deUint32    groupIndex;
+} VkBindShaderGroupIndirectCommandNV;
+
+typedef struct VkBindIndexBufferIndirectCommandNV {
+    VkDeviceAddress    bufferAddress;
+    deUint32           size;
+    VkIndexType        indexType;
+} VkBindIndexBufferIndirectCommandNV;
+
+typedef struct VkBindVertexBufferIndirectCommandNV {
+    VkDeviceAddress    bufferAddress;
+    deUint32           size;
+    deUint32           stride;
+} VkBindVertexBufferIndirectCommandNV;
+
+typedef struct VkSetStateFlagsIndirectCommandNV {
+    deUint32    data;
+} VkSetStateFlagsIndirectCommandNV;
+
+typedef struct VkIndirectCommandsStreamNV {
+    VkBuffer        buffer;
+    VkDeviceSize    offset;
+} VkIndirectCommandsStreamNV;
+
+typedef struct VkIndirectCommandsLayoutTokenNV {
+    VkStructureType                  sType;
+    const void*                      pNext;
+    VkIndirectCommandsTokenTypeNV    tokenType;
+    deUint32                         stream;
+    deUint32                         offset;
+    deUint32                         vertexBindingUnit;
+    VkBool32                         vertexDynamicStride;
+    VkPipelineLayout                 pushconstantPipelineLayout;
+    VkShaderStageFlags               pushconstantShaderStageFlags;
+    deUint32                         pushconstantOffset;
+    deUint32                         pushconstantSize;
+    VkIndirectStateFlagsNV           indirectStateFlags;
+    deUint32                         indexTypeCount;
+    const VkIndexType*               pIndexTypes;
+    const deUint32*                  pIndexTypeValues;
+} VkIndirectCommandsLayoutTokenNV;
+
+typedef struct VkIndirectCommandsLayoutCreateInfoNV {
+    VkStructureType                           sType;
+    const void*                               pNext;
+    VkIndirectCommandsLayoutUsageFlagsNV      flags;
+    VkPipelineBindPoint                       pipelineBindPoint;
+    deUint32                                  tokenCount;
+    const VkIndirectCommandsLayoutTokenNV*    pTokens;
+    deUint32                                  streamCount;
+    const deUint32*                           pStreamStrides;
+} VkIndirectCommandsLayoutCreateInfoNV;
+
+typedef struct VkGeneratedCommandsInfoNV {
+    VkStructureType                      sType;
+    const void*                          pNext;
+    VkPipelineBindPoint                  pipelineBindPoint;
+    VkPipeline                           pipeline;
+    VkIndirectCommandsLayoutNV           indirectCommandsLayout;
+    deUint32                             streamCount;
+    const VkIndirectCommandsStreamNV*    pStreams;
+    deUint32                             sequencesCount;
+    VkBuffer                             preprocessBuffer;
+    VkDeviceSize                         preprocessOffset;
+    VkDeviceSize                         preprocessSize;
+    VkBuffer                             sequencesCountBuffer;
+    VkDeviceSize                         sequencesCountOffset;
+    VkBuffer                             sequencesIndexBuffer;
+    VkDeviceSize                         sequencesIndexOffset;
+} VkGeneratedCommandsInfoNV;
+
+typedef struct VkGeneratedCommandsMemoryRequirementsInfoNV {
+    VkStructureType               sType;
+    const void*                   pNext;
+    VkPipelineBindPoint           pipelineBindPoint;
+    VkPipeline                    pipeline;
+    VkIndirectCommandsLayoutNV    indirectCommandsLayout;
+    deUint32                      maxSequencesCount;
+} VkGeneratedCommandsMemoryRequirementsInfoNV;
+
+typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsNV)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements);
+typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsNV)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
+typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsNV)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
+typedef void (VKAPI_PTR *PFN_vkCmdBindPipelineShaderGroupNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, deUint32 groupIndex);
+typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNV)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout);
+typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNV)(VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsNV(
+    VkDevice                                    device,
+    const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo,
+    VkMemoryRequirements2*                      pMemoryRequirements);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsNV(
+    VkCommandBuffer                             commandBuffer,
+    const VkGeneratedCommandsInfoNV*            pGeneratedCommandsInfo);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsNV(
+    VkCommandBuffer                             commandBuffer,
+    VkBool32                                    isPreprocessed,
+    const VkGeneratedCommandsInfoNV*            pGeneratedCommandsInfo);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdBindPipelineShaderGroupNV(
+    VkCommandBuffer                             commandBuffer,
+    VkPipelineBindPoint                         pipelineBindPoint,
+    VkPipeline                                  pipeline,
+    deUint32                                    groupIndex);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNV(
+    VkDevice                                    device,
+    const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
+    const VkAllocationCallbacks*                pAllocator,
+    VkIndirectCommandsLayoutNV*                 pIndirectCommandsLayout);
+
+VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNV(
+    VkDevice                                    device,
+    VkIndirectCommandsLayoutNV                  indirectCommandsLayout,
+    const VkAllocationCallbacks*                pAllocator);
+#endif
+
+
 #define VK_EXT_texel_buffer_alignment 1
 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1
 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
@@ -10714,10 +10741,194 @@
 
 
 
+#define VK_QCOM_render_pass_transform 1
+#define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 1
+#define VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME "VK_QCOM_render_pass_transform"
+typedef struct VkRenderPassTransformBeginInfoQCOM {
+    VkStructureType                  sType;
+    void*                            pNext;
+    VkSurfaceTransformFlagBitsKHR    transform;
+} VkRenderPassTransformBeginInfoQCOM;
+
+typedef struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM {
+    VkStructureType                  sType;
+    void*                            pNext;
+    VkSurfaceTransformFlagBitsKHR    transform;
+    VkRect2D                         renderArea;
+} VkCommandBufferInheritanceRenderPassTransformInfoQCOM;
+
+
+
+#define VK_EXT_robustness2 1
+#define VK_EXT_ROBUSTNESS_2_SPEC_VERSION  1
+#define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2"
+typedef struct VkPhysicalDeviceRobustness2FeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           robustBufferAccess2;
+    VkBool32           robustImageAccess2;
+    VkBool32           nullDescriptor;
+} VkPhysicalDeviceRobustness2FeaturesEXT;
+
+typedef struct VkPhysicalDeviceRobustness2PropertiesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkDeviceSize       robustStorageBufferAccessSizeAlignment;
+    VkDeviceSize       robustUniformBufferAccessSizeAlignment;
+} VkPhysicalDeviceRobustness2PropertiesEXT;
+
+
+
+#define VK_EXT_custom_border_color 1
+#define VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION 12
+#define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color"
+typedef struct VkSamplerCustomBorderColorCreateInfoEXT {
+    VkStructureType      sType;
+    const void*          pNext;
+    VkClearColorValue    customBorderColor;
+    VkFormat             format;
+} VkSamplerCustomBorderColorCreateInfoEXT;
+
+typedef struct VkPhysicalDeviceCustomBorderColorPropertiesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    deUint32           maxCustomBorderColorSamplers;
+} VkPhysicalDeviceCustomBorderColorPropertiesEXT;
+
+typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           customBorderColors;
+    VkBool32           customBorderColorWithoutFormat;
+} VkPhysicalDeviceCustomBorderColorFeaturesEXT;
+
+
+
 #define VK_GOOGLE_user_type 1
 #define VK_GOOGLE_USER_TYPE_SPEC_VERSION  1
 #define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type"
 
+
+#define VK_EXT_private_data 1
+VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlotEXT)
+#define VK_EXT_PRIVATE_DATA_SPEC_VERSION  1
+#define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data"
+
+typedef enum VkPrivateDataSlotCreateFlagBitsEXT {
+    VK_PRIVATE_DATA_SLOT_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
+} VkPrivateDataSlotCreateFlagBitsEXT;
+typedef VkFlags VkPrivateDataSlotCreateFlagsEXT;
+typedef struct VkPhysicalDevicePrivateDataFeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           privateData;
+} VkPhysicalDevicePrivateDataFeaturesEXT;
+
+typedef struct VkDevicePrivateDataCreateInfoEXT {
+    VkStructureType    sType;
+    const void*        pNext;
+    deUint32           privateDataSlotRequestCount;
+} VkDevicePrivateDataCreateInfoEXT;
+
+typedef struct VkPrivateDataSlotCreateInfoEXT {
+    VkStructureType                    sType;
+    const void*                        pNext;
+    VkPrivateDataSlotCreateFlagsEXT    flags;
+} VkPrivateDataSlotCreateInfoEXT;
+
+typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlotEXT)(VkDevice device, const VkPrivateDataSlotCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlotEXT* pPrivateDataSlot);
+typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlotEXT)(VkDevice device, VkPrivateDataSlotEXT privateDataSlot, const VkAllocationCallbacks* pAllocator);
+typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateDataEXT)(VkDevice device, VkObjectType objectType, deUint64 objectHandle, VkPrivateDataSlotEXT privateDataSlot, deUint64 data);
+typedef void (VKAPI_PTR *PFN_vkGetPrivateDataEXT)(VkDevice device, VkObjectType objectType, deUint64 objectHandle, VkPrivateDataSlotEXT privateDataSlot, deUint64* pData);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlotEXT(
+    VkDevice                                    device,
+    const VkPrivateDataSlotCreateInfoEXT*       pCreateInfo,
+    const VkAllocationCallbacks*                pAllocator,
+    VkPrivateDataSlotEXT*                       pPrivateDataSlot);
+
+VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlotEXT(
+    VkDevice                                    device,
+    VkPrivateDataSlotEXT                        privateDataSlot,
+    const VkAllocationCallbacks*                pAllocator);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateDataEXT(
+    VkDevice                                    device,
+    VkObjectType                                objectType,
+    deUint64                                    objectHandle,
+    VkPrivateDataSlotEXT                        privateDataSlot,
+    deUint64                                    data);
+
+VKAPI_ATTR void VKAPI_CALL vkGetPrivateDataEXT(
+    VkDevice                                    device,
+    VkObjectType                                objectType,
+    deUint64                                    objectHandle,
+    VkPrivateDataSlotEXT                        privateDataSlot,
+    deUint64*                                   pData);
+#endif
+
+
+#define VK_EXT_pipeline_creation_cache_control 1
+#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3
+#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control"
+typedef struct VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           pipelineCreationCacheControl;
+} VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT;
+
+
+
+#define VK_NV_device_diagnostics_config 1
+#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 1
+#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME "VK_NV_device_diagnostics_config"
+
+typedef enum VkDeviceDiagnosticsConfigFlagBitsNV {
+    VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 0x00000001,
+    VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 0x00000002,
+    VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 0x00000004,
+    VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
+} VkDeviceDiagnosticsConfigFlagBitsNV;
+typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV;
+typedef struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           diagnosticsConfig;
+} VkPhysicalDeviceDiagnosticsConfigFeaturesNV;
+
+typedef struct VkDeviceDiagnosticsConfigCreateInfoNV {
+    VkStructureType                     sType;
+    const void*                         pNext;
+    VkDeviceDiagnosticsConfigFlagsNV    flags;
+} VkDeviceDiagnosticsConfigCreateInfoNV;
+
+
+
+#define VK_QCOM_render_pass_store_ops 1
+#define VK_QCOM_render_pass_store_ops_SPEC_VERSION 2
+#define VK_QCOM_render_pass_store_ops_EXTENSION_NAME "VK_QCOM_render_pass_store_ops"
+
+
+#define VK_EXT_fragment_density_map2 1
+#define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1
+#define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
+typedef struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           fragmentDensityMapDeferred;
+} VkPhysicalDeviceFragmentDensityMap2FeaturesEXT;
+
+typedef struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           subsampledLoads;
+    VkBool32           subsampledCoarseReconstructionEarlyAccess;
+    deUint32           maxSubsampledArrayLayers;
+    deUint32           maxDescriptorSetSubsampledSamplers;
+} VkPhysicalDeviceFragmentDensityMap2PropertiesEXT;
+
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/external/vulkancts/modules/vulkan/CMakeLists.txt b/external/vulkancts/modules/vulkan/CMakeLists.txt
index a65120a..842668d 100644
--- a/external/vulkancts/modules/vulkan/CMakeLists.txt
+++ b/external/vulkancts/modules/vulkan/CMakeLists.txt
@@ -38,6 +38,8 @@
 add_subdirectory(imageless_framebuffer)
 add_subdirectory(descriptor_indexing)
 add_subdirectory(fragment_shader_interlock)
+add_subdirectory(modifiers)
+
 
 include_directories(
 	api
@@ -78,6 +80,7 @@
 	imageless_framebuffer
 	descriptor_indexing
 	fragment_shader_interlock
+	modifiers
 	)
 
 set(DEQP_VK_SRCS
@@ -139,6 +142,7 @@
 	deqp-vk-transform-feedback
 	deqp-vk-descriptor-indexing
 	deqp-vk-fragment-shader-interlock
+	deqp-vk-modifiers
 	)
 
 if (DE_COMPILER_IS_MSC AND (DE_PTR_SIZE EQUAL 4))
diff --git a/external/vulkancts/modules/vulkan/amber/CMakeLists.txt b/external/vulkancts/modules/vulkan/amber/CMakeLists.txt
index 158cd0c..e8bf139 100644
--- a/external/vulkancts/modules/vulkan/amber/CMakeLists.txt
+++ b/external/vulkancts/modules/vulkan/amber/CMakeLists.txt
@@ -12,6 +12,8 @@
 	vktAmberExampleTests.cpp
 	vktAmberGraphicsFuzzTests.hpp
 	vktAmberGraphicsFuzzTests.cpp
+	vktAmberGlslTests.hpp
+	vktAmberGlslTests.cpp
 	)
 
 set(DEQP_VK_AMBER_LIBS
diff --git a/external/vulkancts/modules/vulkan/amber/vktAmberGlslTests.cpp b/external/vulkancts/modules/vulkan/amber/vktAmberGlslTests.cpp
new file mode 100644
index 0000000..727aee7
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/amber/vktAmberGlslTests.cpp
@@ -0,0 +1,55 @@
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2020 Valve Corporation.
+ * Copyright (c) 2020 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Amber tests in the GLSL group.
+ *//*--------------------------------------------------------------------*/
+
+#include "vktAmberGlslTests.hpp"
+#include "vktAmberTestCase.hpp"
+
+#include <vector>
+#include <utility>
+#include <string>
+
+namespace vkt
+{
+namespace cts_amber
+{
+
+tcu::TestCaseGroup*	createCombinedOperationsGroup (tcu::TestContext& testCtx)
+{
+	static const std::string										kGroupName				= "combined_operations";
+	static const std::vector<std::pair<std::string, std::string>>	combinedOperationsTests	=
+	{
+		{ "notxor",			"Bitwise negation of a bitwise xor operation"		},
+		{ "negintdivand",	"Bitwise and of a negative value that was divided"	},
+	};
+
+	de::MovePtr<tcu::TestCaseGroup> group{new tcu::TestCaseGroup{testCtx, kGroupName.c_str(), "Combined operations test group"}};
+	for (const auto& test : combinedOperationsTests)
+	{
+		group->addChild(createAmberTestCase(testCtx, test.first.c_str(), test.second.c_str(), kGroupName.c_str(), test.first + ".amber"));
+	}
+	return group.release();
+}
+
+} // cts_amber
+} // vkt
diff --git a/external/vulkancts/modules/vulkan/amber/vktAmberGlslTests.hpp b/external/vulkancts/modules/vulkan/amber/vktAmberGlslTests.hpp
new file mode 100644
index 0000000..d4050c4
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/amber/vktAmberGlslTests.hpp
@@ -0,0 +1,40 @@
+#ifndef _VKTAMBERGLSLTESTS_HPP
+#define _VKTAMBERGLSLTESTS_HPP
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2020 Valve Corporation.
+ * Copyright (c) 2020 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Amber tests in the GLSL group.
+ *//*--------------------------------------------------------------------*/
+
+#include "tcuDefs.hpp"
+#include "tcuTestCase.hpp"
+
+namespace vkt
+{
+namespace cts_amber
+{
+
+tcu::TestCaseGroup* createCombinedOperationsGroup	(tcu::TestContext&);
+
+} // cts_amber
+} // vkt
+
+#endif // _VKTAMBERGLSLTESTS_HPP
diff --git a/external/vulkancts/modules/vulkan/amber/vktAmberTestCase.cpp b/external/vulkancts/modules/vulkan/amber/vktAmberTestCase.cpp
index 12793b2..299752b 100644
--- a/external/vulkancts/modules/vulkan/amber/vktAmberTestCase.cpp
+++ b/external/vulkancts/modules/vulkan/amber/vktAmberTestCase.cpp
@@ -88,6 +88,8 @@
 		return ctx.getDeviceFeatures().geometryShader;
 	if (feature == "Features.vertexPipelineStoresAndAtomics")
 		return ctx.getDeviceFeatures().vertexPipelineStoresAndAtomics;
+	if (feature == "Features.fillModeNonSolid")
+		return ctx.getDeviceFeatures().fillModeNonSolid;
 	if (feature == "VariablePointerFeatures.variablePointersStorageBuffer")
 		return ctx.getVariablePointersFeatures().variablePointersStorageBuffer;
 	if (feature == "VariablePointerFeatures.variablePointers")
diff --git a/external/vulkancts/modules/vulkan/api/CMakeLists.txt b/external/vulkancts/modules/vulkan/api/CMakeLists.txt
index 0fd6c24..1a6b782 100644
--- a/external/vulkancts/modules/vulkan/api/CMakeLists.txt
+++ b/external/vulkancts/modules/vulkan/api/CMakeLists.txt
@@ -60,6 +60,8 @@
 	vktApiPipelineTests.cpp
 	vktApiMemoryRequirementInvarianceTests.cpp
 	vktApiMemoryRequirementInvarianceTests.hpp
+    vktApiToolingInfoTests.cpp
+    vktApiToolingInfoTests.hpp
 	)
 
 set(DEQP_VK_API_LIBS
diff --git a/external/vulkancts/modules/vulkan/api/vktApiCopiesAndBlittingTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiCopiesAndBlittingTests.cpp
index 816972f..f383a54 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiCopiesAndBlittingTests.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiCopiesAndBlittingTests.cpp
@@ -2127,7 +2127,7 @@
 	virtual void						copyRegionToTextureLevel		(tcu::ConstPixelBufferAccess src, tcu::PixelBufferAccess dst, CopyRegion region, deUint32 mipLevel = 0u);
 	virtual void						generateExpectedResult			(void);
 private:
-	bool								checkLinearFilteredResult		(const tcu::ConstPixelBufferAccess&	result,
+	bool								checkNonNearestFilteredResult	(const tcu::ConstPixelBufferAccess&	result,
 																		 const tcu::ConstPixelBufferAccess&	clampedReference,
 																		 const tcu::ConstPixelBufferAccess&	unclampedReference,
 																		 const tcu::TextureFormat&			sourceFormat);
@@ -2347,10 +2347,10 @@
 		return threshold;
 }
 
-bool BlittingImages::checkLinearFilteredResult (const tcu::ConstPixelBufferAccess&	result,
-												const tcu::ConstPixelBufferAccess&	clampedExpected,
-												const tcu::ConstPixelBufferAccess&	unclampedExpected,
-												const tcu::TextureFormat&			srcFormat)
+bool BlittingImages::checkNonNearestFilteredResult (const tcu::ConstPixelBufferAccess&	result,
+													const tcu::ConstPixelBufferAccess&	clampedExpected,
+													const tcu::ConstPixelBufferAccess&	unclampedExpected,
+													const tcu::TextureFormat&			srcFormat)
 {
 	tcu::TestLog&					log				(m_context.getTestContext().getLog());
 	const tcu::TextureFormat		dstFormat		= result.getFormat();
@@ -2360,8 +2360,10 @@
 
 	log << tcu::TestLog::Section("ClampedSourceImage", "Region with clamped edges on source image.");
 
-	// if either of srcImage or dstImage was created with a signed/unsigned integer VkFormat,
-	// the other must also have been created with a signed/unsigned integer VkFormat
+	// if either of srcImage or dstImage stores values as a signed/unsigned integer,
+	// the other must also store values a signed/unsigned integer
+	// e.g. blit unorm to uscaled is not allowed as uscaled formats store data as integers
+	// despite the fact that both formats are sampled as floats
 	bool dstImageIsIntClass = dstChannelClass == tcu::TEXTURECHANNELCLASS_SIGNED_INTEGER ||
 							  dstChannelClass == tcu::TEXTURECHANNELCLASS_UNSIGNED_INTEGER;
 	bool srcImageIsIntClass = srcChannelClass == tcu::TEXTURECHANNELCLASS_SIGNED_INTEGER ||
@@ -2377,7 +2379,7 @@
 		const bool		srcIsSRGB	= tcu::isSRGB(srcFormat);
 		const tcu::Vec4	srcMaxDiff	= getFormatThreshold(srcFormat) * tcu::Vec4(srcIsSRGB ? 2.0f : 1.0f);
 		const tcu::Vec4	dstMaxDiff	= getFormatThreshold(dstFormat);
-		const tcu::Vec4	threshold	= tcu::max(srcMaxDiff, dstMaxDiff);
+		const tcu::Vec4	threshold	= ( srcMaxDiff + dstMaxDiff ) * ((m_params.filter == VK_FILTER_CUBIC_EXT) ? 1.5f : 1.0f);
 
 		isOk = tcu::floatThresholdCompare(log, "Compare", "Result comparsion", clampedExpected, result, threshold, tcu::COMPARE_LOG_RESULT);
 		log << tcu::TestLog::EndSection;
@@ -2393,9 +2395,10 @@
 	{
 		tcu::UVec4	threshold;
 		// Calculate threshold depending on channel width of destination format.
-		const tcu::IVec4	bitDepth	= tcu::getTextureFormatBitDepth(dstFormat);
+		const tcu::IVec4	dstBitDepth	= tcu::getTextureFormatBitDepth(dstFormat);
+		const tcu::IVec4	srcBitDepth = tcu::getTextureFormatBitDepth(srcFormat);
 		for (deUint32 i = 0; i < 4; ++i)
-			threshold[i] = de::max( (0x1 << bitDepth[i]) / 256, 1);
+			threshold[i] = 1 + de::max( ( ( 1 << dstBitDepth[i] ) - 1 ) / de::clamp((1 << srcBitDepth[i]) - 1, 1, 256), 1);
 
 		isOk = tcu::intThresholdCompare(log, "Compare", "Result comparsion", clampedExpected, result, threshold, tcu::COMPARE_LOG_RESULT);
 		log << tcu::TestLog::EndSection;
@@ -2621,8 +2624,10 @@
 
 	tcu::clear(errorMask, tcu::Vec4(0.0f, 1.0f, 0.0f, 1.0));
 
-	// if either of srcImage or dstImage was created with a signed/unsigned integer VkFormat,
-	// the other must also have been created with a signed/unsigned integer VkFormat
+	// if either of srcImage or dstImage stores values as a signed/unsigned integer,
+	// the other must also store values a signed/unsigned integer
+	// e.g. blit unorm to uscaled is not allowed as uscaled formats store data as integers
+	// despite the fact that both formats are sampled as floats
 	bool dstImageIsIntClass = dstChannelClass == tcu::TEXTURECHANNELCLASS_SIGNED_INTEGER ||
 							  dstChannelClass == tcu::TEXTURECHANNELCLASS_UNSIGNED_INTEGER;
 	bool srcImageIsIntClass = srcChannelClass == tcu::TEXTURECHANNELCLASS_SIGNED_INTEGER ||
@@ -2659,10 +2664,10 @@
 
 tcu::TestStatus BlittingImages::checkTestResult (tcu::ConstPixelBufferAccess result)
 {
-	DE_ASSERT(m_params.filter == VK_FILTER_NEAREST || m_params.filter == VK_FILTER_LINEAR);
+	DE_ASSERT(m_params.filter == VK_FILTER_NEAREST || m_params.filter == VK_FILTER_LINEAR || m_params.filter == VK_FILTER_CUBIC_EXT);
 	const std::string failMessage("Result image is incorrect");
 
-	if (m_params.filter == VK_FILTER_LINEAR)
+	if (m_params.filter != VK_FILTER_NEAREST)
 	{
 		if (tcu::isCombinedDepthStencilType(result.getFormat().type))
 		{
@@ -2674,7 +2679,7 @@
 				const tcu::ConstPixelBufferAccess		unclampedExpected	= tcu::getEffectiveDepthStencilAccess(m_unclampedExpectedTextureLevel->getAccess(), mode);
 				const tcu::TextureFormat				sourceFormat		= tcu::getEffectiveDepthStencilTextureFormat(mapVkFormat(m_params.src.image.format), mode);
 
-				if (!checkLinearFilteredResult(depthResult, clampedExpected, unclampedExpected, sourceFormat))
+				if (!checkNonNearestFilteredResult(depthResult, clampedExpected, unclampedExpected, sourceFormat))
 					return tcu::TestStatus::fail(failMessage);
 			}
 
@@ -2686,7 +2691,7 @@
 				const tcu::ConstPixelBufferAccess		unclampedExpected	= tcu::getEffectiveDepthStencilAccess(m_unclampedExpectedTextureLevel->getAccess(), mode);
 				const tcu::TextureFormat				sourceFormat		= tcu::getEffectiveDepthStencilTextureFormat(mapVkFormat(m_params.src.image.format), mode);
 
-				if (!checkLinearFilteredResult(stencilResult, clampedExpected, unclampedExpected, sourceFormat))
+				if (!checkNonNearestFilteredResult(stencilResult, clampedExpected, unclampedExpected, sourceFormat))
 					return tcu::TestStatus::fail(failMessage);
 			}
 		}
@@ -2694,7 +2699,7 @@
 		{
 			const tcu::TextureFormat	sourceFormat	= mapVkFormat(m_params.src.image.format);
 
-			if (!checkLinearFilteredResult(result, m_expectedTextureLevel[0]->getAccess(), m_unclampedExpectedTextureLevel->getAccess(), sourceFormat))
+			if (!checkNonNearestFilteredResult(result, m_expectedTextureLevel[0]->getAccess(), m_unclampedExpectedTextureLevel->getAccess(), sourceFormat))
 				return tcu::TestStatus::fail(failMessage);
 		}
 	}
@@ -2739,7 +2744,7 @@
 
 void scaleFromWholeSrcBuffer (const tcu::PixelBufferAccess& dst, const tcu::ConstPixelBufferAccess& src, const VkOffset3D regionOffset, const VkOffset3D regionExtent, tcu::Sampler::FilterMode filter, const MirrorMode mirrorMode = MIRROR_MODE_NONE)
 {
-	DE_ASSERT(filter == tcu::Sampler::LINEAR);
+	DE_ASSERT(filter == tcu::Sampler::LINEAR || filter == tcu::Sampler::CUBIC);
 	DE_ASSERT(dst.getDepth() == 1 && src.getDepth() == 1);
 
 	tcu::Sampler sampler(tcu::Sampler::CLAMP_TO_EDGE, tcu::Sampler::CLAMP_TO_EDGE, tcu::Sampler::CLAMP_TO_EDGE,
@@ -2759,7 +2764,7 @@
 
 void blit (const tcu::PixelBufferAccess& dst, const tcu::ConstPixelBufferAccess& src, const tcu::Sampler::FilterMode filter, const MirrorMode mirrorMode)
 {
-	DE_ASSERT(filter == tcu::Sampler::NEAREST || filter == tcu::Sampler::LINEAR);
+	DE_ASSERT(filter == tcu::Sampler::NEAREST || filter == tcu::Sampler::LINEAR || filter == tcu::Sampler::CUBIC);
 
 	tcu::Sampler sampler(tcu::Sampler::CLAMP_TO_EDGE, tcu::Sampler::CLAMP_TO_EDGE, tcu::Sampler::CLAMP_TO_EDGE,
 						 filter, filter, 0.0f, false);
@@ -2895,7 +2900,15 @@
 		region.imageBlit.dstOffsets[1].y - dstOffset.y,
 		region.imageBlit.dstOffsets[1].z - dstOffset.z
 	};
-	const tcu::Sampler::FilterMode		filter			= (m_params.filter == VK_FILTER_LINEAR) ? tcu::Sampler::LINEAR : tcu::Sampler::NEAREST;
+
+	tcu::Sampler::FilterMode		filter;
+	switch (m_params.filter)
+	{
+		case VK_FILTER_LINEAR:		filter = tcu::Sampler::LINEAR; break;
+		case VK_FILTER_CUBIC_EXT:	filter = tcu::Sampler::CUBIC;  break;
+		case VK_FILTER_NEAREST:
+		default:					filter = tcu::Sampler::NEAREST;  break;
+	}
 
 	if (tcu::isCombinedDepthStencilType(src.getFormat().type))
 	{
@@ -2907,7 +2920,7 @@
 			const tcu::PixelBufferAccess		dstSubRegion	= getEffectiveDepthStencilAccess(tcu::getSubregion(dst, dstOffset.x, dstOffset.y, dstExtent.x, dstExtent.y), tcu::Sampler::MODE_DEPTH);
 			tcu::scale(dstSubRegion, srcSubRegion, filter);
 
-			if (filter == tcu::Sampler::LINEAR)
+			if (filter != tcu::Sampler::NEAREST)
 			{
 				const tcu::ConstPixelBufferAccess	depthSrc			= getEffectiveDepthStencilAccess(src, tcu::Sampler::MODE_DEPTH);
 				const tcu::PixelBufferAccess		unclampedSubRegion	= getEffectiveDepthStencilAccess(tcu::getSubregion(m_unclampedExpectedTextureLevel->getAccess(), dstOffset.x, dstOffset.y, dstExtent.x, dstExtent.y), tcu::Sampler::MODE_DEPTH);
@@ -2922,7 +2935,7 @@
 			const tcu::PixelBufferAccess		dstSubRegion	= getEffectiveDepthStencilAccess(tcu::getSubregion(dst, dstOffset.x, dstOffset.y, dstExtent.x, dstExtent.y), tcu::Sampler::MODE_STENCIL);
 			blit(dstSubRegion, srcSubRegion, filter, mirrorMode);
 
-			if (filter == tcu::Sampler::LINEAR)
+			if (filter != tcu::Sampler::NEAREST)
 			{
 				const tcu::ConstPixelBufferAccess	stencilSrc			= getEffectiveDepthStencilAccess(src, tcu::Sampler::MODE_STENCIL);
 				const tcu::PixelBufferAccess		unclampedSubRegion	= getEffectiveDepthStencilAccess(tcu::getSubregion(m_unclampedExpectedTextureLevel->getAccess(), dstOffset.x, dstOffset.y, dstExtent.x, dstExtent.y), tcu::Sampler::MODE_STENCIL);
@@ -2936,7 +2949,7 @@
 		const tcu::PixelBufferAccess		dstSubRegion	= tcu::getSubregion(dst, dstOffset.x, dstOffset.y, dstExtent.x, dstExtent.y);
 		blit(dstSubRegion, srcSubRegion, filter, mirrorMode);
 
-		if (filter == tcu::Sampler::LINEAR)
+		if (filter != tcu::Sampler::NEAREST)
 		{
 			const tcu::PixelBufferAccess	unclampedSubRegion	= tcu::getSubregion(m_unclampedExpectedTextureLevel->getAccess(), dstOffset.x, dstOffset.y, dstExtent.x, dstExtent.y);
 			scaleFromWholeSrcBuffer(unclampedSubRegion, src, srcOffset, srcExtent, filter, mirrorMode);
@@ -2952,7 +2965,7 @@
 	m_expectedTextureLevel[0]		= de::MovePtr<tcu::TextureLevel>(new tcu::TextureLevel(dst.getFormat(), dst.getWidth(), dst.getHeight(), dst.getDepth()));
 	tcu::copy(m_expectedTextureLevel[0]->getAccess(), dst);
 
-	if (m_params.filter == VK_FILTER_LINEAR)
+	if (m_params.filter != VK_FILTER_NEAREST)
 	{
 		m_unclampedExpectedTextureLevel	= de::MovePtr<tcu::TextureLevel>(new tcu::TextureLevel(dst.getFormat(), dst.getWidth(), dst.getHeight(), dst.getDepth()));
 		tcu::copy(m_unclampedExpectedTextureLevel->getAccess(), dst);
@@ -3019,7 +3032,19 @@
 		}
 
 		if (m_params.filter == VK_FILTER_LINEAR && !(srcFormatFeatures & VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT))
+		{
 			TCU_THROW(NotSupportedError, "Source format feature sampled image filter linear not supported");
+		}
+
+		if (m_params.filter == VK_FILTER_CUBIC_EXT)
+		{
+			context.requireDeviceFunctionality("VK_EXT_filter_cubic");
+
+			if (!(srcFormatFeatures & VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT))
+			{
+				TCU_THROW(NotSupportedError, "Source format feature sampled image filter cubic not supported");
+			}
+		}
 	}
 
 private:
@@ -3037,7 +3062,7 @@
 	virtual void						copyRegionToTextureLevel		(tcu::ConstPixelBufferAccess src, tcu::PixelBufferAccess dst, CopyRegion region, deUint32 mipLevel = 0u);
 	virtual void						generateExpectedResult			(void);
 private:
-	bool								checkLinearFilteredResult		(void);
+	bool								checkNonNearestFilteredResult	(void);
 	bool								checkNearestFilteredResult		(void);
 
 	Move<VkImage>						m_source;
@@ -3323,7 +3348,7 @@
 	return checkTestResult();
 }
 
-bool BlittingMipmaps::checkLinearFilteredResult (void)
+bool BlittingMipmaps::checkNonNearestFilteredResult (void)
 {
 	tcu::TestLog&				log				(m_context.getTestContext().getLog());
 	bool						allLevelsOk		= true;
@@ -3387,7 +3412,7 @@
 			const bool		srcIsSRGB   = tcu::isSRGB(srcFormat);
 			const tcu::Vec4 srcMaxDiff  = getFormatThreshold(srcFormat) * tcu::Vec4(srcIsSRGB ? 2.0f : 1.0f);
 			const tcu::Vec4 dstMaxDiff  = getFormatThreshold(dstFormat);
-			const tcu::Vec4 threshold   = tcu::max(srcMaxDiff, dstMaxDiff);
+			const tcu::Vec4 threshold   = ( srcMaxDiff + dstMaxDiff ) * ((m_params.filter == VK_FILTER_CUBIC_EXT)? 1.5f : 1.0f);
 
 			singleLevelOk = tcu::floatThresholdCompare(log, "Compare", "Result comparsion", clampedLevel, result, threshold, tcu::COMPARE_LOG_RESULT);
 			log << tcu::TestLog::EndSection;
@@ -3403,9 +3428,10 @@
 		{
 			tcu::UVec4  threshold;
 			// Calculate threshold depending on channel width of destination format.
-			const tcu::IVec4	bitDepth	= tcu::getTextureFormatBitDepth(dstFormat);
+			const tcu::IVec4	dstBitDepth	= tcu::getTextureFormatBitDepth(dstFormat);
+			const tcu::IVec4	srcBitDepth = tcu::getTextureFormatBitDepth(srcFormat);
 			for (deUint32 i = 0; i < 4; ++i)
-				threshold[i] = de::max((0x1 << bitDepth[i]) / 256, 2);
+				threshold[i] = 1 + de::max(((1 << dstBitDepth[i]) - 1) / de::clamp((1 << srcBitDepth[i]) - 1, 1, 256), 1);
 
 			singleLevelOk = tcu::intThresholdCompare(log, "Compare", "Result comparsion", clampedLevel, result, threshold, tcu::COMPARE_LOG_RESULT);
 			log << tcu::TestLog::EndSection;
@@ -3498,12 +3524,12 @@
 tcu::TestStatus BlittingMipmaps::checkTestResult (tcu::ConstPixelBufferAccess result)
 {
 	DE_UNREF(result);
-	DE_ASSERT(m_params.filter == VK_FILTER_NEAREST || m_params.filter == VK_FILTER_LINEAR);
+	DE_ASSERT(m_params.filter == VK_FILTER_NEAREST || m_params.filter == VK_FILTER_LINEAR || m_params.filter == VK_FILTER_CUBIC_EXT);
 	const std::string failMessage("Result image is incorrect");
 
-	if (m_params.filter == VK_FILTER_LINEAR)
+	if (m_params.filter != VK_FILTER_NEAREST)
 	{
-		if (!checkLinearFilteredResult())
+		if (!checkNonNearestFilteredResult())
 			return tcu::TestStatus::fail(failMessage);
 	}
 	else // NEAREST filtering
@@ -3540,7 +3566,15 @@
 		region.imageBlit.dstOffsets[1].y - dstOffset.y,
 		region.imageBlit.dstOffsets[1].z - dstOffset.z
 	};
-	const tcu::Sampler::FilterMode		filter			= (m_params.filter == VK_FILTER_LINEAR) ? tcu::Sampler::LINEAR : tcu::Sampler::NEAREST;
+
+	tcu::Sampler::FilterMode		filter;
+	switch (m_params.filter)
+	{
+	case VK_FILTER_LINEAR:		filter = tcu::Sampler::LINEAR; break;
+	case VK_FILTER_CUBIC_EXT:	filter = tcu::Sampler::CUBIC;  break;
+	case VK_FILTER_NEAREST:
+	default:					filter = tcu::Sampler::NEAREST;  break;
+	}
 
 	if (tcu::isCombinedDepthStencilType(src.getFormat().type))
 	{
@@ -3552,7 +3586,7 @@
 			const tcu::PixelBufferAccess		dstSubRegion	= getEffectiveDepthStencilAccess(tcu::getSubregion(dst, dstOffset.x, dstOffset.y, dstExtent.x, dstExtent.y), tcu::Sampler::MODE_DEPTH);
 			tcu::scale(dstSubRegion, srcSubRegion, filter);
 
-			if (filter == tcu::Sampler::LINEAR)
+			if (filter != tcu::Sampler::NEAREST)
 			{
 				const tcu::ConstPixelBufferAccess	depthSrc			= getEffectiveDepthStencilAccess(src, tcu::Sampler::MODE_DEPTH);
 				const tcu::PixelBufferAccess		unclampedSubRegion	= getEffectiveDepthStencilAccess(tcu::getSubregion(m_unclampedExpectedTextureLevel[0]->getAccess(), dstOffset.x, dstOffset.y, dstExtent.x, dstExtent.y), tcu::Sampler::MODE_DEPTH);
@@ -3567,7 +3601,7 @@
 			const tcu::PixelBufferAccess		dstSubRegion	= getEffectiveDepthStencilAccess(tcu::getSubregion(dst, dstOffset.x, dstOffset.y, dstExtent.x, dstExtent.y), tcu::Sampler::MODE_STENCIL);
 			blit(dstSubRegion, srcSubRegion, filter, mirrorMode);
 
-			if (filter == tcu::Sampler::LINEAR)
+			if (filter != tcu::Sampler::NEAREST)
 			{
 				const tcu::ConstPixelBufferAccess	stencilSrc			= getEffectiveDepthStencilAccess(src, tcu::Sampler::MODE_STENCIL);
 				const tcu::PixelBufferAccess		unclampedSubRegion	= getEffectiveDepthStencilAccess(tcu::getSubregion(m_unclampedExpectedTextureLevel[0]->getAccess(), dstOffset.x, dstOffset.y, dstExtent.x, dstExtent.y), tcu::Sampler::MODE_STENCIL);
@@ -3583,7 +3617,7 @@
 			const tcu::PixelBufferAccess		dstSubRegion	= tcu::getSubregion(dst, dstOffset.x, dstOffset.y, layerNdx, dstExtent.x, dstExtent.y, 1);
 			blit(dstSubRegion, srcSubRegion, filter, mirrorMode);
 
-			if (filter == tcu::Sampler::LINEAR)
+			if (filter != tcu::Sampler::NEAREST)
 			{
 				const tcu::PixelBufferAccess	unclampedSubRegion	= tcu::getSubregion(m_unclampedExpectedTextureLevel[mipLevel]->getAccess(), dstOffset.x, dstOffset.y, layerNdx, dstExtent.x, dstExtent.y, 1);
 				scaleFromWholeSrcBuffer(unclampedSubRegion, srcSubRegion, srcOffset, srcExtent, filter);
@@ -3602,7 +3636,7 @@
 
 	tcu::copy(m_expectedTextureLevel[0]->getAccess(), src);
 
-	if (m_params.filter == VK_FILTER_LINEAR)
+	if (m_params.filter != VK_FILTER_NEAREST)
 	{
 		for (deUint32 mipLevelNdx = 0u; mipLevelNdx < m_params.mipLevels; mipLevelNdx++)
 			m_unclampedExpectedTextureLevel[mipLevelNdx] = de::MovePtr<tcu::TextureLevel>(new tcu::TextureLevel(dst.getFormat(), dst.getWidth() >> mipLevelNdx, dst.getHeight() >> mipLevelNdx, dst.getDepth()));
@@ -3695,6 +3729,16 @@
 
 		if (m_params.filter == VK_FILTER_LINEAR && !(srcFormatProperties.optimalTilingFeatures & VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT))
 			TCU_THROW(NotSupportedError, "Source format feature sampled image filter linear not supported");
+
+		if (m_params.filter == VK_FILTER_CUBIC_EXT)
+		{
+			context.requireDeviceFunctionality("VK_EXT_filter_cubic");
+
+			if (!(srcFormatProperties.optimalTilingFeatures & VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT))
+			{
+				TCU_THROW(NotSupportedError, "Source format feature sampled image filter cubic not supported");
+			}
+		}
 	}
 
 private:
@@ -5898,6 +5942,33 @@
 	{
 		TestParams	params;
 		params.src.image.imageType			= VK_IMAGE_TYPE_2D;
+		params.src.image.format				= VK_FORMAT_R8_UNORM;
+		params.src.image.extent				= defaultExtent;
+		params.src.image.tiling				= VK_IMAGE_TILING_OPTIMAL;
+		params.src.image.operationLayout	= VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
+		params.dst.buffer.size				= defaultSize * defaultSize;
+		params.allocationKind				= allocationKind;
+
+		const VkBufferImageCopy	bufferImageCopy	=
+		{
+			defaultSize * defaultHalfSize + 1u,		// VkDeviceSize				bufferOffset;
+			0u,											// deUint32					bufferRowLength;
+			0u,											// deUint32					bufferImageHeight;
+			defaultSourceLayer,							// VkImageSubresourceLayers	imageSubresource;
+			{defaultFourthSize, defaultFourthSize, 0},	// VkOffset3D				imageOffset;
+			defaultHalfExtent							// VkExtent3D				imageExtent;
+		};
+		CopyRegion	copyRegion;
+		copyRegion.bufferImageCopy	= bufferImageCopy;
+
+		params.regions.push_back(copyRegion);
+
+		group->addChild(new CopyImageToBufferTestCase(testCtx, "buffer_offset_relaxed", "Copy from image to buffer with buffer offset not a multiple of 4", params));
+	}
+
+	{
+		TestParams	params;
+		params.src.image.imageType			= VK_IMAGE_TYPE_2D;
 		params.src.image.format				= VK_FORMAT_R8G8B8A8_UNORM;
 		params.src.image.extent				= defaultExtent;
 		params.src.image.tiling				= VK_IMAGE_TILING_OPTIMAL;
@@ -6238,6 +6309,33 @@
 	}
 
 	{
+		TestParams	params;
+		params.src.buffer.size				= defaultSize * defaultSize;
+		params.dst.image.imageType			= VK_IMAGE_TYPE_2D;
+		params.dst.image.format				= VK_FORMAT_R8_UNORM;
+		params.dst.image.extent				= defaultExtent;
+		params.dst.image.tiling				= VK_IMAGE_TILING_OPTIMAL;
+		params.dst.image.operationLayout	= VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
+		params.allocationKind				= allocationKind;
+
+		const VkBufferImageCopy	bufferImageCopy	=
+		{
+			defaultFourthSize + 1u,					// VkDeviceSize				bufferOffset;
+			defaultHalfSize + defaultFourthSize,		// deUint32					bufferRowLength;
+			defaultHalfSize + defaultFourthSize,		// deUint32					bufferImageHeight;
+			defaultSourceLayer,							// VkImageSubresourceLayers	imageSubresource;
+			{defaultFourthSize, defaultFourthSize, 0},	// VkOffset3D				imageOffset;
+			defaultHalfExtent							// VkExtent3D				imageExtent;
+		};
+		CopyRegion	copyRegion;
+		copyRegion.bufferImageCopy	= bufferImageCopy;
+
+		params.regions.push_back(copyRegion);
+
+		group->addChild(new CopyBufferToImageTestCase(testCtx, "buffer_offset_relaxed", "Copy from buffer to image with buffer offset not a multiple of 4", params));
+	}
+
+	{
 		TestParams				params;
 		params.src.buffer.size				= (defaultHalfSize - 1u) * defaultSize + defaultHalfSize;
 		params.dst.image.imageType			= VK_IMAGE_TYPE_2D;
@@ -6432,6 +6530,23 @@
 		const std::string	descriptionOfRGBAToBGRA(description + " and different formats (R8G8B8A8 -> B8G8R8A8)");
 		group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_linear", descriptionOfRGBAToBGRA, params));
 	}
+
+	// Filter is VK_FILTER_CUBIC_EXT.
+	{
+		params.filter					= VK_FILTER_CUBIC_EXT;
+		const std::string description	= "Cubic filter";
+
+		params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
+		group->addChild(new BlitImageTestCase(testCtx, "cubic", description, params));
+
+		params.dst.image.format = VK_FORMAT_R32_SFLOAT;
+		const std::string	descriptionOfRGBAToR32(description + " and different formats (R8G8B8A8 -> R32)");
+		group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_cubic", descriptionOfRGBAToR32, params));
+
+		params.dst.image.format = VK_FORMAT_B8G8R8A8_UNORM;
+		const std::string	descriptionOfRGBAToBGRA(description + " and different formats (R8G8B8A8 -> B8G8R8A8)");
+		group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_cubic", descriptionOfRGBAToBGRA, params));
+	}
 }
 
 void addBlittingImageSimpleMirrorXYTests (tcu::TestCaseGroup* group, AllocationKind allocationKind)
@@ -6503,6 +6618,23 @@
 		const std::string	descriptionOfRGBAToBGRA	(description + " and different formats (R8G8B8A8 -> B8G8R8A8)");
 		group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_linear", descriptionOfRGBAToBGRA, params));
 	}
+
+	// Filter is VK_FILTER_CUBIC_EXT.
+	{
+		params.filter					= VK_FILTER_CUBIC_EXT;
+		const std::string description	= "Cubic filter";
+
+		params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
+		group->addChild(new BlitImageTestCase(testCtx, "cubic", description, params));
+
+		params.dst.image.format = VK_FORMAT_R32_SFLOAT;
+		const std::string	descriptionOfRGBAToR32(description + " and different formats (R8G8B8A8 -> R32)");
+		group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_cubic", descriptionOfRGBAToR32, params));
+
+		params.dst.image.format = VK_FORMAT_B8G8R8A8_UNORM;
+		const std::string	descriptionOfRGBAToBGRA(description + " and different formats (R8G8B8A8 -> B8G8R8A8)");
+		group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_cubic", descriptionOfRGBAToBGRA, params));
+	}
 }
 
 void addBlittingImageSimpleMirrorXTests (tcu::TestCaseGroup* group, AllocationKind allocationKind)
@@ -6574,6 +6706,23 @@
 		const std::string	descriptionOfRGBAToBGRA	(description + " and different formats (R8G8B8A8 -> B8G8R8A8)");
 		group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_linear", descriptionOfRGBAToBGRA, params));
 	}
+
+	// Filter is VK_FILTER_CUBIC_EXT.
+	{
+		params.filter					= VK_FILTER_CUBIC_EXT;
+		const std::string description	= "Cubic filter";
+
+		params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
+		group->addChild(new BlitImageTestCase(testCtx, "cubic", description, params));
+
+		params.dst.image.format = VK_FORMAT_R32_SFLOAT;
+		const std::string	descriptionOfRGBAToR32(description + " and different formats (R8G8B8A8 -> R32)");
+		group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_cubic", descriptionOfRGBAToR32, params));
+
+		params.dst.image.format = VK_FORMAT_B8G8R8A8_UNORM;
+		const std::string	descriptionOfRGBAToBGRA(description + " and different formats (R8G8B8A8 -> B8G8R8A8)");
+		group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_cubic", descriptionOfRGBAToBGRA, params));
+	}
 }
 
 void addBlittingImageSimpleMirrorYTests (tcu::TestCaseGroup* group, AllocationKind allocationKind)
@@ -6645,6 +6794,23 @@
 		const std::string	descriptionOfRGBAToBGRA	(description + " and different formats (R8G8B8A8 -> B8G8R8A8)");
 		group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_linear", descriptionOfRGBAToBGRA, params));
 	}
+
+	// Filter is VK_FILTER_CUBIC_EXT.
+	{
+		params.filter					= VK_FILTER_CUBIC_EXT;
+		const std::string description	= "Cubic filter";
+
+		params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
+		group->addChild(new BlitImageTestCase(testCtx, "cubic", description, params));
+
+		params.dst.image.format = VK_FORMAT_R32_SFLOAT;
+		const std::string	descriptionOfRGBAToR32(description + " and different formats (R8G8B8A8 -> R32)");
+		group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_cubic", descriptionOfRGBAToR32, params));
+
+		params.dst.image.format = VK_FORMAT_B8G8R8A8_UNORM;
+		const std::string	descriptionOfRGBAToBGRA(description + " and different formats (R8G8B8A8 -> B8G8R8A8)");
+		group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_cubic", descriptionOfRGBAToBGRA, params));
+	}
 }
 
 void addBlittingImageSimpleMirrorSubregionsTests (tcu::TestCaseGroup* group, AllocationKind allocationKind)
@@ -6782,6 +6948,23 @@
 		const std::string	descriptionOfRGBAToBGRA	(description + " and different formats (R8G8B8A8 -> B8G8R8A8)");
 		group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_linear", descriptionOfRGBAToBGRA, params));
 	}
+
+	// Filter is VK_FILTER_CUBIC_EXT.
+	{
+		params.filter					= VK_FILTER_CUBIC_EXT;
+		const std::string description	= "Cubic filter";
+
+		params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
+		group->addChild(new BlitImageTestCase(testCtx, "cubic", description, params));
+
+		params.dst.image.format = VK_FORMAT_R32_SFLOAT;
+		const std::string	descriptionOfRGBAToR32(description + " and different formats (R8G8B8A8 -> R32)");
+		group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_cubic", descriptionOfRGBAToR32, params));
+
+		params.dst.image.format = VK_FORMAT_B8G8R8A8_UNORM;
+		const std::string	descriptionOfRGBAToBGRA(description + " and different formats (R8G8B8A8 -> B8G8R8A8)");
+		group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_cubic", descriptionOfRGBAToBGRA, params));
+	}
 }
 
 void addBlittingImageSimpleScalingWhole1Tests (tcu::TestCaseGroup* group, AllocationKind allocationKind)
@@ -6853,6 +7036,23 @@
 		const std::string	descriptionOfRGBAToBGRA	(description + " and different formats (R8G8B8A8 -> B8G8R8A8)");
 		group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_linear", descriptionOfRGBAToBGRA, params));
 	}
+
+	// Filter is VK_FILTER_CUBIC_EXT.
+	{
+		params.filter					= VK_FILTER_CUBIC_EXT;
+		const std::string description	= "Cubic filter";
+
+		params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
+		group->addChild(new BlitImageTestCase(testCtx, "cubic", description, params));
+
+		params.dst.image.format = VK_FORMAT_R32_SFLOAT;
+		const std::string	descriptionOfRGBAToR32(description + " and different formats (R8G8B8A8 -> R32)");
+		group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_cubic", descriptionOfRGBAToR32, params));
+
+		params.dst.image.format = VK_FORMAT_B8G8R8A8_UNORM;
+		const std::string	descriptionOfRGBAToBGRA(description + " and different formats (R8G8B8A8 -> B8G8R8A8)");
+		group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_cubic", descriptionOfRGBAToBGRA, params));
+	}
 }
 
 void addBlittingImageSimpleScalingWhole2Tests (tcu::TestCaseGroup* group, AllocationKind allocationKind)
@@ -6924,6 +7124,23 @@
 		const std::string	descriptionOfRGBAToBGRA	(description + " and different formats (R8G8B8A8 -> B8G8R8A8)");
 		group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_linear", descriptionOfRGBAToBGRA, params));
 	}
+
+	// Filter is VK_FILTER_CUBIC_EXT.
+	{
+		params.filter					= VK_FILTER_CUBIC_EXT;
+		const std::string description	= "Cubic filter";
+
+		params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
+		group->addChild(new BlitImageTestCase(testCtx, "cubic", description, params));
+
+		params.dst.image.format = VK_FORMAT_R32_SFLOAT;
+		const std::string	descriptionOfRGBAToR32(description + " and different formats (R8G8B8A8 -> R32)");
+		group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_cubic", descriptionOfRGBAToR32, params));
+
+		params.dst.image.format = VK_FORMAT_B8G8R8A8_UNORM;
+		const std::string	descriptionOfRGBAToBGRA(description + " and different formats (R8G8B8A8 -> B8G8R8A8)");
+		group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_cubic", descriptionOfRGBAToBGRA, params));
+	}
 }
 
 void addBlittingImageSimpleScalingAndOffsetTests (tcu::TestCaseGroup* group, AllocationKind allocationKind)
@@ -6995,6 +7212,23 @@
 		const std::string	descriptionOfRGBAToBGRA	(description + " and different formats (R8G8B8A8 -> B8G8R8A8)");
 		group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_linear", descriptionOfRGBAToBGRA, params));
 	}
+
+	// Filter is VK_FILTER_CUBIC_EXT.
+	{
+		params.filter					= VK_FILTER_CUBIC_EXT;
+		const std::string description	= "Cubic filter";
+
+		params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
+		group->addChild(new BlitImageTestCase(testCtx, "cubic", description, params));
+
+		params.dst.image.format = VK_FORMAT_R32_SFLOAT;
+		const std::string	descriptionOfRGBAToR32(description + " and different formats (R8G8B8A8 -> R32)");
+		group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_cubic", descriptionOfRGBAToR32, params));
+
+		params.dst.image.format = VK_FORMAT_B8G8R8A8_UNORM;
+		const std::string	descriptionOfRGBAToBGRA(description + " and different formats (R8G8B8A8 -> B8G8R8A8)");
+		group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_cubic", descriptionOfRGBAToBGRA, params));
+	}
 }
 
 void addBlittingImageSimpleWithoutScalingPartialTests (tcu::TestCaseGroup* group, AllocationKind allocationKind)
@@ -7069,6 +7303,23 @@
 		const std::string	descriptionOfRGBAToBGRA	(description + " and different formats (R8G8B8A8 -> B8G8R8A8)");
 		group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_linear", descriptionOfRGBAToBGRA, params));
 	}
+
+	// Filter is VK_FILTER_CUBIC_EXT.
+	{
+		params.filter					= VK_FILTER_CUBIC_EXT;
+		const std::string description	= "Cubic filter";
+
+		params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
+		group->addChild(new BlitImageTestCase(testCtx, "cubic", description, params));
+
+		params.dst.image.format = VK_FORMAT_R32_SFLOAT;
+		const std::string	descriptionOfRGBAToR32(description + " and different formats (R8G8B8A8 -> R32)");
+		group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_cubic", descriptionOfRGBAToR32, params));
+
+		params.dst.image.format = VK_FORMAT_B8G8R8A8_UNORM;
+		const std::string	descriptionOfRGBAToBGRA(description + " and different formats (R8G8B8A8 -> B8G8R8A8)");
+		group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_cubic", descriptionOfRGBAToBGRA, params));
+	}
 }
 
 void addBlittingImageSimpleTests (tcu::TestCaseGroup* group, AllocationKind allocationKind)
@@ -7088,7 +7339,7 @@
 {
 	TestParams		params;
 	const VkFormat*	compatibleFormats;
-	bool			onlyNearest;
+	deUint32		testFilters;
 };
 
 bool isAllowedBlittingAllFormatsColorSrcFormatTests(const BlitColorTestParams& testParams)
@@ -7229,11 +7480,17 @@
 														  " to " + getBlitImageTilingLayoutCaseName(testParams.params.dst.image.tiling, testParams.params.dst.image.operationLayout);
 					group->addChild(new BlitImageTestCase(testCtx, testName + "_nearest", description, testParams.params));
 
-					if (!testParams.onlyNearest)
+					if (testParams.testFilters & 1u)
 					{
-						testParams.params.filter		= VK_FILTER_LINEAR;
+						testParams.params.filter = VK_FILTER_LINEAR;
 						group->addChild(new BlitImageTestCase(testCtx, testName + "_linear", description, testParams.params));
 					}
+
+					if (testParams.testFilters & 2u)
+					{
+						testParams.params.filter		= VK_FILTER_CUBIC_EXT;
+						group->addChild(new BlitImageTestCase(testCtx, testName + "_cubic", description, testParams.params));
+					}
 				}
 			}
 		}
@@ -7473,6 +7730,15 @@
 	VK_FORMAT_A8B8G8R8_SRGB_PACK32,
 };
 
+// skip cubic filtering test for the following data formats
+const FormatSet	onlyNearestAndLinearFormatsToTest =
+{
+	VK_FORMAT_A8B8G8R8_USCALED_PACK32,
+	VK_FORMAT_A8B8G8R8_SSCALED_PACK32,
+	VK_FORMAT_A8B8G8R8_UINT_PACK32,
+	VK_FORMAT_A8B8G8R8_SINT_PACK32
+};
+
 void addBlittingImageAllFormatsColorTests (tcu::TestCaseGroup* group, AllocationKind allocationKind)
 {
 	const struct {
@@ -7554,10 +7820,12 @@
 			if (!isSupportedByFramework(params.src.image.format))
 				continue;
 
+			const bool onlyNearestAndLinear	= de::contains(onlyNearestAndLinearFormatsToTest, params.src.image.format);
+
 			BlitColorTestParams		testParams;
 			testParams.params				= params;
 			testParams.compatibleFormats	= compatibleFormats;
-			testParams.onlyNearest			= onlyNearest;
+			testParams.testFilters			= onlyNearest ? 0u : (onlyNearestAndLinear ? 1u : 3u );
 
 			const std::string description	= "Blit source format " + getFormatCaseName(params.src.image.format);
 			addTestGroup(group, getFormatCaseName(params.src.image.format), description, addBlittingImageAllFormatsColorSrcFormatTests, testParams);
@@ -7967,11 +8235,17 @@
 												  " to " + getImageLayoutCaseName(testParams.params.dst.image.operationLayout);
 			group->addChild(new BlitMipmapTestCase(testCtx, testName + "_nearest", description, testParams.params));
 
-			if (!testParams.onlyNearest)
+			if (testParams.testFilters & 1u)
 			{
-				testParams.params.filter		= VK_FILTER_LINEAR;
+				testParams.params.filter = VK_FILTER_LINEAR;
 				group->addChild(new BlitMipmapTestCase(testCtx, testName + "_linear", description, testParams.params));
 			}
+
+			if (testParams.testFilters & 2u)
+			{
+				testParams.params.filter = VK_FILTER_CUBIC_EXT;
+				group->addChild(new BlitMipmapTestCase(testCtx, testName + "_cubic", description, testParams.params));
+			}
 		}
 	}
 }
@@ -8061,12 +8335,14 @@
 				if (!isSupportedByFramework(params.src.image.format))
 					continue;
 
+				const bool onlyNearestAndLinear	= de::contains(onlyNearestAndLinearFormatsToTest, params.src.image.format);
+
 				const std::string description	= "Blit source format " + getFormatCaseName(params.src.image.format);
 
 				BlitColorTestParams testParams;
 				testParams.params				= params;
 				testParams.compatibleFormats	= compatibleFormats;
-				testParams.onlyNearest			= onlyNearest;
+				testParams.testFilters			= onlyNearest ? 0u : (onlyNearestAndLinear ? 1u : 3u);
 
 				testParams.params.src.image.extent.depth = layerCount;
 				testParams.params.dst.image.extent.depth = layerCount;
@@ -8172,12 +8448,14 @@
 				if (!isSupportedByFramework(params.src.image.format))
 					continue;
 
+				const bool			onlyNearestAndLinear	= de::contains(onlyNearestAndLinearFormatsToTest, params.src.image.format);
+
 				const std::string	description				= "Blit source format " + getFormatCaseName(params.src.image.format);
 
 				BlitColorTestParams	testParams;
 				testParams.params							= params;
 				testParams.compatibleFormats				= compatibleFormats;
-				testParams.onlyNearest						= onlyNearest;
+				testParams.testFilters						= onlyNearest ? 0u : (onlyNearestAndLinear ? 1u : 3u);
 
 				testParams.params.src.image.extent.depth	= layerCount;
 				testParams.params.dst.image.extent.depth	= layerCount;
@@ -8223,7 +8501,7 @@
 					BlitColorTestParams testParams;
 					testParams.params							= params;
 					testParams.compatibleFormats				= compatibleFormatsUInts;
-					testParams.onlyNearest						= true;
+					testParams.testFilters						= 0;
 
 					testParams.params.src.image.extent.depth	= layerCount;
 					testParams.params.dst.image.extent.depth	= layerCount;
diff --git a/external/vulkancts/modules/vulkan/api/vktApiDeviceInitializationTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiDeviceInitializationTests.cpp
index 41adc97..4154403 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiDeviceInitializationTests.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiDeviceInitializationTests.cpp
@@ -34,6 +34,7 @@
 #include "vkMemUtil.hpp"
 #include "vkDeviceUtil.hpp"
 #include "vkApiVersion.hpp"
+#include "vkAllocationCallbackUtil.hpp"
 
 #include "tcuTestLog.hpp"
 #include "tcuResultCollector.hpp"
@@ -555,6 +556,58 @@
 	return tcu::TestStatus::pass("Pass, creating instances with unsupported layers were rejected.");
 }
 
+tcu::TestStatus enumerateDevicesAllocLeakTest(Context& context)
+{
+	// enumeratePhysicalDevices uses instance-provided allocator
+	// and this test checks if all alocated memory is freed
+
+	typedef AllocationCallbackRecorder::RecordIterator RecordIterator;
+
+	const PlatformInterface&	vkp				(context.getPlatformInterface());
+	const deUint32				apiVersion		(context.getUsedApiVersion());
+	DeterministicFailAllocator	objAllocator	(getSystemAllocator(), DeterministicFailAllocator::MODE_DO_NOT_COUNT, 0);
+	AllocationCallbackRecorder	recorder		(objAllocator.getCallbacks(), 128);
+	Move<VkInstance>			instance		(vk::createDefaultInstance(vkp, apiVersion, {}, {}, recorder.getCallbacks()));
+	InstanceDriver				vki				(vkp, *instance);
+	vector<VkPhysicalDevice>	devices			(enumeratePhysicalDevices(vki, *instance));
+	RecordIterator				recordToCheck	(recorder.getRecordsEnd());
+
+	try
+	{
+		devices = enumeratePhysicalDevices(vki, *instance);
+	}
+	catch (const vk::OutOfMemoryError& e)
+	{
+		if (e.getError() != VK_ERROR_OUT_OF_HOST_MEMORY)
+			return tcu::TestStatus(QP_TEST_RESULT_QUALITY_WARNING, "Got out of memory error - leaks in enumeratePhysicalDevices not tested.");
+	}
+
+	// make sure that same number of allocations and frees was done
+	deInt32			allocationRecords	(0);
+	RecordIterator	lastRecordToCheck	(recorder.getRecordsEnd());
+	while (recordToCheck != lastRecordToCheck)
+	{
+		const AllocationCallbackRecord& record = *recordToCheck;
+		switch (record.type)
+		{
+		case AllocationCallbackRecord::TYPE_ALLOCATION:
+			++allocationRecords;
+			break;
+		case AllocationCallbackRecord::TYPE_FREE:
+			if (record.data.free.mem != DE_NULL)
+				--allocationRecords;
+			break;
+		default:
+			break;
+		}
+		++recordToCheck;
+	}
+
+	if (allocationRecords)
+		return tcu::TestStatus::fail("enumeratePhysicalDevices leaked memory");
+	return tcu::TestStatus::pass("Ok");
+}
+
 tcu::TestStatus createDeviceTest (Context& context)
 {
 	const PlatformInterface&		platformInterface		= context.getPlatformInterface();
@@ -1569,6 +1622,7 @@
 	addFunctionCase(deviceInitializationTests.get(), "create_instance_unsupported_extensions",			"", createInstanceWithUnsupportedExtensionsTest);
 	addFunctionCase(deviceInitializationTests.get(), "create_instance_extension_name_abuse",			"", createInstanceWithExtensionNameAbuseTest);
 	addFunctionCase(deviceInitializationTests.get(), "create_instance_layer_name_abuse",				"", createInstanceWithLayerNameAbuseTest);
+	addFunctionCase(deviceInitializationTests.get(), "enumerate_devices_alloc_leak",					"", enumerateDevicesAllocLeakTest);
 	addFunctionCase(deviceInitializationTests.get(), "create_device",									"", createDeviceTest);
 	addFunctionCase(deviceInitializationTests.get(), "create_multiple_devices",							"", createMultipleDevicesTest);
 	addFunctionCase(deviceInitializationTests.get(), "create_device_unsupported_extensions",			"", createDeviceWithUnsupportedExtensionsTest);
diff --git a/external/vulkancts/modules/vulkan/api/vktApiDriverPropertiesTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiDriverPropertiesTests.cpp
index 891c794..1585c04 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiDriverPropertiesTests.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiDriverPropertiesTests.cpp
@@ -65,6 +65,7 @@
 
 static const VkConformanceVersionKHR knownConformanceVersions[] =
 {
+	makeConformanceVersion(1, 2, 3, 0),
 	makeConformanceVersion(1, 2, 2, 1),
 	makeConformanceVersion(1, 2, 2, 0),
 	makeConformanceVersion(1, 2, 1, 1),
diff --git a/external/vulkancts/modules/vulkan/api/vktApiExternalMemoryTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiExternalMemoryTests.cpp
index 06845fd..20c9fef 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiExternalMemoryTests.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiExternalMemoryTests.cpp
@@ -29,6 +29,7 @@
 #include "vkPlatform.hpp"
 #include "vkMemUtil.hpp"
 #include "vkApiVersion.hpp"
+#include "vkImageUtil.hpp"
 
 #include "tcuTestLog.hpp"
 #include "tcuCommandLine.hpp"
@@ -139,7 +140,7 @@
 
 	deMemcpy(ptr, data, size);
 
-	flushMappedMemoryRange(vkd, device, memory, 0, size);
+	flushMappedMemoryRange(vkd, device, memory, 0, VK_WHOLE_SIZE);
 
 	vkd.unmapMemory(device, memory);
 }
@@ -152,7 +153,7 @@
 {
 	void* const ptr = vk::mapMemory(vkd, device, memory, 0, size, 0);
 
-	invalidateMappedMemoryRange(vkd, device, memory, 0, size);
+	invalidateMappedMemoryRange(vkd, device, memory, 0, VK_WHOLE_SIZE);
 
 	if (deMemCmp(ptr, data, size) != 0)
 		TCU_FAIL("Memory contents don't match");
@@ -2839,7 +2840,7 @@
 };
 
 #if (DE_OS == DE_OS_WIN32)
-deUint32 chooseMemoryType (deUint32 bits)
+deUint32 chooseWin32MemoryType(deUint32 bits)
 {
 	if (bits == 0)
 		TCU_THROW(NotSupportedError, "No compatible memory type found");
@@ -2869,7 +2870,6 @@
 	checkBufferSupport(vki, physicalDevice, config.externalType, 0u, usage, config.dedicated);
 
 	// \note Buffer is only allocated to get memory requirements
-	deUint32									exportedMemoryTypeIndex	= ~0U;
 	const vk::Unique<vk::VkBuffer>				buffer					(createExternalBuffer(vkd, *device, queueFamilyIndex, config.externalType, bufferSize, 0u, usage));
 	const vk::VkMemoryRequirements				requirements			(getBufferMemoryRequirements(vkd, *device, *buffer));
 	const vk::VkExportMemoryWin32HandleInfoKHR	win32Info				=
@@ -2888,15 +2888,15 @@
 		(vk::VkExternalMemoryHandleTypeFlags)config.externalType
 	};
 
-	exportedMemoryTypeIndex = chooseMemoryType(requirements.memoryTypeBits & compatibleMemTypes);
-	const vk::VkMemoryAllocateInfo				info				=
+	const deUint32								exportedMemoryTypeIndex	= chooseWin32MemoryType(requirements.memoryTypeBits & compatibleMemTypes);
+	const vk::VkMemoryAllocateInfo				info					=
 	{
 		vk::VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,
 		&exportInfo,
 		requirements.size,
 		exportedMemoryTypeIndex
 	};
-	const vk::Unique<vk::VkDeviceMemory>		memory				(vk::allocateMemory(vkd, *device, &info));
+	const vk::Unique<vk::VkDeviceMemory>		memory					(vk::allocateMemory(vkd, *device, &info));
 	NativeHandle								handleA;
 
 	if (config.hostVisible)
@@ -2931,6 +2931,17 @@
 #endif
 }
 
+deUint32 getExportedMemoryTypeIndex(const vk::InstanceDriver& vki, const vk::VkPhysicalDevice physicalDevice, bool hostVisible, deUint32 memoryBits)
+{
+	if (hostVisible)
+	{
+		const vk::VkPhysicalDeviceMemoryProperties properties(vk::getPhysicalDeviceMemoryProperties(vki, physicalDevice));
+		return chooseHostVisibleMemoryType(memoryBits, properties);
+	}
+
+	return chooseMemoryType(memoryBits);
+}
+
 tcu::TestStatus testMemoryImportTwice (Context& context, MemoryTestConfig config)
 {
 	const vk::PlatformInterface&			vkp					(context.getPlatformInterface());
@@ -2947,12 +2958,12 @@
 
 	checkBufferSupport(vki, physicalDevice, config.externalType, 0u, usage, config.dedicated);
 
-	deUint32								exportedMemoryTypeIndex	= ~0U;
 	// \note Buffer is only allocated to get memory requirements
-	const vk::Unique<vk::VkBuffer>			buffer					(createExternalBuffer(vkd, *device, queueFamilyIndex, config.externalType, bufferSize, 0u, usage));
-	const vk::VkMemoryRequirements			requirements			(getBufferMemoryRequirements(vkd, *device, *buffer));
-	const vk::Unique<vk::VkDeviceMemory>	memory					(allocateExportableMemory(vki, physicalDevice, vkd, *device, requirements, config.externalType, config.hostVisible, config.dedicated ? *buffer : (vk::VkBuffer)0, exportedMemoryTypeIndex));
-	NativeHandle							handleA;
+	const vk::Unique<vk::VkBuffer>				buffer					(createExternalBuffer(vkd, *device, queueFamilyIndex, config.externalType, bufferSize, 0u, usage));
+	const vk::VkMemoryRequirements				requirements			(getBufferMemoryRequirements(vkd, *device, *buffer));
+	const deUint32								exportedMemoryTypeIndex	(getExportedMemoryTypeIndex(vki, physicalDevice, config.hostVisible, requirements.memoryTypeBits));
+	const vk::Unique<vk::VkDeviceMemory>		memory					(allocateExportableMemory(vkd, *device, requirements.size, exportedMemoryTypeIndex, config.externalType, config.dedicated ? *buffer : (vk::VkBuffer)0));
+	NativeHandle								handleA;
 
 	if (config.hostVisible)
 		writeHostMemory(vkd, *device, *memory, testData.size(), &testData[0]);
@@ -3004,11 +3015,11 @@
 
 	checkBufferSupport(vki, physicalDevice, config.externalType, 0u, usage, config.dedicated);
 
-	deUint32								exportedMemoryTypeIndex	= ~0U;
 	// \note Buffer is only allocated to get memory requirements
 	const vk::Unique<vk::VkBuffer>			buffer					(createExternalBuffer(vkd, *device, queueFamilyIndex, config.externalType, bufferSize, 0u, usage));
 	const vk::VkMemoryRequirements			requirements			(getBufferMemoryRequirements(vkd, *device, *buffer));
-	const vk::Unique<vk::VkDeviceMemory>	memory					(allocateExportableMemory(vki, physicalDevice, vkd, *device, requirements, config.externalType, config.hostVisible, config.dedicated ? *buffer : (vk::VkBuffer)0, exportedMemoryTypeIndex));
+	const deUint32							exportedMemoryTypeIndex	(getExportedMemoryTypeIndex(vki, physicalDevice, config.hostVisible, requirements.memoryTypeBits));
+	const vk::Unique<vk::VkDeviceMemory>	memory					(allocateExportableMemory(vkd, *device, requirements.size, exportedMemoryTypeIndex, config.externalType, config.dedicated ? *buffer : (vk::VkBuffer)0));
 	NativeHandle							handleA;
 
 	getMemoryNative(vkd, *device, *memory, config.externalType, handleA);
@@ -3040,11 +3051,11 @@
 
 	checkBufferSupport(vki, physicalDevice, config.externalType, 0u, usage, config.dedicated);
 
-	deUint32								exportedMemoryTypeIndex	= ~0U;
 	// \note Buffer is only allocated to get memory requirements
 	const vk::Unique<vk::VkBuffer>			buffer					(createExternalBuffer(vkd, *device, queueFamilyIndex, config.externalType, bufferSize, 0u, usage));
 	const vk::VkMemoryRequirements			requirements			(getBufferMemoryRequirements(vkd, *device, *buffer));
-	const vk::Unique<vk::VkDeviceMemory>	memory					(allocateExportableMemory(vki, physicalDevice, vkd, *device, requirements, config.externalType, config.hostVisible, config.dedicated ? *buffer : (vk::VkBuffer)0, exportedMemoryTypeIndex));
+	const deUint32							exportedMemoryTypeIndex	(getExportedMemoryTypeIndex(vki, physicalDevice, config.hostVisible, requirements.memoryTypeBits));
+	const vk::Unique<vk::VkDeviceMemory>	memory					(allocateExportableMemory(vkd, *device, requirements.size, exportedMemoryTypeIndex, config.externalType, config.dedicated ? *buffer : (vk::VkBuffer)0));
 
 	for (size_t ndx = 0; ndx < count; ndx++)
 	{
@@ -3069,11 +3080,11 @@
 
 	checkBufferSupport(vki, physicalDevice, config.externalType, 0u, usage, config.dedicated);
 
-	deUint32								exportedMemoryTypeIndex	= ~0U;
 	// \note Buffer is only allocated to get memory requirements
 	const vk::Unique<vk::VkBuffer>			buffer					(createExternalBuffer(vkd, *device, queueFamilyIndex, config.externalType, bufferSize, 0u, usage));
 	const vk::VkMemoryRequirements			requirements			(getBufferMemoryRequirements(vkd, *device, *buffer));
-	const vk::Unique<vk::VkDeviceMemory>	memory					(allocateExportableMemory(vki, physicalDevice, vkd, *device, requirements, config.externalType, config.hostVisible, config.dedicated ? *buffer : (vk::VkBuffer)0, exportedMemoryTypeIndex));
+	const deUint32							exportedMemoryTypeIndex	(getExportedMemoryTypeIndex(vki, physicalDevice, config.hostVisible, requirements.memoryTypeBits));
+	const vk::Unique<vk::VkDeviceMemory>	memory					(allocateExportableMemory(vkd, *device, requirements.size, exportedMemoryTypeIndex, config.externalType, config.dedicated ? *buffer : (vk::VkBuffer)0));
 
 	vk::VkMemoryFdPropertiesKHR	properties;
 	NativeHandle				handle;
@@ -3117,11 +3128,11 @@
 
 		checkBufferSupport(vki, physicalDevice, config.externalType, 0u, usage, config.dedicated);
 
-		deUint32								exportedMemoryTypeIndex	= ~0U;
 		// \note Buffer is only allocated to get memory requirements
 		const vk::Unique<vk::VkBuffer>			buffer					(createExternalBuffer(vkd, *device, queueFamilyIndex, config.externalType, bufferSize, 0u, usage));
 		const vk::VkMemoryRequirements			requirements			(getBufferMemoryRequirements(vkd, *device, *buffer));
-		const vk::Unique<vk::VkDeviceMemory>	memory					(allocateExportableMemory(vki, physicalDevice, vkd, *device, requirements, config.externalType, config.hostVisible, config.dedicated ? *buffer : (vk::VkBuffer)0, exportedMemoryTypeIndex));
+		const deUint32							exportedMemoryTypeIndex	(getExportedMemoryTypeIndex(vki, physicalDevice, config.hostVisible, requirements.memoryTypeBits));
+		const vk::Unique<vk::VkDeviceMemory>	memory					(allocateExportableMemory(vkd, *device, requirements.size, exportedMemoryTypeIndex, config.externalType, config.dedicated ? *buffer : (vk::VkBuffer)0));
 
 		if (config.hostVisible)
 			writeHostMemory(vkd, *device, *memory, testData.size(), &testData[0]);
@@ -3181,11 +3192,11 @@
 
 		checkBufferSupport(vki, physicalDevice, config.externalType, 0u, usage, config.dedicated);
 
-		deUint32								exportedMemoryTypeIndex	= ~0U;
 		// \note Buffer is only allocated to get memory requirements
 		const vk::Unique<vk::VkBuffer>			buffer					(createExternalBuffer(vkd, *device, queueFamilyIndex, config.externalType, bufferSize, 0u, usage));
 		const vk::VkMemoryRequirements			requirements			(getBufferMemoryRequirements(vkd, *device, *buffer));
-		const vk::Unique<vk::VkDeviceMemory>	memory					(allocateExportableMemory(vki, physicalDevice, vkd, *device, requirements, config.externalType, config.hostVisible, config.dedicated ? *buffer : (vk::VkBuffer)0, exportedMemoryTypeIndex));
+		const deUint32							exportedMemoryTypeIndex	(getExportedMemoryTypeIndex(vki, physicalDevice, config.hostVisible, requirements.memoryTypeBits));
+		const vk::Unique<vk::VkDeviceMemory>	memory					(allocateExportableMemory(vkd, *device, requirements.size, exportedMemoryTypeIndex, config.externalType, config.dedicated ? *buffer : (vk::VkBuffer)0));
 
 		if (config.hostVisible)
 			writeHostMemory(vkd, *device, *memory, testData.size(), &testData[0]);
@@ -3246,11 +3257,11 @@
 
 		checkBufferSupport(vki, physicalDevice, config.externalType, 0u, usage, config.dedicated);
 
-		deUint32								exportedMemoryTypeIndex	= ~0U;
 		// \note Buffer is only allocated to get memory requirements
 		const vk::Unique<vk::VkBuffer>			buffer					(createExternalBuffer(vkd, *device, queueFamilyIndex, config.externalType, bufferSize, 0u, usage));
 		const vk::VkMemoryRequirements			requirements			(getBufferMemoryRequirements(vkd, *device, *buffer));
-		const vk::Unique<vk::VkDeviceMemory>	memory					(allocateExportableMemory(vki, physicalDevice, vkd, *device, requirements, config.externalType, config.hostVisible, config.dedicated ? *buffer : (vk::VkBuffer)0, exportedMemoryTypeIndex));
+		const deUint32							exportedMemoryTypeIndex	(getExportedMemoryTypeIndex(vki, physicalDevice, config.hostVisible, requirements.memoryTypeBits));
+		const vk::Unique<vk::VkDeviceMemory>	memory					(allocateExportableMemory(vkd, *device, requirements.size, exportedMemoryTypeIndex, config.externalType, config.dedicated ? *buffer : (vk::VkBuffer)0));
 
 		if (config.hostVisible)
 			writeHostMemory(vkd, *device, *memory, testData.size(), &testData[0]);
@@ -3311,11 +3322,11 @@
 
 		checkBufferSupport(vki, physicalDevice, config.externalType, 0u, usage, config.dedicated);
 
-		deUint32								exportedMemoryTypeIndex	= ~0U;
 		// \note Buffer is only allocated to get memory requirements
 		const vk::Unique<vk::VkBuffer>			buffer					(createExternalBuffer(vkd, *device, queueFamilyIndex, config.externalType, bufferSize, 0u, usage));
 		const vk::VkMemoryRequirements			requirements			(getBufferMemoryRequirements(vkd, *device, *buffer));
-		const vk::Unique<vk::VkDeviceMemory>	memory					(allocateExportableMemory(vki, physicalDevice, vkd, *device, requirements, config.externalType, config.hostVisible, config.dedicated ? *buffer : (vk::VkBuffer)0, exportedMemoryTypeIndex));
+		const deUint32							exportedMemoryTypeIndex	(getExportedMemoryTypeIndex(vki, physicalDevice, config.hostVisible, requirements.memoryTypeBits));
+		const vk::Unique<vk::VkDeviceMemory>	memory					(allocateExportableMemory(vkd, *device, requirements.size, exportedMemoryTypeIndex, config.externalType, config.dedicated ? *buffer : (vk::VkBuffer)0));
 
 		if (config.hostVisible)
 			writeHostMemory(vkd, *device, *memory, testData.size(), &testData[0]);
@@ -3463,11 +3474,11 @@
 
 	checkBufferSupport(vki, physicalDevice, config.externalType, 0u, usage, config.dedicated);
 
-	deUint32								exportedMemoryTypeIndex	= ~0U;
 	// \note Buffer is only allocated to get memory requirements
 	const vk::Unique<vk::VkBuffer>			bufferA					(createExternalBuffer(vkd, *device, queueFamilyIndex, config.externalType, bufferSize, 0u, usage));
 	const vk::VkMemoryRequirements			requirements			(getBufferMemoryRequirements(vkd, *device, *bufferA));
-	const vk::Unique<vk::VkDeviceMemory>	memoryA					(allocateExportableMemory(vkd, *device, requirements, config.externalType, config.dedicated ? *bufferA : (vk::VkBuffer)0, exportedMemoryTypeIndex));
+	const deUint32							exportedMemoryTypeIndex	(chooseMemoryType(requirements.memoryTypeBits));
+	const vk::Unique<vk::VkDeviceMemory>	memoryA					(allocateExportableMemory(vkd, *device, requirements.size, exportedMemoryTypeIndex, config.externalType, config.dedicated ? *bufferA : (vk::VkBuffer)0));
 	NativeHandle							handle;
 
 	VK_CHECK(vkd.bindBufferMemory(*device, *bufferA, *memoryA, 0u));
@@ -3501,11 +3512,11 @@
 
 	checkBufferSupport(vki, physicalDevice, config.externalType, 0u, usage, config.dedicated);
 
-	deUint32								exportedMemoryTypeIndex	= ~0U;
 	// \note Buffer is only allocated to get memory requirements
 	const vk::Unique<vk::VkBuffer>			bufferA					(createExternalBuffer(vkd, *device, queueFamilyIndex, config.externalType, bufferSize, 0u, usage));
 	const vk::VkMemoryRequirements			requirements			(getBufferMemoryRequirements(vkd, *device, *bufferA));
-	const vk::Unique<vk::VkDeviceMemory>	memoryA					(allocateExportableMemory(vkd, *device, requirements, config.externalType, config.dedicated ? *bufferA : (vk::VkBuffer)0, exportedMemoryTypeIndex));
+	const deUint32							exportedMemoryTypeIndex	(chooseMemoryType(requirements.memoryTypeBits));
+	const vk::Unique<vk::VkDeviceMemory>	memoryA					(allocateExportableMemory(vkd, *device, requirements.size, exportedMemoryTypeIndex, config.externalType, config.dedicated ? *bufferA : (vk::VkBuffer)0));
 	NativeHandle							handle;
 
 	getMemoryNative(vkd, *device, *memoryA, config.externalType, handle);
@@ -3538,11 +3549,11 @@
 
 	checkBufferSupport(vki, physicalDevice, config.externalType, 0u, usage, config.dedicated);
 
-	deUint32								exportedMemoryTypeIndex	= ~0U;
 	// \note Buffer is only allocated to get memory requirements
 	const vk::Unique<vk::VkBuffer>			bufferA					(createExternalBuffer(vkd, *device, queueFamilyIndex, config.externalType, bufferSize, 0u, usage));
 	const vk::VkMemoryRequirements			requirements			(getBufferMemoryRequirements(vkd, *device, *bufferA));
-	const vk::Unique<vk::VkDeviceMemory>	memoryA					(allocateExportableMemory(vkd, *device, requirements, config.externalType, config.dedicated ? *bufferA : (vk::VkBuffer)0, exportedMemoryTypeIndex));
+	const deUint32							exportedMemoryTypeIndex	(chooseMemoryType(requirements.memoryTypeBits));
+	const vk::Unique<vk::VkDeviceMemory>	memoryA					(allocateExportableMemory(vkd, *device, requirements.size, exportedMemoryTypeIndex, config.externalType, config.dedicated ? *bufferA : (vk::VkBuffer)0));
 	NativeHandle							handle;
 
 	getMemoryNative(vkd, *device, *memoryA, config.externalType, handle);
@@ -3742,10 +3753,10 @@
 
 	checkImageSupport(vki, physicalDevice, config.externalType, 0u, usage, format, tiling, config.dedicated);
 
-	deUint32								exportedMemoryTypeIndex	= ~0U;
 	const vk::Unique<vk::VkImage>			imageA					(createExternalImage(vkd, *device, queueFamilyIndex, config.externalType, format, width, height, tiling, 0u, usage));
 	const vk::VkMemoryRequirements			requirements			(getImageMemoryRequirements(vkd, *device, *imageA));
-	const vk::Unique<vk::VkDeviceMemory>	memoryA					(allocateExportableMemory(vkd, *device, requirements, config.externalType, config.dedicated ? *imageA : (vk::VkImage)0, exportedMemoryTypeIndex));
+	const deUint32							exportedMemoryTypeIndex	(chooseMemoryType(requirements.memoryTypeBits));
+	const vk::Unique<vk::VkDeviceMemory>	memoryA					(allocateExportableMemory(vkd, *device, requirements.size, exportedMemoryTypeIndex, config.externalType, config.dedicated ? *imageA : (vk::VkImage)0));
 	NativeHandle							handle;
 
 	VK_CHECK(vkd.bindImageMemory(*device, *imageA, *memoryA, 0u));
@@ -3782,10 +3793,10 @@
 
 	checkImageSupport(vki, physicalDevice, config.externalType, 0u, usage, format, tiling, config.dedicated);
 
-	deUint32								exportedMemoryTypeIndex	= ~0U;
 	const vk::Unique<vk::VkImage>			imageA					(createExternalImage(vkd, *device, queueFamilyIndex, config.externalType, format, width, height, tiling, 0u, usage));
 	const vk::VkMemoryRequirements			requirements			(getImageMemoryRequirements(vkd, *device, *imageA));
-	const vk::Unique<vk::VkDeviceMemory>	memoryA					(allocateExportableMemory(vkd, *device, requirements, config.externalType, config.dedicated ? *imageA : (vk::VkImage)0, exportedMemoryTypeIndex));
+	const deUint32							exportedMemoryTypeIndex	(chooseMemoryType(requirements.memoryTypeBits));
+	const vk::Unique<vk::VkDeviceMemory>	memoryA					(allocateExportableMemory(vkd, *device, requirements.size, exportedMemoryTypeIndex, config.externalType, config.dedicated ? *imageA : (vk::VkImage)0));
 	NativeHandle							handle;
 
 	getMemoryNative(vkd, *device, *memoryA, config.externalType, handle);
@@ -3821,11 +3832,11 @@
 
 	checkImageSupport(vki, physicalDevice, config.externalType, 0u, usage, format, tiling, config.dedicated);
 
-	deUint32								exportedMemoryTypeIndex	= ~0U;
 	// \note Image is only allocated to get memory requirements
 	const vk::Unique<vk::VkImage>			imageA					(createExternalImage(vkd, *device, queueFamilyIndex, config.externalType, format, width, height, tiling, 0u, usage));
 	const vk::VkMemoryRequirements			requirements			(getImageMemoryRequirements(vkd, *device, *imageA));
-	const vk::Unique<vk::VkDeviceMemory>	memoryA					(allocateExportableMemory(vkd, *device, requirements, config.externalType, config.dedicated ? *imageA : (vk::VkImage)0, exportedMemoryTypeIndex));
+	const deUint32							exportedMemoryTypeIndex	(chooseMemoryType(requirements.memoryTypeBits));
+	const vk::Unique<vk::VkDeviceMemory>	memoryA					(allocateExportableMemory(vkd, *device, requirements.size, exportedMemoryTypeIndex, config.externalType, config.dedicated ? *imageA : (vk::VkImage)0));
 	NativeHandle							handle;
 
 	getMemoryNative(vkd, *device, *memoryA, config.externalType, handle);
@@ -3992,13 +4003,16 @@
 
 	vki.getPhysicalDeviceFeatures2(physicalDevice, &deviceFeatures);
 
+	const vk::VkImageUsageFlagBits framebufferUsageFlag = vk::isDepthStencilFormat(format) ? vk::VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
+																						   : vk::VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
+
 	const vk::VkImageUsageFlagBits				  usageFlags[]		  =
 	{
 		vk::VK_IMAGE_USAGE_TRANSFER_SRC_BIT,
 		vk::VK_IMAGE_USAGE_TRANSFER_DST_BIT,
 		vk::VK_IMAGE_USAGE_SAMPLED_BIT,
 		vk::VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,
-		vk::VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,
+		framebufferUsageFlag,
 	};
 	const vk::VkImageCreateFlagBits				  createFlags[]		  =
 	{
@@ -4013,9 +4027,10 @@
 		vk::VK_IMAGE_TILING_LINEAR,
 	};
 	deUint64 mustSupportAhbUsageFlags = ahbApi->mustSupportAhbUsageFlags();
+	const size_t	one							= 1u;
 	const size_t	numOfUsageFlags				= DE_LENGTH_OF_ARRAY(usageFlags);
 	const size_t	numOfCreateFlags			= DE_LENGTH_OF_ARRAY(createFlags);
-	const size_t	numOfFlagCombos				= 1u << (numOfUsageFlags + numOfCreateFlags);
+	const size_t	numOfFlagCombos				= one << (numOfUsageFlags + numOfCreateFlags);
 	const size_t	numOfTilings				= DE_LENGTH_OF_ARRAY(tilings);
 
 	for (size_t combo = 0; combo < numOfFlagCombos; combo++)
@@ -4026,7 +4041,7 @@
 		bool					enableMaxLayerTest	= true;
 		for (size_t usageNdx = 0; usageNdx < numOfUsageFlags; usageNdx++)
 		{
-			if ((combo & (1u << usageNdx)) == 0)
+			if ((combo & (one << usageNdx)) == 0)
 				continue;
 			usage |= usageFlags[usageNdx];
 			requiredAhbUsage |= ahbApi->vkUsageToAhbUsage(usageFlags[usageNdx]);
@@ -4034,7 +4049,7 @@
 		for (size_t createFlagNdx = 0; createFlagNdx < numOfCreateFlags; createFlagNdx++)
 		{
 			const size_t	bit	= numOfUsageFlags + createFlagNdx;
-			if ((combo & (1u << bit)) == 0)
+			if ((combo & (one << bit)) == 0)
 				continue;
 			if (((createFlags[createFlagNdx] & vk::VK_IMAGE_CREATE_PROTECTED_BIT) == vk::VK_IMAGE_CREATE_PROTECTED_BIT ) &&
 				(protectedFeatures.protectedMemory == VK_FALSE))
@@ -4133,10 +4148,10 @@
 			};
 			for (size_t i = 0; i < DE_LENGTH_OF_ARRAY(sizes); i++)
 			{
-				deUint32								exportedMemoryTypeIndex	= ~0U;
 				const vk::Unique<vk::VkImage>			image					(createExternalImage(vkd, *device, queueFamilyIndex, externalMemoryType, format, sizes[i].width, sizes[i].height, tiling, createFlag, usage));
 				const vk::VkMemoryRequirements			requirements			(getImageMemoryRequirements(vkd, *device, *image));
-				const vk::Unique<vk::VkDeviceMemory>	memory					(allocateExportableMemory(vkd, *device, requirements, externalMemoryType, *image, exportedMemoryTypeIndex));
+				const deUint32							exportedMemoryTypeIndex	(chooseMemoryType(requirements.memoryTypeBits));
+				const vk::Unique<vk::VkDeviceMemory>	memory					(allocateExportableMemory(vkd, *device, requirements.size, exportedMemoryTypeIndex, externalMemoryType, *image));
 				NativeHandle							handle;
 
 				VK_CHECK(vkd.bindImageMemory(*device, *image, *memory, 0u));
@@ -4154,10 +4169,10 @@
 
 			if (properties.imageFormatProperties.maxMipLevels > 1u)
 			{
-				deUint32								exportedMemoryTypeIndex	= ~0U;
 				const vk::Unique<vk::VkImage>			image					(createExternalImage(vkd, *device, queueFamilyIndex, externalMemoryType, format, 64u, 64u, tiling, createFlag, usage, properties.imageFormatProperties.maxMipLevels));
 				const vk::VkMemoryRequirements			requirements			(getImageMemoryRequirements(vkd, *device, *image));
-				const vk::Unique<vk::VkDeviceMemory>	memory					(allocateExportableMemory(vkd, *device, requirements, externalMemoryType, *image, exportedMemoryTypeIndex));
+				const deUint32							exportedMemoryTypeIndex	(chooseMemoryType(requirements.memoryTypeBits));
+				const vk::Unique<vk::VkDeviceMemory>	memory					(allocateExportableMemory(vkd, *device, requirements.size, exportedMemoryTypeIndex, externalMemoryType, *image));
 				NativeHandle							handle;
 
 				VK_CHECK(vkd.bindImageMemory(*device, *image, *memory, 0u));
@@ -4172,10 +4187,10 @@
 
 			if ((properties.imageFormatProperties.maxArrayLayers > 1u) && enableMaxLayerTest)
 			{
-				deUint32								exportedMemoryTypeIndex	= ~0U;
 				const vk::Unique<vk::VkImage>			image					(createExternalImage(vkd, *device, queueFamilyIndex, externalMemoryType, format, 64u, 64u, tiling, createFlag, usage, 1u, properties.imageFormatProperties.maxArrayLayers));
 				const vk::VkMemoryRequirements			requirements			(getImageMemoryRequirements(vkd, *device, *image));
-				const vk::Unique<vk::VkDeviceMemory>	memory					(allocateExportableMemory(vkd, *device, requirements, externalMemoryType, *image, exportedMemoryTypeIndex));
+				const deUint32							exportedMemoryTypeIndex	(chooseMemoryType(requirements.memoryTypeBits));
+				const vk::Unique<vk::VkDeviceMemory>	memory					(allocateExportableMemory(vkd, *device, requirements.size, exportedMemoryTypeIndex, externalMemoryType, *image));
 				NativeHandle							handle;
 
 				VK_CHECK(vkd.bindImageMemory(*device, *image, *memory, 0u));
@@ -4360,6 +4375,12 @@
 			vk::VK_FORMAT_R5G6B5_UNORM_PACK16,
 			vk::VK_FORMAT_R16G16B16A16_SFLOAT,
 			vk::VK_FORMAT_A2B10G10R10_UNORM_PACK32,
+			vk::VK_FORMAT_D16_UNORM,
+			vk::VK_FORMAT_X8_D24_UNORM_PACK32,
+			vk::VK_FORMAT_D24_UNORM_S8_UINT,
+			vk::VK_FORMAT_D32_SFLOAT,
+			vk::VK_FORMAT_D32_SFLOAT_S8_UINT,
+			vk::VK_FORMAT_S8_UINT,
 		};
 		const size_t		numOfAhbFormats	= DE_LENGTH_OF_ARRAY(ahbFormats);
 
diff --git a/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp b/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
index 06c6d0e..d9564c0 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
@@ -2845,9 +2845,9 @@
 
 tcu::TestStatus deviceMandatoryFeatures(Context& context)
 {
-	if( checkMandatoryFeatures(context) )
+	if ( checkMandatoryFeatures(context) )
 		return tcu::TestStatus::pass("Passed");
-	return tcu::TestStatus::fail("Not all mandatory features are supported ( see: chapter 35.1 )");
+	return tcu::TestStatus::fail("Not all mandatory features are supported ( see: vkspec.html#features-requirements )");
 }
 
 VkFormatFeatureFlags getRequiredOptimalTilingFeatures (VkFormat format)
@@ -2986,6 +2986,68 @@
 			}
 		}
 	}
+
+	// VK_EXT_filter_cubic:
+	// If cubic filtering is supported, VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT must be supported for the following image view types:
+	// VK_IMAGE_VIEW_TYPE_2D, VK_IMAGE_VIEW_TYPE_2D_ARRAY
+	static const VkFormat s_requiredSampledImageFilterCubicFormats[] =
+	{
+		VK_FORMAT_R4G4_UNORM_PACK8,
+		VK_FORMAT_R4G4B4A4_UNORM_PACK16,
+		VK_FORMAT_B4G4R4A4_UNORM_PACK16,
+		VK_FORMAT_R5G6B5_UNORM_PACK16,
+		VK_FORMAT_B5G6R5_UNORM_PACK16,
+		VK_FORMAT_R5G5B5A1_UNORM_PACK16,
+		VK_FORMAT_B5G5R5A1_UNORM_PACK16,
+		VK_FORMAT_A1R5G5B5_UNORM_PACK16,
+		VK_FORMAT_R8_UNORM,
+		VK_FORMAT_R8_SNORM,
+		VK_FORMAT_R8_SRGB,
+		VK_FORMAT_R8G8_UNORM,
+		VK_FORMAT_R8G8_SNORM,
+		VK_FORMAT_R8G8_SRGB,
+		VK_FORMAT_R8G8B8_UNORM,
+		VK_FORMAT_R8G8B8_SNORM,
+		VK_FORMAT_R8G8B8_SRGB,
+		VK_FORMAT_B8G8R8_UNORM,
+		VK_FORMAT_B8G8R8_SNORM,
+		VK_FORMAT_B8G8R8_SRGB,
+		VK_FORMAT_R8G8B8A8_UNORM,
+		VK_FORMAT_R8G8B8A8_SNORM,
+		VK_FORMAT_R8G8B8A8_SRGB,
+		VK_FORMAT_B8G8R8A8_UNORM,
+		VK_FORMAT_B8G8R8A8_SNORM,
+		VK_FORMAT_B8G8R8A8_SRGB,
+		VK_FORMAT_A8B8G8R8_UNORM_PACK32,
+		VK_FORMAT_A8B8G8R8_SNORM_PACK32,
+		VK_FORMAT_A8B8G8R8_SRGB_PACK32
+	};
+
+	static const VkFormat s_requiredSampledImageFilterCubicFormatsETC2[] =
+	{
+		VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK,
+		VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK,
+		VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK,
+		VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK,
+		VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK,
+		VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK
+	};
+
+	if ( (queriedFlags & VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT) != 0 && de::contains(context.getDeviceExtensions().begin(), context.getDeviceExtensions().end(), "VK_EXT_filter_cubic") )
+	{
+		if ( de::contains(DE_ARRAY_BEGIN(s_requiredSampledImageFilterCubicFormats), DE_ARRAY_END(s_requiredSampledImageFilterCubicFormats), format) )
+			flags |= VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT;
+
+		VkPhysicalDeviceFeatures2						coreFeatures;
+		deMemset(&coreFeatures, 0, sizeof(coreFeatures));
+
+		coreFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
+		coreFeatures.pNext = DE_NULL;
+		context.getInstanceInterface().getPhysicalDeviceFeatures2(context.getPhysicalDevice(), &coreFeatures);
+		if ( coreFeatures.features.textureCompressionETC2 && de::contains(DE_ARRAY_BEGIN(s_requiredSampledImageFilterCubicFormatsETC2), DE_ARRAY_END(s_requiredSampledImageFilterCubicFormatsETC2), format) )
+			flags |= VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT;
+	}
+
 	return flags;
 }
 
@@ -3311,7 +3373,8 @@
 		{
 			const VkFormatFeatureFlags	required	= VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
 													| VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
-													| VK_FORMAT_FEATURE_TRANSFER_DST_BIT;
+													| VK_FORMAT_FEATURE_TRANSFER_DST_BIT
+													| VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT;
 
 			if ((supported & required) != required)
 			{
@@ -3338,6 +3401,16 @@
 				<< TestLog::EndMessage;
 			allOk = false;
 		}
+
+		if (((supported & VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT) != 0) &&
+			((supported & VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT) == 0))
+		{
+			log << TestLog::Message << "ERROR in " << fieldName << ":\n"
+									<< " supports VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT"
+									<< " but not VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT"
+				<< TestLog::EndMessage;
+			allOk = false;
+		}
 	}
 
 	if (allOk)
@@ -3790,8 +3863,8 @@
 	ImageFormatPropertyCase (void)
 		: testFunction	((Function)DE_NULL)
 		, format		(VK_FORMAT_UNDEFINED)
-		, imageType		(VK_IMAGE_TYPE_LAST)
-		, tiling		(VK_IMAGE_TILING_MAX_ENUM)
+		, imageType		(VK_CORE_IMAGE_TYPE_LAST)
+		, tiling		(VK_CORE_IMAGE_TILING_LAST)
 	{}
 };
 
@@ -3972,6 +4045,7 @@
 	const VkPhysicalDevice		physicalDevice	= context.getPhysicalDevice();
 	const CustomInstance		instance		(createCustomInstanceWithExtension(context, "VK_KHR_get_physical_device_properties2"));
 	const InstanceDriver&		vki				(instance.getDriver());
+	const int					count			= 2u;
 	TestLog&					log				= context.getTestContext().getLog();
 	VkPhysicalDeviceFeatures	coreFeatures;
 	VkPhysicalDeviceFeatures2	extFeatures;
@@ -3995,258 +4069,8 @@
 	log << TestLog::Message << extFeatures << TestLog::EndMessage;
 
 	vector<VkExtensionProperties> properties	= enumerateDeviceExtensionProperties(vki, physicalDevice, DE_NULL);
-	const bool ext_conditional_rendering		= checkExtension(properties, "VK_EXT_conditional_rendering");
-	const bool ext_scalar_block_layout			= checkExtension(properties, "VK_EXT_scalar_block_layout");
-	const bool khr_performance_counter			= checkExtension(properties, "VK_KHR_performance_query");
-	const bool khr_16bit_storage				= checkExtension(properties, "VK_KHR_16bit_storage")			||	context.contextSupports(vk::ApiVersion(1, 1, 0));
-	const bool khr_multiview					= checkExtension(properties, "VK_KHR_multiview")				||	context.contextSupports(vk::ApiVersion(1, 1, 0));
-	const bool khr_device_protected_memory		=																	context.contextSupports(vk::ApiVersion(1, 1, 0));
-	const bool khr_sampler_ycbcr_conversion		= checkExtension(properties, "VK_KHR_sampler_ycbcr_conversion")	||	context.contextSupports(vk::ApiVersion(1, 1, 0));
-	const bool khr_variable_pointers			= checkExtension(properties, "VK_KHR_variable_pointers")		||	context.contextSupports(vk::ApiVersion(1, 1, 0));
-	const bool khr_8bit_storage					= checkExtension(properties, "VK_KHR_8bit_storage")				||	context.contextSupports(vk::ApiVersion(1, 2, 0));
-	const bool khr_shader_atomic_int64			= checkExtension(properties, "VK_KHR_shader_atomic_int64")		||	context.contextSupports(vk::ApiVersion(1, 2, 0));
-	const bool khr_shader_float16_int8			= checkExtension(properties, "VK_KHR_shader_float16_int8")		||	context.contextSupports(vk::ApiVersion(1, 2, 0));
-	const bool khr_buffer_device_address		= checkExtension(properties, "VK_KHR_buffer_device_address")	||	context.contextSupports(vk::ApiVersion(1, 2, 0));
-	const bool ext_descriptor_indexing			= checkExtension(properties, "VK_EXT_descriptor_indexing")		||	context.contextSupports(vk::ApiVersion(1, 2, 0));
-	const bool ext_buffer_device_address		= checkExtension(properties, "VK_EXT_buffer_device_address");
 
-	const int count = 2u;
-	VkPhysicalDeviceConditionalRenderingFeaturesEXT	deviceConditionalRenderingFeatures[count];
-	VkPhysicalDeviceScalarBlockLayoutFeatures		scalarBlockLayoutFeatures[count];
-	VkPhysicalDevicePerformanceQueryFeaturesKHR		performanceQueryFeatures[count];
-	VkPhysicalDevice16BitStorageFeatures			device16BitStorageFeatures[count];
-	VkPhysicalDeviceMultiviewFeatures				deviceMultiviewFeatures[count];
-	VkPhysicalDeviceProtectedMemoryFeatures			protectedMemoryFeatures[count];
-	VkPhysicalDeviceSamplerYcbcrConversionFeatures	samplerYcbcrConversionFeatures[count];
-	VkPhysicalDeviceVariablePointersFeatures		variablePointerFeatures[count];
-	VkPhysicalDevice8BitStorageFeatures				device8BitStorageFeatures[count];
-	VkPhysicalDeviceShaderAtomicInt64Features		deviceShaderAtomicInt64Features[count];
-	VkPhysicalDeviceShaderFloat16Int8Features		deviceShaderFloat16Int8Features[count];
-	VkPhysicalDeviceBufferDeviceAddressFeaturesEXT	deviceBufferDeviceAddressFeaturesEXT[count];
-	VkPhysicalDeviceBufferDeviceAddressFeatures		deviceBufferDeviceAddressFeatures[count];
-	VkPhysicalDeviceDescriptorIndexingFeatures		deviceDescriptorIndexingFeatures[count];
-	VkPhysicalDeviceTimelineSemaphoreFeatures		timelineSemaphoreFeatures[count];
-
-	for (int ndx = 0; ndx < count; ++ndx)
-	{
-		deMemset(&deviceConditionalRenderingFeatures[ndx],	0xFF * ndx, sizeof(VkPhysicalDeviceConditionalRenderingFeaturesEXT));
-		deMemset(&scalarBlockLayoutFeatures[ndx],			0xFF * ndx, sizeof(VkPhysicalDeviceScalarBlockLayoutFeatures));
-		deMemset(&performanceQueryFeatures[ndx],			0xFF * ndx, sizeof(VkPhysicalDevicePerformanceQueryFeaturesKHR));
-		deMemset(&device16BitStorageFeatures[ndx],			0xFF * ndx, sizeof(VkPhysicalDevice16BitStorageFeatures));
-		deMemset(&deviceMultiviewFeatures[ndx],				0xFF * ndx, sizeof(VkPhysicalDeviceMultiviewFeatures));
-		deMemset(&protectedMemoryFeatures[ndx],				0xFF * ndx, sizeof(VkPhysicalDeviceProtectedMemoryFeatures));
-		deMemset(&samplerYcbcrConversionFeatures[ndx],		0xFF * ndx, sizeof(VkPhysicalDeviceSamplerYcbcrConversionFeatures));
-		deMemset(&variablePointerFeatures[ndx],				0xFF * ndx, sizeof(VkPhysicalDeviceVariablePointersFeatures));
-		deMemset(&device8BitStorageFeatures[ndx],			0xFF * ndx, sizeof(VkPhysicalDevice8BitStorageFeaturesKHR));
-		deMemset(&deviceShaderAtomicInt64Features[ndx],		0xFF * ndx, sizeof(VkPhysicalDeviceShaderAtomicInt64Features));
-		deMemset(&deviceShaderFloat16Int8Features[ndx],		0xFF * ndx, sizeof(VkPhysicalDeviceShaderFloat16Int8Features));
-		deMemset(&deviceBufferDeviceAddressFeatures[ndx],	0xFF * ndx, sizeof(VkPhysicalDeviceBufferDeviceAddressFeatures));
-		deMemset(&deviceBufferDeviceAddressFeaturesEXT[ndx],0xFF * ndx, sizeof(VkPhysicalDeviceBufferDeviceAddressFeaturesEXT));
-		deMemset(&deviceDescriptorIndexingFeatures[ndx],	0xFF * ndx, sizeof(VkPhysicalDeviceDescriptorIndexingFeatures));
-
-		deviceConditionalRenderingFeatures[ndx].sType	= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT;
-		deviceConditionalRenderingFeatures[ndx].pNext	= &scalarBlockLayoutFeatures[ndx];
-
-		scalarBlockLayoutFeatures[ndx].sType			= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT;
-		scalarBlockLayoutFeatures[ndx].pNext			= &performanceQueryFeatures[ndx];
-
-		performanceQueryFeatures[ndx].sType				= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR;
-		performanceQueryFeatures[ndx].pNext				= &device16BitStorageFeatures[ndx];
-
-		device16BitStorageFeatures[ndx].sType			= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES;
-		device16BitStorageFeatures[ndx].pNext			= &deviceMultiviewFeatures[ndx];
-
-		deviceMultiviewFeatures[ndx].sType				= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES;
-		deviceMultiviewFeatures[ndx].pNext				= &protectedMemoryFeatures[ndx];
-
-		protectedMemoryFeatures[ndx].sType				= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES;
-		protectedMemoryFeatures[ndx].pNext				= &samplerYcbcrConversionFeatures[ndx];
-
-		samplerYcbcrConversionFeatures[ndx].sType		= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES;
-		samplerYcbcrConversionFeatures[ndx].pNext		= &variablePointerFeatures[ndx];
-
-		variablePointerFeatures[ndx].sType				= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES;
-		variablePointerFeatures[ndx].pNext				= &device8BitStorageFeatures[ndx];
-
-		device8BitStorageFeatures[ndx].sType			= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR;
-		device8BitStorageFeatures[ndx].pNext			= &deviceShaderAtomicInt64Features[ndx];
-
-		deviceShaderAtomicInt64Features[ndx].sType		= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES;
-		deviceShaderAtomicInt64Features[ndx].pNext		= &deviceShaderFloat16Int8Features[ndx];
-
-		deviceShaderFloat16Int8Features[ndx].sType		= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES;
-		deviceShaderFloat16Int8Features[ndx].pNext		= &deviceBufferDeviceAddressFeatures[ndx];
-
-		deviceBufferDeviceAddressFeatures[ndx].sType	= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES;
-		deviceBufferDeviceAddressFeatures[ndx].pNext	= &deviceBufferDeviceAddressFeaturesEXT[ndx];
-
-		deviceBufferDeviceAddressFeaturesEXT[ndx].sType	= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT;
-		deviceBufferDeviceAddressFeaturesEXT[ndx].pNext	= &deviceDescriptorIndexingFeatures[ndx];
-
-		deviceDescriptorIndexingFeatures[ndx].sType		= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES;
-		deviceDescriptorIndexingFeatures[ndx].pNext		= &timelineSemaphoreFeatures[ndx];
-
-		timelineSemaphoreFeatures[ndx].sType			= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES;
-		timelineSemaphoreFeatures[ndx].pNext			= DE_NULL;
-
-		deMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));
-		extFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-		extFeatures.pNext = &deviceConditionalRenderingFeatures[ndx];
-
-		vki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);
-	}
-
-	if (ext_conditional_rendering)
-		log << TestLog::Message << deviceConditionalRenderingFeatures[0] << TestLog::EndMessage;
-	if (ext_scalar_block_layout)
-		log << TestLog::Message << scalarBlockLayoutFeatures[0] << TestLog::EndMessage;
-	if (khr_performance_counter)
-		log << TestLog::Message << performanceQueryFeatures[0] << TestLog::EndMessage;
-	if (khr_16bit_storage)
-		log << TestLog::Message << device16BitStorageFeatures[0] << TestLog::EndMessage;
-	if (khr_multiview)
-		log << TestLog::Message << deviceMultiviewFeatures[0] << TestLog::EndMessage;
-	if (khr_device_protected_memory)
-		log << TestLog::Message << protectedMemoryFeatures[0] << TestLog::EndMessage;
-	if (khr_sampler_ycbcr_conversion)
-		log << TestLog::Message << samplerYcbcrConversionFeatures[0] << TestLog::EndMessage;
-	if (khr_variable_pointers)
-		log << TestLog::Message << variablePointerFeatures[0] << TestLog::EndMessage;
-	if (khr_8bit_storage)
-		log << TestLog::Message << device8BitStorageFeatures[0] << TestLog::EndMessage;
-	if (khr_shader_atomic_int64)
-		log << TestLog::Message << deviceShaderAtomicInt64Features[0] << TestLog::EndMessage;
-	if (khr_shader_float16_int8)
-		log << TestLog::Message << deviceShaderFloat16Int8Features[0] << TestLog::EndMessage;
-	if (khr_buffer_device_address)
-		log << TestLog::Message << deviceBufferDeviceAddressFeatures[0] << TestLog::EndMessage;
-	if (ext_buffer_device_address)
-		log << TestLog::Message << deviceBufferDeviceAddressFeaturesEXT[0] << TestLog::EndMessage;
-	if (ext_descriptor_indexing)
-		log << TestLog::Message << deviceDescriptorIndexingFeatures[0] << TestLog::EndMessage;
-
-	if ( ext_conditional_rendering &&
-		(	deviceConditionalRenderingFeatures[0].conditionalRendering				!= deviceConditionalRenderingFeatures[1].conditionalRendering ||
-			deviceConditionalRenderingFeatures[0].inheritedConditionalRendering		!= deviceConditionalRenderingFeatures[1].inheritedConditionalRendering ))
-	{
-		TCU_FAIL("Mismatch between VkPhysicalDeviceConditionalRenderingFeaturesEXT");
-	}
-	if ( khr_performance_counter &&
-		(	performanceQueryFeatures[0].performanceCounterQueryPools			!= performanceQueryFeatures[1].performanceCounterQueryPools ||
-			performanceQueryFeatures[0].performanceCounterMultipleQueryPools	!= performanceQueryFeatures[1].performanceCounterMultipleQueryPools ))
-	{
-		TCU_FAIL("Mismatch between VkPhysicalDevicePerformancQueryFeaturesKHR");
-	}
-
-	if ( ext_scalar_block_layout &&
-		(	scalarBlockLayoutFeatures[0].scalarBlockLayout != scalarBlockLayoutFeatures[1].scalarBlockLayout ))
-	{
-		TCU_FAIL("Mismatch between VkPhysicalDeviceScalarBlockLayoutFeatures");
-	}
-
-	if ( khr_performance_counter &&
-		(	performanceQueryFeatures[0].performanceCounterQueryPools			!= performanceQueryFeatures[1].performanceCounterQueryPools ||
-			performanceQueryFeatures[0].performanceCounterMultipleQueryPools	!= performanceQueryFeatures[1].performanceCounterMultipleQueryPools ))
-	{
-		TCU_FAIL("Mismatch between VkPhysicalDevicePerformancQueryFeaturesKHR");
-	}
-
-	if ( khr_16bit_storage &&
-		(	device16BitStorageFeatures[0].storageBuffer16BitAccess				!= device16BitStorageFeatures[1].storageBuffer16BitAccess ||
-			device16BitStorageFeatures[0].uniformAndStorageBuffer16BitAccess	!= device16BitStorageFeatures[1].uniformAndStorageBuffer16BitAccess ||
-			device16BitStorageFeatures[0].storagePushConstant16					!= device16BitStorageFeatures[1].storagePushConstant16 ||
-			device16BitStorageFeatures[0].storageInputOutput16					!= device16BitStorageFeatures[1].storageInputOutput16 ))
-	{
-		TCU_FAIL("Mismatch between VkPhysicalDevice16BitStorageFeatures");
-	}
-
-	if ( khr_multiview &&
-		(	deviceMultiviewFeatures[0].multiview					!= deviceMultiviewFeatures[1].multiview ||
-			deviceMultiviewFeatures[0].multiviewGeometryShader		!= deviceMultiviewFeatures[1].multiviewGeometryShader ||
-			deviceMultiviewFeatures[0].multiviewTessellationShader	!= deviceMultiviewFeatures[1].multiviewTessellationShader ))
-	{
-		TCU_FAIL("Mismatch between VkPhysicalDeviceMultiviewFeatures");
-	}
-
-	if ( khr_device_protected_memory && protectedMemoryFeatures[0].protectedMemory != protectedMemoryFeatures[1].protectedMemory )
-	{
-		TCU_FAIL("Mismatch between VkPhysicalDeviceProtectedMemoryFeatures");
-	}
-
-	if ( khr_sampler_ycbcr_conversion && samplerYcbcrConversionFeatures[0].samplerYcbcrConversion != samplerYcbcrConversionFeatures[1].samplerYcbcrConversion )
-	{
-		TCU_FAIL("Mismatch between VkPhysicalDeviceSamplerYcbcrConversionFeatures");
-	}
-
-	if ( khr_variable_pointers &&
-		(	variablePointerFeatures[0].variablePointersStorageBuffer	!= variablePointerFeatures[1].variablePointersStorageBuffer ||
-			variablePointerFeatures[0].variablePointers					!= variablePointerFeatures[1].variablePointers))
-	{
-		TCU_FAIL("Mismatch between VkPhysicalDeviceVariablePointersFeatures");
-	}
-
-	if ( khr_8bit_storage &&
-		(	device8BitStorageFeatures[0].storageBuffer8BitAccess			!= device8BitStorageFeatures[1].storageBuffer8BitAccess ||
-			device8BitStorageFeatures[0].uniformAndStorageBuffer8BitAccess	!= device8BitStorageFeatures[1].uniformAndStorageBuffer8BitAccess ||
-			device8BitStorageFeatures[0].storagePushConstant8				!= device8BitStorageFeatures[1].storagePushConstant8 ))
-	{
-		TCU_FAIL("Mismatch between VkPhysicalDevice8BitStorageFeatures");
-	}
-
-	if ( khr_shader_atomic_int64 &&
-		(	deviceShaderAtomicInt64Features[0].shaderBufferInt64Atomics != deviceShaderAtomicInt64Features[1].shaderBufferInt64Atomics ||
-			deviceShaderAtomicInt64Features[0].shaderSharedInt64Atomics != deviceShaderAtomicInt64Features[1].shaderSharedInt64Atomics ))
-	{
-		TCU_FAIL("Mismatch between VkPhysicalDeviceShaderAtomicInt64Features");
-	}
-
-	if ( khr_shader_float16_int8 &&
-		(	deviceShaderFloat16Int8Features[0].shaderFloat16	!= deviceShaderFloat16Int8Features[1].shaderFloat16 ||
-			deviceShaderFloat16Int8Features[0].shaderInt8		!= deviceShaderFloat16Int8Features[1].shaderInt8 ))
-	{
-		TCU_FAIL("Mismatch between VkPhysicalDeviceShaderFloat16Int8Features");
-	}
-
-	if ( khr_buffer_device_address &&
-		(	deviceBufferDeviceAddressFeatures[0].bufferDeviceAddress				!= deviceBufferDeviceAddressFeatures[1].bufferDeviceAddress ||
-			deviceBufferDeviceAddressFeatures[0].bufferDeviceAddressCaptureReplay	!= deviceBufferDeviceAddressFeatures[1].bufferDeviceAddressCaptureReplay ||
-			deviceBufferDeviceAddressFeatures[0].bufferDeviceAddressMultiDevice		!= deviceBufferDeviceAddressFeatures[1].bufferDeviceAddressMultiDevice ))
-	{
-		TCU_FAIL("Mismatch between VkPhysicalDeviceBufferDeviceAddressFeatures");
-	}
-
-	if ( ext_buffer_device_address &&
-		(	deviceBufferDeviceAddressFeaturesEXT[0].bufferDeviceAddress					!= deviceBufferDeviceAddressFeaturesEXT[1].bufferDeviceAddress ||
-			deviceBufferDeviceAddressFeaturesEXT[0].bufferDeviceAddressCaptureReplay	!= deviceBufferDeviceAddressFeaturesEXT[1].bufferDeviceAddressCaptureReplay ||
-			deviceBufferDeviceAddressFeaturesEXT[0].bufferDeviceAddressMultiDevice		!= deviceBufferDeviceAddressFeaturesEXT[1].bufferDeviceAddressMultiDevice ))
-	{
-		TCU_FAIL("Mismatch between VkPhysicalDeviceBufferDeviceAddressFeaturesEXT");
-	}
-
-	if ( ext_descriptor_indexing &&
-		(	deviceDescriptorIndexingFeatures[0].shaderInputAttachmentArrayDynamicIndexing			!= deviceDescriptorIndexingFeatures[1].shaderInputAttachmentArrayDynamicIndexing ||
-			deviceDescriptorIndexingFeatures[0].shaderUniformTexelBufferArrayDynamicIndexing		!= deviceDescriptorIndexingFeatures[1].shaderUniformTexelBufferArrayDynamicIndexing ||
-			deviceDescriptorIndexingFeatures[0].shaderStorageTexelBufferArrayDynamicIndexing		!= deviceDescriptorIndexingFeatures[1].shaderStorageTexelBufferArrayDynamicIndexing ||
-			deviceDescriptorIndexingFeatures[0].shaderUniformBufferArrayNonUniformIndexing			!= deviceDescriptorIndexingFeatures[1].shaderUniformBufferArrayNonUniformIndexing ||
-			deviceDescriptorIndexingFeatures[0].shaderSampledImageArrayNonUniformIndexing			!= deviceDescriptorIndexingFeatures[1].shaderSampledImageArrayNonUniformIndexing ||
-			deviceDescriptorIndexingFeatures[0].shaderStorageBufferArrayNonUniformIndexing			!= deviceDescriptorIndexingFeatures[1].shaderStorageBufferArrayNonUniformIndexing ||
-			deviceDescriptorIndexingFeatures[0].shaderStorageImageArrayNonUniformIndexing			!= deviceDescriptorIndexingFeatures[1].shaderStorageImageArrayNonUniformIndexing ||
-			deviceDescriptorIndexingFeatures[0].shaderInputAttachmentArrayNonUniformIndexing		!= deviceDescriptorIndexingFeatures[1].shaderInputAttachmentArrayNonUniformIndexing ||
-			deviceDescriptorIndexingFeatures[0].shaderUniformTexelBufferArrayNonUniformIndexing		!= deviceDescriptorIndexingFeatures[1].shaderUniformTexelBufferArrayNonUniformIndexing ||
-			deviceDescriptorIndexingFeatures[0].shaderStorageTexelBufferArrayNonUniformIndexing		!= deviceDescriptorIndexingFeatures[1].shaderStorageTexelBufferArrayNonUniformIndexing ||
-			deviceDescriptorIndexingFeatures[0].descriptorBindingUniformBufferUpdateAfterBind		!= deviceDescriptorIndexingFeatures[1].descriptorBindingUniformBufferUpdateAfterBind ||
-			deviceDescriptorIndexingFeatures[0].descriptorBindingSampledImageUpdateAfterBind		!= deviceDescriptorIndexingFeatures[1].descriptorBindingSampledImageUpdateAfterBind ||
-			deviceDescriptorIndexingFeatures[0].descriptorBindingStorageImageUpdateAfterBind		!= deviceDescriptorIndexingFeatures[1].descriptorBindingStorageImageUpdateAfterBind ||
-			deviceDescriptorIndexingFeatures[0].descriptorBindingStorageBufferUpdateAfterBind		!= deviceDescriptorIndexingFeatures[1].descriptorBindingStorageBufferUpdateAfterBind ||
-			deviceDescriptorIndexingFeatures[0].descriptorBindingUniformTexelBufferUpdateAfterBind	!= deviceDescriptorIndexingFeatures[1].descriptorBindingUniformTexelBufferUpdateAfterBind ||
-			deviceDescriptorIndexingFeatures[0].descriptorBindingStorageTexelBufferUpdateAfterBind	!= deviceDescriptorIndexingFeatures[1].descriptorBindingStorageTexelBufferUpdateAfterBind ||
-			deviceDescriptorIndexingFeatures[0].descriptorBindingUpdateUnusedWhilePending			!= deviceDescriptorIndexingFeatures[1].descriptorBindingUpdateUnusedWhilePending ||
-			deviceDescriptorIndexingFeatures[0].descriptorBindingPartiallyBound						!= deviceDescriptorIndexingFeatures[1].descriptorBindingPartiallyBound ||
-			deviceDescriptorIndexingFeatures[0].descriptorBindingVariableDescriptorCount			!= deviceDescriptorIndexingFeatures[1].descriptorBindingVariableDescriptorCount ||
-			deviceDescriptorIndexingFeatures[0].runtimeDescriptorArray								!= deviceDescriptorIndexingFeatures[1].runtimeDescriptorArray ))
-	{
-		TCU_FAIL("Mismatch between VkPhysicalDeviceDescriptorIndexingFeatures");
-	}
+#include "vkDeviceFeatures2.inl"
 
 	return tcu::TestStatus::pass("Querying device features succeeded");
 }
@@ -4437,6 +4261,17 @@
 		(maintenance3Properties[0].maxPerSetDescriptors		!= maintenance3Properties[1].maxPerSetDescriptors ||
 		 maintenance3Properties[0].maxMemoryAllocationSize	!= maintenance3Properties[1].maxMemoryAllocationSize))
 	{
+		if (protectedMemoryPropertiesKHR[0].protectedNoFault != protectedMemoryPropertiesKHR[1].protectedNoFault)
+		{
+			TCU_FAIL("Mismatch between VkPhysicalDeviceProtectedMemoryProperties");
+		}
+		if ((subgroupProperties[0].subgroupSize					!= subgroupProperties[1].subgroupSize) ||
+			(subgroupProperties[0].supportedStages				!= subgroupProperties[1].supportedStages) ||
+			(subgroupProperties[0].supportedOperations			!= subgroupProperties[1].supportedOperations) ||
+			(subgroupProperties[0].quadOperationsInAllStages	!= subgroupProperties[1].quadOperationsInAllStages))
+		{
+			TCU_FAIL("Mismatch between VkPhysicalDeviceSubgroupProperties");
+		}
 		TCU_FAIL("Mismatch between VkPhysicalDeviceMaintenance3Properties");
 	}
 	if (khr_depth_stencil_resolve &&
@@ -5575,8 +5410,8 @@
 				tiling,
 			};
 
-			deUint32										numCoreProperties	= ~0u;
-			deUint32										numExtProperties	= ~0u;
+			deUint32	numCoreProperties	= 0u;
+			deUint32	numExtProperties	= 0u;
 
 			// Query count
 			vki.getPhysicalDeviceSparseImageFormatProperties(physicalDevice, imageFormatInfo.format, imageFormatInfo.type, imageFormatInfo.samples, imageFormatInfo.usage, imageFormatInfo.tiling, &numCoreProperties, DE_NULL);
@@ -5690,7 +5525,7 @@
 
 void createImageFormatTypeTests (tcu::TestCaseGroup* testGroup, ImageFormatPropertyCase params)
 {
-	DE_ASSERT(params.tiling == VK_IMAGE_TILING_MAX_ENUM);
+	DE_ASSERT(params.tiling == VK_CORE_IMAGE_TILING_LAST);
 
 	testGroup->addChild(createTestGroup(testGroup->getTestContext(), "optimal",	"",	createImageFormatTypeTilingTests, ImageFormatPropertyCase(params.testFunction, VK_FORMAT_UNDEFINED, params.imageType, VK_IMAGE_TILING_OPTIMAL)));
 	testGroup->addChild(createTestGroup(testGroup->getTestContext(), "linear",	"",	createImageFormatTypeTilingTests, ImageFormatPropertyCase(params.testFunction, VK_FORMAT_UNDEFINED, params.imageType, VK_IMAGE_TILING_LINEAR)));
@@ -5698,9 +5533,9 @@
 
 void createImageFormatTests (tcu::TestCaseGroup* testGroup, ImageFormatPropertyCase::Function testFunction)
 {
-	testGroup->addChild(createTestGroup(testGroup->getTestContext(), "1d", "", createImageFormatTypeTests, ImageFormatPropertyCase(testFunction, VK_FORMAT_UNDEFINED, VK_IMAGE_TYPE_1D, VK_IMAGE_TILING_MAX_ENUM)));
-	testGroup->addChild(createTestGroup(testGroup->getTestContext(), "2d", "", createImageFormatTypeTests, ImageFormatPropertyCase(testFunction, VK_FORMAT_UNDEFINED, VK_IMAGE_TYPE_2D, VK_IMAGE_TILING_MAX_ENUM)));
-	testGroup->addChild(createTestGroup(testGroup->getTestContext(), "3d", "", createImageFormatTypeTests, ImageFormatPropertyCase(testFunction, VK_FORMAT_UNDEFINED, VK_IMAGE_TYPE_3D, VK_IMAGE_TILING_MAX_ENUM)));
+	testGroup->addChild(createTestGroup(testGroup->getTestContext(), "1d", "", createImageFormatTypeTests, ImageFormatPropertyCase(testFunction, VK_FORMAT_UNDEFINED, VK_IMAGE_TYPE_1D, VK_CORE_IMAGE_TILING_LAST)));
+	testGroup->addChild(createTestGroup(testGroup->getTestContext(), "2d", "", createImageFormatTypeTests, ImageFormatPropertyCase(testFunction, VK_FORMAT_UNDEFINED, VK_IMAGE_TYPE_2D, VK_CORE_IMAGE_TILING_LAST)));
+	testGroup->addChild(createTestGroup(testGroup->getTestContext(), "3d", "", createImageFormatTypeTests, ImageFormatPropertyCase(testFunction, VK_FORMAT_UNDEFINED, VK_IMAGE_TYPE_3D, VK_CORE_IMAGE_TILING_LAST)));
 }
 
 
diff --git a/external/vulkancts/modules/vulkan/api/vktApiImageClearingTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiImageClearingTests.cpp
index e9da165..ac9fee8 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiImageClearingTests.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiImageClearingTests.cpp
@@ -1723,7 +1723,7 @@
 		"2d",
 		"3d"
 	};
-	return s_names[type];
+	return de::getSizedArrayElement<VK_CORE_IMAGE_TYPE_LAST>(s_names, type);
 }
 
 const char* getImageTilingCaseName (VkImageTiling tiling)
@@ -1733,7 +1733,7 @@
 		"optimal",
 		"linear",
 	};
-	return s_names[tiling];
+	return de::getSizedArrayElement<VK_CORE_IMAGE_TILING_LAST>(s_names, tiling);
 }
 
 TestCaseGroup* createImageClearingTestsCommon (TestContext& testCtx, tcu::TestCaseGroup* imageClearingTests, AllocationKind allocationKind)
diff --git a/external/vulkancts/modules/vulkan/api/vktApiObjectManagementTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiObjectManagementTests.cpp
index 253f9d4..fdd6bb8 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiObjectManagementTests.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiObjectManagementTests.cpp
@@ -35,8 +35,11 @@
 #include "vkPlatform.hpp"
 #include "vkStrUtil.hpp"
 #include "vkAllocationCallbackUtil.hpp"
+#include "vkObjTypeImpl.inl"
 #include "vkObjUtil.hpp"
 
+#include "vktTestGroupUtil.hpp"
+
 #include "tcuVector.hpp"
 #include "tcuResultCollector.hpp"
 #include "tcuCommandLine.hpp"
@@ -51,6 +54,7 @@
 #include "deInt32.h"
 
 #include <limits>
+#include <algorithm>
 
 #define VK_DESCRIPTOR_TYPE_LAST (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT + 1)
 
@@ -2332,6 +2336,276 @@
 	return tcu::TestStatus::pass("Ok");
 }
 
+
+// Class to wrap singleton devices used by private_data tests
+class SingletonDevice
+{
+	Move<VkDevice> createPrivateDataDevice(const Context &context, int idx)
+	{
+		const int requestedSlots[NUM_DEVICES][2] =
+		{
+			{0, 0},
+			{1, 0},
+			{1, 1},
+			{4, 4},
+			{1, 100},
+		};
+
+		const float	queuePriority					= 1.0;
+		const VkDeviceQueueCreateInfo	queues[]	=
+		{
+			{
+				VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO,
+				DE_NULL,
+				(VkDeviceQueueCreateFlags)0,
+				context.getUniversalQueueFamilyIndex(),
+				1u,									// queueCount
+				&queuePriority,						// pQueuePriorities
+			}
+		};
+
+		VkDevicePrivateDataCreateInfoEXT pdci0 =
+		{
+			VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT,	// VkStructureType                       sType;
+			DE_NULL,												// const void*                           pNext;
+			0u,														// uint32_t                              privateDataSlotRequestCount;
+		};
+		VkDevicePrivateDataCreateInfoEXT pdci1 =
+		{
+			VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT,	// VkStructureType                       sType;
+			DE_NULL,												// const void*                           pNext;
+			0u,														// uint32_t                              privateDataSlotRequestCount;
+		};
+		void *pNext = DE_NULL;
+
+		if (requestedSlots[idx][0])
+		{
+			pNext = &pdci0;
+			pdci0.privateDataSlotRequestCount = requestedSlots[idx][0];
+			if (requestedSlots[idx][1])
+			{
+				pdci0.pNext = &pdci1;
+				pdci1.privateDataSlotRequestCount = requestedSlots[idx][1];
+			}
+		}
+
+		VkPhysicalDevicePrivateDataFeaturesEXT privateDataFeatures =
+		{
+			VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT,	// VkStructureType    sType;
+			pNext,															// void*              pNext;
+			VK_TRUE,														// VkBool32           privateData;
+		};
+		pNext = &privateDataFeatures;
+
+		const char *extName = "VK_EXT_private_data";
+
+		const VkDeviceCreateInfo		deviceInfo	=
+		{
+			VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,
+			pNext,
+			(VkDeviceCreateFlags)0,
+			DE_LENGTH_OF_ARRAY(queues),
+			queues,
+			0u,										// enabledLayerNameCount
+			DE_NULL,								// ppEnabledLayerNames
+			1u,										// enabledExtensionNameCount
+			&extName,								// ppEnabledExtensionNames
+			DE_NULL,								// pEnabledFeatures
+		};
+
+		Move<VkDevice> device = createCustomDevice(context.getTestContext().getCommandLine().isValidationEnabled(),
+												   context.getPlatformInterface(), context.getInstance(), context.getInstanceInterface(), context.getPhysicalDevice(), &deviceInfo, DE_NULL);
+		return device;
+	}
+
+	SingletonDevice	(const Context& context, int idx)
+		: m_logicalDevice	(createPrivateDataDevice(context, idx))
+	{
+	}
+
+
+public:
+
+	static const int NUM_DEVICES = 5;
+
+	static const Unique<vk::VkDevice>& getDevice(const Context& context, int idx)
+	{
+		if (!m_singletonDevice[idx])
+			m_singletonDevice[idx] = SharedPtr<SingletonDevice>(new SingletonDevice(context, idx));
+
+		DE_ASSERT(m_singletonDevice[idx]);
+		return m_singletonDevice[idx]->m_logicalDevice;
+	}
+
+	static void destroy()
+	{
+		for (int idx = 0; idx < NUM_DEVICES; ++idx)
+			m_singletonDevice[idx].clear();
+	}
+
+private:
+	const Unique<vk::VkDevice>					m_logicalDevice;
+	static SharedPtr<SingletonDevice>			m_singletonDevice[NUM_DEVICES];
+};
+
+SharedPtr<SingletonDevice>		SingletonDevice::m_singletonDevice[NUM_DEVICES];
+
+template<typename T> static deUint64 HandleToInt(T t) { return t.getInternal(); }
+template<typename T> static deUint64 HandleToInt(T *t) { return (deUint64)(deUintptr)(t); }
+
+template<typename Object>
+tcu::TestStatus createPrivateDataTest (Context& context, typename Object::Parameters params)
+{
+	if (!context.getPrivateDataFeaturesEXT().privateData)
+		TCU_THROW(NotSupportedError, "privateData not supported");
+
+	for (int d = 0; d < SingletonDevice::NUM_DEVICES; ++d)
+	{
+		const Unique<vk::VkDevice>&			device =			SingletonDevice::getDevice(context, d);
+		const Environment					env					(context.getPlatformInterface(),
+																 context.getUsedApiVersion(),
+																 context.getInstanceInterface(),
+																 context.getInstance(),
+																 context.getDeviceInterface(),
+																 *device,
+																 context.getUniversalQueueFamilyIndex(),
+																 context.getBinaryCollection(),
+																 DE_NULL,
+																 4u,
+																 context.getTestContext().getCommandLine());
+
+		const typename Object::Resources	res	(env, params);
+
+		const VkPrivateDataSlotCreateInfoEXT createInfo =
+		{
+			VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT,	// VkStructureType                    sType;
+			DE_NULL,												// const void*                        pNext;
+			0u,														// VkPrivateDataSlotCreateFlagsEXT    flags;
+		};
+
+		const int numSlots = 100;
+
+		typedef Unique<VkPrivateDataSlotEXT>				PrivateDataSlotUp;
+		typedef SharedPtr<PrivateDataSlotUp>				PrivateDataSlotSp;
+		vector<PrivateDataSlotSp> slots;
+
+		// interleave allocating objects and slots
+		for (int i = 0; i < numSlots / 2; ++i)
+		{
+			Move<VkPrivateDataSlotEXT> s = createPrivateDataSlotEXT(env.vkd, *device, &createInfo, DE_NULL);
+			slots.push_back(PrivateDataSlotSp(new PrivateDataSlotUp(s)));
+		}
+
+		Unique<typename Object::Type>	obj0	(Object::create(env, res, params));
+		Unique<typename Object::Type>	obj1	(Object::create(env, res, params));
+
+		for (int i = numSlots / 2; i < numSlots; ++i)
+		{
+			Move<VkPrivateDataSlotEXT> s = createPrivateDataSlotEXT(env.vkd, *device, &createInfo, DE_NULL);
+			slots.push_back(PrivateDataSlotSp(new PrivateDataSlotUp(s)));
+		}
+
+		Unique<typename Object::Type>	obj2	(Object::create(env, res, params));
+		Unique<typename Object::Type>	obj3	(Object::create(env, res, params));
+
+		Unique<typename Object::Type> *objs[4] = { &obj0, &obj1, &obj2, &obj3 };
+
+		for (int r = 0; r < 3; ++r)
+		{
+			deUint64 data;
+
+			// Test private data for the objects
+			for (int o = 0; o < 4; ++o)
+			{
+				auto &obj = *objs[o];
+				for (int i = 0; i < numSlots; ++i)
+				{
+					data = 1234;
+					env.vkd.getPrivateDataEXT(*device, getObjectType<typename Object::Type>(), HandleToInt(obj.get()), **slots[i], &data);
+					if (data != 0)
+						return tcu::TestStatus::fail("Expected initial value of zero");
+				}
+			}
+			for (int o = 0; o < 4; ++o)
+			{
+				auto &obj = *objs[o];
+				for (int i = 0; i < numSlots; ++i)
+					VK_CHECK(env.vkd.setPrivateDataEXT(*device, getObjectType<typename Object::Type>(), HandleToInt(obj.get()), **slots[i], i*i*i + o*o + 1));
+			}
+			for (int o = 0; o < 4; ++o)
+			{
+				auto &obj = *objs[o];
+				for (int i = 0; i < numSlots; ++i)
+				{
+					data = 1234;
+					env.vkd.getPrivateDataEXT(*device, getObjectType<typename Object::Type>(), HandleToInt(obj.get()), **slots[i], &data);
+					if (data != (deUint64)(i*i*i + o*o + 1))
+						return tcu::TestStatus::fail("Didn't read back set value");
+				}
+			}
+
+
+			// Test private data for the private data objects
+			for (int o = 0; o < numSlots; ++o)
+			{
+				auto &obj = **slots[o];
+				for (int i = 0; i < numSlots; ++i)
+				{
+					data = 1234;
+					env.vkd.getPrivateDataEXT(*device, VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT, HandleToInt<VkPrivateDataSlotEXT>(obj), **slots[i], &data);
+					if (data != 0)
+						return tcu::TestStatus::fail("Expected initial value of zero");
+				}
+			}
+			for (int o = 0; o < numSlots; ++o)
+			{
+				auto &obj = **slots[o];
+				for (int i = 0; i < numSlots; ++i)
+					VK_CHECK(env.vkd.setPrivateDataEXT(*device, VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT, HandleToInt<VkPrivateDataSlotEXT>(obj), **slots[i], i*i*i + o*o + 1));
+			}
+			for (int o = 0; o < numSlots; ++o)
+			{
+				auto &obj = **slots[o];
+				for (int i = 0; i < numSlots; ++i)
+				{
+					data = 1234;
+					env.vkd.getPrivateDataEXT(*device, VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT, HandleToInt<VkPrivateDataSlotEXT>(obj), **slots[i], &data);
+					if (data != (deUint64)(i*i*i + o*o + 1))
+						return tcu::TestStatus::fail("Didn't read back set value");
+				}
+			}
+
+			// Test private data for the device
+			for (int i = 0; i < numSlots; ++i)
+			{
+				data = 1234;
+				env.vkd.getPrivateDataEXT(*device, VK_OBJECT_TYPE_DEVICE, (deUint64)(deUintptr)(*device), **slots[i], &data);
+				if (data != 0)
+					return tcu::TestStatus::fail("Expected initial value of zero for device");
+			}
+			for (int i = 0; i < numSlots; ++i)
+				VK_CHECK(env.vkd.setPrivateDataEXT(*device, VK_OBJECT_TYPE_DEVICE, (deUint64)(deUintptr)(*device), **slots[i], i*i*i + r*r + 1));
+			for (int i = 0; i < numSlots; ++i)
+			{
+				data = 1234;
+				env.vkd.getPrivateDataEXT(*device, VK_OBJECT_TYPE_DEVICE, (deUint64)(deUintptr)(*device), **slots[i], &data);
+				if (data != (deUint64)(i*i*i + r*r + 1))
+					return tcu::TestStatus::fail("Didn't read back set value from device");
+			}
+
+			// Destroy and realloc slots for the next iteration
+			slots.clear();
+			for (int i = 0; i < numSlots; ++i)
+			{
+				Move<VkPrivateDataSlotEXT> s = createPrivateDataSlotEXT(env.vkd, *device, &createInfo, DE_NULL);
+				slots.push_back(PrivateDataSlotSp(new PrivateDataSlotUp(s)));
+			}
+		}
+	}
+
+	return tcu::TestStatus::pass("Ok");
+}
+
 template<typename Object>
 tcu::TestStatus createMaxConcurrentTest (Context& context, typename Object::Parameters params)
 {
@@ -2554,8 +2828,8 @@
 	return tcu::TestStatus::pass("Ok");
 }
 
-template<typename Object>	deUint32	getOomIterLimit					(void) { return 1024;	}
-template<>					deUint32	getOomIterLimit<Device>         (void) { return 20;		}
+template<typename Object>	deUint32	getOomIterLimit					(void) { return 40;		}
+template<>					deUint32	getOomIterLimit<Device>			(void) { return 20;		}
 template<>					deUint32	getOomIterLimit<DeviceGroup>	(void) { return 20;		}
 
 template<typename Object>
@@ -2576,13 +2850,15 @@
 	deUint32							numPassingAllocs	= 0;
 	const deUint32						cmdLineIterCount	= (deUint32)context.getTestContext().getCommandLine().getTestIterationCount();
 	const deUint32						maxTries			= cmdLineIterCount != 0 ? cmdLineIterCount : getOomIterLimit<Object>();
+	const deUint32						finalLimit			= std::max(maxTries, 10000u);
+	bool								createOk			= false;
 
 	{
 		const EnvClone						resEnv	(rootEnv, getDefaulDeviceParameters(context), 1u);
 		const typename Object::Resources	res		(resEnv.env, params);
 
 		// Iterate over test until object allocation succeeds
-		for (; numPassingAllocs < maxTries; ++numPassingAllocs)
+		while(true)
 		{
 			DeterministicFailAllocator			objAllocator(getSystemAllocator(),
 															 DeterministicFailAllocator::MODE_COUNT_AND_FAIL,
@@ -2599,13 +2875,13 @@
 															 recorder.getCallbacks(),
 															 resEnv.env.maxResourceConsumers,
 															 resEnv.env.commandLine);
-			bool								createOk	= false;
 
 			context.getTestContext().getLog()
 				<< TestLog::Message
 				<< "Trying to create object with " << numPassingAllocs << " allocation" << (numPassingAllocs != 1 ? "s" : "") << " passing"
 				<< TestLog::EndMessage;
 
+			createOk = false;
 			try
 			{
 				Unique<typename Object::Type>	obj	(Object::create(objEnv, res, params));
@@ -2629,6 +2905,14 @@
 					<< TestLog::Message << "Object construction succeeded! " << TestLog::EndMessage;
 				break;
 			}
+
+			++numPassingAllocs;
+			// if allocation didn't succeed with huge limit then stop trying
+			if (numPassingAllocs >= finalLimit)
+				break;
+			// if we reached maxTries but didn't create object, try doing it with huge limit
+			if (numPassingAllocs >= maxTries)
+				numPassingAllocs = finalLimit;
 		}
 	}
 
@@ -2637,11 +2921,19 @@
 
 	if (numPassingAllocs == 0)
 		return tcu::TestStatus(QP_TEST_RESULT_QUALITY_WARNING, "Allocation callbacks not called");
-	else if (numPassingAllocs == maxTries)
+	else if (numPassingAllocs >= finalLimit)
 	{
+		if (createOk)
+		{
+			context.getTestContext().getLog()
+				<< TestLog::Message << "Maximum iteration count (" << maxTries << ") reached without object construction passing. "
+				<< "Object was succesfully constructed with " << numPassingAllocs << " iterations limit." << TestLog::EndMessage;
+			return tcu::TestStatus(QP_TEST_RESULT_PASS, "Construction passed but not all iterations were checked");
+		}
+
 		context.getTestContext().getLog()
-			<< TestLog::Message << "WARNING: Maximum iteration count (" << maxTries << ") reached without object construction passing. "
-								<< "OOM testing incomplete, use --deqp-test-iteration-count= to test with higher limit." << TestLog::EndMessage;
+			<< TestLog::Message << "WARNING: Maximum iteration count (" << finalLimit << ") reached without object construction passing. "
+			<< "OOM testing incomplete, use --deqp-test-iteration-count= to test with higher limit." << TestLog::EndMessage;
 		return tcu::TestStatus(QP_TEST_RESULT_PASS, "Max iter count reached");
 	}
 	else
@@ -2792,23 +3084,21 @@
 };
 
 template<typename Object>
-void addCases (const MovePtr<tcu::TestCaseGroup>& group, const CaseDescription<Object>& cases)
+void addCases (tcu::TestCaseGroup *group, const CaseDescription<Object>& cases)
 {
 	for (const NamedParameters<Object>* cur = cases.paramsBegin; cur != cases.paramsEnd; ++cur)
-		addFunctionCase(group.get(), cur->name, "", cases.function, cur->parameters);
+		addFunctionCase(group, cur->name, "", cases.function, cur->parameters);
 }
 
 template<typename Object>
-void addCasesWithProgs (const MovePtr<tcu::TestCaseGroup>& group, const CaseDescription<Object>& cases)
+void addCasesWithProgs (tcu::TestCaseGroup *group, const CaseDescription<Object>& cases)
 {
 	for (const NamedParameters<Object>* cur = cases.paramsBegin; cur != cases.paramsEnd; ++cur)
-		addFunctionCaseWithPrograms(group.get(), cur->name, "", Object::initPrograms, cases.function, cur->parameters);
+		addFunctionCaseWithPrograms(group, cur->name, "", Object::initPrograms, cases.function, cur->parameters);
 }
 
-tcu::TestCaseGroup* createGroup (tcu::TestContext& testCtx, const char* name, const char* desc, const CaseDescriptions& cases)
+static void createTests (tcu::TestCaseGroup* group, CaseDescriptions cases)
 {
-	MovePtr<tcu::TestCaseGroup>	group	(new tcu::TestCaseGroup(testCtx, name, desc));
-
 	addCases			(group, cases.instance);
 	addCases			(group, cases.device);
 	addCases			(group, cases.deviceGroup);
@@ -2834,7 +3124,20 @@
 	addCases			(group, cases.framebuffer);
 	addCases			(group, cases.commandPool);
 	addCases			(group, cases.commandBuffer);
+}
 
+static void cleanupGroup (tcu::TestCaseGroup* group, CaseDescriptions cases)
+{
+	DE_UNREF(group);
+	DE_UNREF(cases);
+	// Destroy singleton object
+	SingletonDevice::destroy();
+}
+
+tcu::TestCaseGroup* createGroup (tcu::TestContext& testCtx, const char* name, const char* desc, const CaseDescriptions& cases)
+{
+	MovePtr<tcu::TestCaseGroup>	group	(new tcu::TestCaseGroup(testCtx, name, desc));
+	createTests(group.get(), cases);
 	return group.release();
 }
 
@@ -3281,6 +3584,36 @@
 	};
 	objectMgmtTests->addChild(createGroup(testCtx, "alloc_callback_fail_multiple", "Allocation callback failure creating multiple objects with one call", s_allocCallbackFailMultipleObjectsGroup));
 
+	const CaseDescriptions	s_privateDataResourcesGroup	=
+	{
+		EMPTY_CASE_DESC(Instance),		// Does not make sense
+		EMPTY_CASE_DESC(Device),		// Device is tested in each object test
+		EMPTY_CASE_DESC(DeviceGroup),	// Device is tested in each object test
+		CASE_DESC(createPrivateDataTest	<DeviceMemory>,				s_deviceMemCases),
+		CASE_DESC(createPrivateDataTest	<Buffer>,					s_bufferCases),
+		CASE_DESC(createPrivateDataTest	<BufferView>,				s_bufferViewCases),
+		CASE_DESC(createPrivateDataTest	<Image>,					s_imageCases),
+		CASE_DESC(createPrivateDataTest	<ImageView>,				s_imageViewCases),
+		CASE_DESC(createPrivateDataTest	<Semaphore>,				s_semaphoreCases),
+		CASE_DESC(createPrivateDataTest	<Event>,					s_eventCases),
+		CASE_DESC(createPrivateDataTest	<Fence>,					s_fenceCases),
+		CASE_DESC(createPrivateDataTest	<QueryPool>,				s_queryPoolCases),
+		CASE_DESC(createPrivateDataTest	<ShaderModule>,				s_shaderModuleCases),
+		CASE_DESC(createPrivateDataTest	<PipelineCache>,			s_pipelineCacheCases),
+		CASE_DESC(createPrivateDataTest	<PipelineLayout>,			s_pipelineLayoutCases),
+		CASE_DESC(createPrivateDataTest	<RenderPass>,				s_renderPassCases),
+		CASE_DESC(createPrivateDataTest	<GraphicsPipeline>,			s_graphicsPipelineCases),
+		CASE_DESC(createPrivateDataTest	<ComputePipeline>,			s_computePipelineCases),
+		CASE_DESC(createPrivateDataTest	<DescriptorSetLayout>,		s_descriptorSetLayoutCases),
+		CASE_DESC(createPrivateDataTest	<Sampler>,					s_samplerCases),
+		CASE_DESC(createPrivateDataTest	<DescriptorPool>,			s_descriptorPoolCases),
+		CASE_DESC(createPrivateDataTest	<DescriptorSet>,			s_descriptorSetCases),
+		CASE_DESC(createPrivateDataTest	<Framebuffer>,				s_framebufferCases),
+		CASE_DESC(createPrivateDataTest	<CommandPool>,				s_commandPoolCases),
+		CASE_DESC(createPrivateDataTest	<CommandBuffer>,			s_commandBufferCases),
+	};
+	objectMgmtTests->addChild(createTestGroup(testCtx, "private_data", "Multiple objects with private data", createTests, s_privateDataResourcesGroup, cleanupGroup));
+
 	return objectMgmtTests.release();
 }
 
diff --git a/external/vulkancts/modules/vulkan/api/vktApiPipelineTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiPipelineTests.cpp
index 554c728..058f283 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiPipelineTests.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiPipelineTests.cpp
@@ -90,7 +90,7 @@
 	const VkFormatProperties						formatProperties				(getPhysicalDeviceFormatProperties(vki, physicalDevice, format));
 	const VkImageTiling								imageTiling						= (formatProperties.linearTilingFeatures & VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT) ? VK_IMAGE_TILING_LINEAR
 																					: (formatProperties.optimalTilingFeatures & VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT) ? VK_IMAGE_TILING_OPTIMAL
-																					: VK_IMAGE_TILING_MAX_ENUM;
+																					: VK_CORE_IMAGE_TILING_LAST;
 
 	const VkImageCreateInfo							attachmentImageCreateInfo		=
 	{
@@ -527,7 +527,7 @@
 	const VkFormatProperties		formatProperties		(getPhysicalDeviceFormatProperties(vki, physicalDevice, format));
 	const VkImageTiling				imageTiling				= (formatProperties.linearTilingFeatures & VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT) ? VK_IMAGE_TILING_LINEAR
 															: (formatProperties.optimalTilingFeatures & VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT) ? VK_IMAGE_TILING_OPTIMAL
-															: VK_IMAGE_TILING_MAX_ENUM;
+															: VK_CORE_IMAGE_TILING_LAST;
 
 	const VkImageCreateInfo			imageCreateInfo			=
 	{
@@ -882,7 +882,7 @@
 	const VkFormatProperties				formatProperties			(getPhysicalDeviceFormatProperties(vki, physicalDevice, format));
 	const VkImageTiling						imageTiling					= (formatProperties.linearTilingFeatures & VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT) ? VK_IMAGE_TILING_LINEAR
 																		: (formatProperties.optimalTilingFeatures & VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT) ? VK_IMAGE_TILING_OPTIMAL
-																		: VK_IMAGE_TILING_MAX_ENUM;
+																		: VK_CORE_IMAGE_TILING_LAST;
 
 	const VkImageCreateInfo					imageCreateInfo				=
 	{
diff --git a/external/vulkancts/modules/vulkan/api/vktApiSmokeTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiSmokeTests.cpp
index 5c89122..3602448 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiSmokeTests.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiSmokeTests.cpp
@@ -554,17 +554,9 @@
 	// Read results, render reference, compare
 	{
 		const tcu::TextureFormat			tcuFormat		= vk::mapVkFormat(colorFormat);
-		const VkMappedMemoryRange			range			=
-		{
-			VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE,	// sType
-			DE_NULL,								// pNext
-			readImageBufferMemory->getMemory(),		// memory
-			0,										// offset
-			imageSizeBytes,							// size
-		};
 		const tcu::ConstPixelBufferAccess	resultAccess	(tcuFormat, renderSize.x(), renderSize.y(), 1, readImageBufferMemory->getHostPtr());
 
-		VK_CHECK(vk.invalidateMappedMemoryRanges(vkDevice, 1u, &range));
+		invalidateAlloc(vk, vkDevice, *readImageBufferMemory);
 
 		{
 			tcu::TextureLevel	refImage		(tcuFormat, renderSize.x(), renderSize.y());
@@ -1165,17 +1157,9 @@
 	// Read results, render reference, compare
 	{
 		const tcu::TextureFormat					tcuFormat							= vk::mapVkFormat(colorFormat);
-		const VkMappedMemoryRange					range								=
-		{
-			VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE,	// sType
-			&dummyExtStruct,						// pNext
-			readImageBufferMemory->getMemory(),		// memory
-			0,										// offset
-			imageSizeBytes,							// size
-		};
 		const tcu::ConstPixelBufferAccess			resultAccess						(tcuFormat, renderSize.x(), renderSize.y(), 1, readImageBufferMemory->getHostPtr());
 
-		VK_CHECK(vk.invalidateMappedMemoryRanges(vkDevice, 1u, &range));
+		invalidateAlloc(vk, vkDevice, *readImageBufferMemory);
 
 		{
 			tcu::TextureLevel						refImage							(tcuFormat, renderSize.x(), renderSize.y());
@@ -1475,17 +1459,9 @@
 	// Read results, render reference, compare
 	{
 		const tcu::TextureFormat			tcuFormat		= vk::mapVkFormat(colorFormat);
-		const VkMappedMemoryRange			range			=
-		{
-			VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE,	// sType
-			DE_NULL,								// pNext
-			readImageBufferMemory->getMemory(),		// memory
-			0,										// offset
-			imageSizeBytes,							// size
-		};
 		const tcu::ConstPixelBufferAccess	resultAccess	(tcuFormat, renderSize.x(), renderSize.y(), 1, readImageBufferMemory->getHostPtr());
 
-		VK_CHECK(vk.invalidateMappedMemoryRanges(vkDevice, 1u, &range));
+		invalidateAlloc(vk, vkDevice, *readImageBufferMemory);
 
 		{
 			tcu::TextureLevel	refImage		(tcuFormat, renderSize.x(), renderSize.y());
diff --git a/external/vulkancts/modules/vulkan/api/vktApiTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiTests.cpp
index e19a14d..41abc7d 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiTests.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiTests.cpp
@@ -47,6 +47,7 @@
 #include "vktApiDescriptorSetTests.hpp"
 #include "vktApiPipelineTests.hpp"
 #include "vktApiMemoryRequirementInvarianceTests.hpp"
+#include "vktApiToolingInfoTests.hpp"
 
 namespace vkt
 {
@@ -90,6 +91,7 @@
 	apiTests->addChild(createDescriptorSetTests					(testCtx));
 	apiTests->addChild(createPipelineTests						(testCtx));
 	apiTests->addChild(createMemoryRequirementInvarianceTests	(testCtx));
+	apiTests->addChild(createToolingInfoTests					(testCtx));
 }
 
 } // anonymous
diff --git a/external/vulkancts/modules/vulkan/api/vktApiToolingInfoTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiToolingInfoTests.cpp
new file mode 100644
index 0000000..96d906d
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/api/vktApiToolingInfoTests.cpp
@@ -0,0 +1,335 @@
+/*-------------------------------------------------------------------------
+* Vulkan Conformance Tests
+* ------------------------
+*
+* Copyright (c) 2019 Advanced Micro Devices, Inc.
+* Copyright (c) 2019 The Khronos Group Inc.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*      http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*//*!
+* \file
+* \brief VK_EXT_tooling_info tests
+*//*--------------------------------------------------------------------*/
+
+#include "vktCustomInstancesDevices.hpp"
+#include "vkDeviceUtil.hpp"
+#include "vktApiToolingInfoTests.hpp"
+#include "vktTestGroupUtil.hpp"
+#include "vktTestCaseUtil.hpp"
+#include "vkQueryUtil.hpp"
+#include "vkStrUtil.hpp"
+#include "vkTypeUtil.hpp"
+#include "tcuTestLog.hpp"
+#include "tcuCommandLine.hpp"
+#include <iostream>
+#include <string>
+#include <vector>
+
+#include <string.h>
+
+using namespace vk;
+
+namespace vkt
+{
+namespace api
+{
+namespace
+{
+
+bool validateToolPurposeFlagBits (const VkToolPurposeFlagsEXT purposes)
+{
+	const VkToolPurposeFlagsEXT validPurposes =	VK_TOOL_PURPOSE_VALIDATION_BIT_EXT			|
+												VK_TOOL_PURPOSE_PROFILING_BIT_EXT			|
+												VK_TOOL_PURPOSE_TRACING_BIT_EXT				|
+												VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT	|
+												VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT	|
+												VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT		|
+												VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT;
+	return (purposes | validPurposes) == validPurposes;
+}
+
+void checkSupport (Context& context)
+{
+	context.requireDeviceFunctionality("VK_EXT_tooling_info");
+}
+
+CustomInstance createCustomInstance (Context& context, bool allowLayers)
+{
+	std::vector<const char*>		enabledLayers;
+	std::vector<std::string>		enabledLayersStr;
+	const std::vector<std::string>	enabledExtensions;
+
+	const deUint32					apiVersion	= context.getUsedApiVersion();
+	const vk::PlatformInterface&	vkp			= context.getPlatformInterface();
+
+	if (allowLayers)
+	{
+		enabledLayers		= getValidationLayers(context.getPlatformInterface());
+		enabledLayersStr	= std::vector<std::string>(begin(enabledLayers), end(enabledLayers));
+	}
+
+	Move<VkInstance> instance = vk::createDefaultInstance(vkp, apiVersion, enabledLayersStr, enabledExtensions, DE_NULL);
+	return CustomInstance(context, instance, !enabledLayers.empty(), context.getTestContext().getCommandLine().printValidationErrors());
+}
+
+bool checkToolsProperties (Context& context, const std::vector<VkPhysicalDeviceToolPropertiesEXT>& deviceToolPropertiesEXTArray)
+{
+	tcu::TestLog&	testLog = context.getTestContext().getLog();
+	bool			result  = true;
+
+	for (size_t i = 0; i < deviceToolPropertiesEXTArray.size(); ++i)
+	{
+		size_t nameSize		= strnlen(deviceToolPropertiesEXTArray[i].name, VK_MAX_EXTENSION_NAME_SIZE);
+		size_t versionSize	= strnlen(deviceToolPropertiesEXTArray[i].version, VK_MAX_EXTENSION_NAME_SIZE);
+		size_t descSize		= strnlen(deviceToolPropertiesEXTArray[i].description, VK_MAX_DESCRIPTION_SIZE);
+		size_t layerSize	= strnlen(deviceToolPropertiesEXTArray[i].layer, VK_MAX_EXTENSION_NAME_SIZE);
+
+		result = result && (deviceToolPropertiesEXTArray[i].sType == VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT);
+		result = result && validateToolPurposeFlagBits(deviceToolPropertiesEXTArray[i].purposes);
+		result = result && ((nameSize > 0)		&& (nameSize < VK_MAX_EXTENSION_NAME_SIZE));
+		result = result && ((versionSize > 0)	&& (versionSize < VK_MAX_EXTENSION_NAME_SIZE));
+		result = result && ((descSize > 0)		&& (descSize < VK_MAX_DESCRIPTION_SIZE));
+		result = result && ((layerSize == 0)	|| (layerSize < VK_MAX_EXTENSION_NAME_SIZE));
+
+		if (result == false)
+		{
+			testLog << tcu::TestLog::Message << "Tool validation failed" << tcu::TestLog::EndMessage;
+			testLog << tcu::TestLog::Message << "Tool name: " << deviceToolPropertiesEXTArray[i].name << tcu::TestLog::EndMessage;
+			testLog << tcu::TestLog::Message << "Version: " << deviceToolPropertiesEXTArray[i].version << tcu::TestLog::EndMessage;
+			testLog << tcu::TestLog::Message << "Description: " << deviceToolPropertiesEXTArray[i].description << tcu::TestLog::EndMessage;
+			testLog << tcu::TestLog::Message << "Purposes: " << getToolPurposeFlagsEXTStr(deviceToolPropertiesEXTArray[i].purposes) << tcu::TestLog::EndMessage;
+			if (layerSize > 0)
+			{
+				testLog << tcu::TestLog::Message << "Corresponding Layer: " << deviceToolPropertiesEXTArray[i].layer << tcu::TestLog::EndMessage;
+			}
+
+			break;
+		}
+	}
+	return result;
+}
+
+tcu::TestStatus validateGetter (Context& context)
+{
+	tcu::TestLog& testLog = context.getTestContext().getLog();
+
+	VkResult result		= VK_SUCCESS;
+	deUint32 toolCount	= 0;
+
+	result = context.getInstanceInterface().getPhysicalDeviceToolPropertiesEXT(context.getPhysicalDevice(), &toolCount, DE_NULL);
+
+	if(result != VK_SUCCESS)
+	{
+		testLog << tcu::TestLog::Message << "getPhysicalDeviceToolPropertiesEXT wrong result code" << tcu::TestLog::EndMessage;
+		return tcu::TestStatus::fail("Fail");
+	}
+
+	if (toolCount > 0)
+	{
+		deUint32 toolCountSecondCall = toolCount;
+
+		std::vector<VkPhysicalDeviceToolPropertiesEXT>	deviceToolPropertiesEXTArray(toolCountSecondCall);
+
+		result = context.getInstanceInterface().getPhysicalDeviceToolPropertiesEXT(context.getPhysicalDevice(), &toolCountSecondCall, &deviceToolPropertiesEXTArray[0]);
+
+		if (result != VK_SUCCESS)
+		{
+			testLog << tcu::TestLog::Message << "getPhysicalDeviceToolPropertiesEXT wrong result code" << tcu::TestLog::EndMessage;
+			return tcu::TestStatus::fail("Fail");
+		}
+
+		if (toolCountSecondCall != toolCount)
+		{
+			testLog << tcu::TestLog::Message << "Got different tools count on the second call" << tcu::TestLog::EndMessage;
+			return tcu::TestStatus::fail("Fail");
+		}
+
+		toolCountSecondCall++;
+
+		deviceToolPropertiesEXTArray.resize(toolCountSecondCall);
+
+		result = context.getInstanceInterface().getPhysicalDeviceToolPropertiesEXT(context.getPhysicalDevice(), &toolCountSecondCall, &deviceToolPropertiesEXTArray[0]);
+
+		if (result != VK_SUCCESS)
+		{
+			testLog << tcu::TestLog::Message << "getPhysicalDeviceToolPropertiesEXT wrong result code" << tcu::TestLog::EndMessage;
+			return tcu::TestStatus::fail("Fail");
+		}
+
+		if (toolCountSecondCall != toolCount)
+		{
+			testLog << tcu::TestLog::Message << "Bigger array causes an error" << tcu::TestLog::EndMessage;
+			return tcu::TestStatus::fail("Fail");
+		}
+
+		toolCountSecondCall = 0;
+
+		result = context.getInstanceInterface().getPhysicalDeviceToolPropertiesEXT(context.getPhysicalDevice(), &toolCountSecondCall, &deviceToolPropertiesEXTArray[0]);
+
+		if (result != VK_INCOMPLETE)
+		{
+			testLog << tcu::TestLog::Message << "getPhysicalDeviceToolPropertiesEXT wrong result code" << tcu::TestLog::EndMessage;
+			return tcu::TestStatus::fail("Fail");
+		}
+
+		if (toolCountSecondCall != 0)
+		{
+			testLog << tcu::TestLog::Message << "Zero array causes an error" << tcu::TestLog::EndMessage;
+			return tcu::TestStatus::fail("Fail");
+		}
+	}
+
+	if (toolCount > 1)
+	{
+		deUint32 toolCountSecondCall = toolCount / 2;
+
+		std::vector<VkPhysicalDeviceToolPropertiesEXT>	deviceToolPropertiesEXTArray(toolCountSecondCall);
+
+		result = context.getInstanceInterface().getPhysicalDeviceToolPropertiesEXT(context.getPhysicalDevice(), &toolCountSecondCall, &deviceToolPropertiesEXTArray[0]);
+
+		if (result != VK_INCOMPLETE)
+		{
+			testLog << tcu::TestLog::Message << "getPhysicalDeviceToolPropertiesEXT wrong result code" << tcu::TestLog::EndMessage;
+			return tcu::TestStatus::fail("Fail");
+		}
+
+		if (toolCountSecondCall != (toolCount / 2))
+		{
+			testLog << tcu::TestLog::Message << "Smaller array causes an error" << tcu::TestLog::EndMessage;
+			return tcu::TestStatus::fail("Fail");
+		}
+	}
+
+	return tcu::TestStatus::pass("Pass");
+}
+
+tcu::TestStatus validateToolsProperties (Context& context)
+{
+	deUint32 toolCount	= 0;
+
+	VK_CHECK(context.getInstanceInterface().getPhysicalDeviceToolPropertiesEXT(context.getPhysicalDevice(), &toolCount, DE_NULL));
+
+	if (toolCount > 0)
+	{
+		std::vector<VkPhysicalDeviceToolPropertiesEXT>	deviceToolPropertiesEXTArray(toolCount);
+
+		VK_CHECK(context.getInstanceInterface().getPhysicalDeviceToolPropertiesEXT(context.getPhysicalDevice(), &toolCount, &deviceToolPropertiesEXTArray[0]));
+
+		if (checkToolsProperties(context, deviceToolPropertiesEXTArray) == false)
+			return tcu::TestStatus::fail("Fail");
+	}
+
+	return tcu::TestStatus::pass("Pass");
+}
+
+tcu::TestStatus validateInstanceLayers (Context& context)
+{
+	const std::vector<const char*>	layers			= getValidationLayers(context.getPlatformInterface());
+	bool							qualityWarning	= false;
+
+	{
+		deUint32			toolCount		= 0;
+		CustomInstance		instance		(createCustomInstance(context, true));
+		VkPhysicalDevice	physicalDevice	= chooseDevice(instance.getDriver(), instance, context.getTestContext().getCommandLine());
+
+		VK_CHECK(instance.getDriver().getPhysicalDeviceToolPropertiesEXT(physicalDevice, &toolCount, DE_NULL));
+
+		if (toolCount < layers.size())
+			qualityWarning = true;
+
+		if (toolCount > 0)
+		{
+			std::vector<VkPhysicalDeviceToolPropertiesEXT>	deviceToolPropertiesEXTArray(toolCount);
+
+			VK_CHECK(context.getInstanceInterface().getPhysicalDeviceToolPropertiesEXT(physicalDevice, &toolCount, &deviceToolPropertiesEXTArray[0]));
+
+			if (checkToolsProperties(context, deviceToolPropertiesEXTArray) == false)
+				return tcu::TestStatus::fail("Fail");
+
+			for (size_t layerNdx = 0; layerNdx < layers.size(); ++layerNdx)
+			{
+				deUint32 count = 0u;
+
+				for (deUint32 toolNdx = 0; toolNdx < toolCount; ++toolNdx)
+				{
+					if (strcmp(layers[layerNdx], deviceToolPropertiesEXTArray[toolNdx].layer) == 0)
+						count++;
+				}
+
+				if (count != 1)
+				{
+					qualityWarning = true;
+					break;
+				}
+			}
+		}
+	}
+
+	{
+		deUint32			toolCount		= 0;
+		CustomInstance		instance		(createCustomInstance(context, false));
+		VkPhysicalDevice	physicalDevice	= chooseDevice(instance.getDriver(), instance, context.getTestContext().getCommandLine());
+
+		VK_CHECK(instance.getDriver().getPhysicalDeviceToolPropertiesEXT(physicalDevice, &toolCount, DE_NULL));
+
+		if (toolCount > 0)
+		{
+			std::vector<VkPhysicalDeviceToolPropertiesEXT>	deviceToolPropertiesEXTArray(toolCount);
+
+			VK_CHECK(context.getInstanceInterface().getPhysicalDeviceToolPropertiesEXT(physicalDevice, &toolCount, &deviceToolPropertiesEXTArray[0]));
+
+			if (checkToolsProperties(context, deviceToolPropertiesEXTArray) == false)
+				return tcu::TestStatus::fail("Fail");
+
+			for (size_t layerNdx = 0; layerNdx < layers.size(); ++layerNdx)
+			{
+				for (deUint32 toolNdx = 0; toolNdx < toolCount; ++toolNdx)
+				{
+					if (strcmp(layers[layerNdx], deviceToolPropertiesEXTArray[toolNdx].layer) == 0)
+					{
+						qualityWarning	= true;
+						layerNdx		= layers.size();
+						break;
+					}
+				}
+			}
+		}
+	}
+
+	if (qualityWarning)
+	{
+		return tcu::TestStatus(QP_TEST_RESULT_QUALITY_WARNING, "Layers have been reported wrong");
+	}
+	else
+	{
+		return tcu::TestStatus::pass("Pass");
+	}
+}
+
+void createTestCases (tcu::TestCaseGroup* group)
+{
+	addFunctionCase(group, "validate_getter", "Validate getPhysicalDeviceToolPropertiesEXT", checkSupport, validateGetter);
+	addFunctionCase(group, "validate_tools_properties","Validate tools properties",	checkSupport, validateToolsProperties);
+	addFunctionCase(group, "validate_instance_layers", "Validate instance layers", checkSupport, validateInstanceLayers);
+}
+
+} // anonymous
+
+tcu::TestCaseGroup*	createToolingInfoTests (tcu::TestContext& testCtx)
+{
+	return createTestGroup(testCtx, "tooling_info", "VK_EXT_tooling_info tests", createTestCases);
+}
+
+} // api
+} // vkt
diff --git a/external/vulkancts/modules/vulkan/api/vktApiToolingInfoTests.hpp b/external/vulkancts/modules/vulkan/api/vktApiToolingInfoTests.hpp
new file mode 100644
index 0000000..6c993d7
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/api/vktApiToolingInfoTests.hpp
@@ -0,0 +1,40 @@
+#ifndef _VKTAPITOOLINGINFOTESTS_HPP
+#define _VKTAPITOOLINGINFOTESTS_HPP
+/*-------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2019 Advanced Micro Devices, Inc.
+ * Copyright (c) 2019 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief VK_EXT_tooling_info tests
+ *//*--------------------------------------------------------------------*/
+
+#include "tcuDefs.hpp"
+#include "tcuTestCase.hpp"
+
+namespace vkt
+{
+namespace api
+{
+
+tcu::TestCaseGroup*	createToolingInfoTests	(tcu::TestContext& testCtx);
+
+} // api
+} // vkt
+
+#endif // _VKTAPITOOLINGINFOTESTS_HPP
diff --git a/external/vulkancts/modules/vulkan/api/vktApiVersionCheck.cpp b/external/vulkancts/modules/vulkan/api/vktApiVersionCheck.cpp
index 12fb584..2b3cece 100644
--- a/external/vulkancts/modules/vulkan/api/vktApiVersionCheck.cpp
+++ b/external/vulkancts/modules/vulkan/api/vktApiVersionCheck.cpp
@@ -127,8 +127,8 @@
 								APIEntryPointsTestInstance	(Context&				ctx)
 									: TestInstance	(ctx)
 	{
-
 	}
+
 	virtual tcu::TestStatus		iterate						(void)
 	{
 		tcu::TestLog&						log				= m_context.getTestContext().getLog();
@@ -450,7 +450,7 @@
 		const deUint32 startingQuantity = failsQuantity;
 		for (deUint32 ndx = 0u; ndx < testsArr.size(); ++ndx)
 		{
-			if (deStringEqual(testsArr[ndx].first, "vkGetInstanceProcAddr") || deStringEqual(testsArr[ndx].first, "vkEnumerateInstanceVersion"))
+			if (deStringEqual(testsArr[ndx].first, "vkGetInstanceProcAddr") && m_context.getUsedApiVersion() < VK_API_VERSION_1_2)
 				continue;
 
 			const deUint32 functionType	= testsArr[ndx].second;
diff --git a/external/vulkancts/modules/vulkan/binding_model/vktBindingBufferDeviceAddressTests.cpp b/external/vulkancts/modules/vulkan/binding_model/vktBindingBufferDeviceAddressTests.cpp
index 19d706b..c89f876 100644
--- a/external/vulkancts/modules/vulkan/binding_model/vktBindingBufferDeviceAddressTests.cpp
+++ b/external/vulkancts/modules/vulkan/binding_model/vktBindingBufferDeviceAddressTests.cpp
@@ -1039,7 +1039,7 @@
 		sbtBuffer = de::MovePtr<BufferWithMemory>(new BufferWithMemory(
 			vk, device, allocator, makeBufferCreateInfo(DE_NULL, rayTracingProperties.shaderGroupHandleSize, VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_RAY_TRACING_BIT_NV, 0), MemoryRequirement::HostVisible));
 		deUint32 *ptr = (deUint32 *)sbtBuffer->getAllocation().getHostPtr();
-		invalidateMappedMemoryRange(vk, device, sbtBuffer->getAllocation().getMemory(), sbtBuffer->getAllocation().getOffset(), rayTracingProperties.shaderGroupHandleSize);
+		invalidateAlloc(vk, device, sbtBuffer->getAllocation());
 
 		vk.getRayTracingShaderGroupHandlesNV(device, *pipeline, 0, 1, rayTracingProperties.shaderGroupHandleSize, ptr);
 	}
@@ -1311,7 +1311,7 @@
 	submitCommandsAndWait(vk, device, queue, cmdBuffer.get());
 
 	deUint32 *ptr = (deUint32 *)copyBuffer->getAllocation().getHostPtr();
-	invalidateMappedMemoryRange(vk, device, copyBuffer->getAllocation().getMemory(), copyBuffer->getAllocation().getOffset(), DIM*DIM*sizeof(deUint32));
+	invalidateAlloc(vk, device, copyBuffer->getAllocation());
 
 	qpTestResult res = QP_TEST_RESULT_PASS;
 
diff --git a/external/vulkancts/modules/vulkan/binding_model/vktBindingDescriptorCopyTests.cpp b/external/vulkancts/modules/vulkan/binding_model/vktBindingDescriptorCopyTests.cpp
index e9c250b..e1cfa09 100644
--- a/external/vulkancts/modules/vulkan/binding_model/vktBindingDescriptorCopyTests.cpp
+++ b/external/vulkancts/modules/vulkan/binding_model/vktBindingDescriptorCopyTests.cpp
@@ -617,7 +617,7 @@
 			}
 		}
 
-		flushMappedMemoryRange(vk, device, m_buffer->getAllocation().getMemory(), m_buffer->getAllocation().getOffset(), VK_WHOLE_SIZE);
+		flushAlloc(vk, device, m_buffer->getAllocation());
 	}
 }
 
@@ -646,9 +646,9 @@
 void BufferDescriptor::invalidate (Context& context)
 {
 	const DeviceInterface&	vk		= context.getDeviceInterface();
-    const VkDevice			device	= context.getDevice();
+	const VkDevice			device	= context.getDevice();
 
-	invalidateMappedMemoryRange(vk, device, m_buffer->getAllocation().getMemory(), m_buffer->getAllocation().getOffset(), m_bufferSize);
+	invalidateAlloc(vk, device, m_buffer->getAllocation());
 }
 
 // Returns the buffer data as a vector
@@ -1307,7 +1307,7 @@
 	DE_UNREF(pipelineType);
 
 	const DeviceInterface&	vk		= context.getDeviceInterface();
-    const VkDevice			device	= context.getDevice();
+	const VkDevice			device	= context.getDevice();
 	const VkFormat			format	= VK_FORMAT_R32_SFLOAT;
 
 	// Create samplers
@@ -1532,12 +1532,12 @@
 {
 	const InstanceInterface&				vki					= context.getInstanceInterface();
 	const DeviceInterface&					vk					= context.getDeviceInterface();
-    const VkDevice							device				= context.getDevice();
+	const VkDevice							device				= context.getDevice();
 	const VkQueue							queue				= context.getUniversalQueue();
 	const VkPhysicalDevice					physicalDevice		= context.getPhysicalDevice();
 	const VkPhysicalDeviceLimits			limits				= getPhysicalDeviceProperties(vki, physicalDevice).limits;
 	const deUint32							queueFamilyIndex	= context.getUniversalQueueFamilyIndex();
-    Allocator&								allocator			= context.getDefaultAllocator();
+	Allocator&								allocator			= context.getDefaultAllocator();
 	tcu::TestLog&							log					= context.getTestContext().getLog();
 	const Unique<VkCommandPool>				commandPool			(createCommandPool(vk, device, VK_COMMAND_POOL_CREATE_TRANSIENT_BIT, queueFamilyIndex));
 	const Unique<VkCommandBuffer>			commandBuffer		(allocateCommandBuffer(vk, device, *commandPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY));
diff --git a/external/vulkancts/modules/vulkan/binding_model/vktBindingDescriptorSetRandomTests.cpp b/external/vulkancts/modules/vulkan/binding_model/vktBindingDescriptorSetRandomTests.cpp
index 5f91777..f30cd04 100644
--- a/external/vulkancts/modules/vulkan/binding_model/vktBindingDescriptorSetRandomTests.cpp
+++ b/external/vulkancts/modules/vulkan/binding_model/vktBindingDescriptorSetRandomTests.cpp
@@ -1218,7 +1218,7 @@
 	}
 
 	// Flush modified memory.
-	flushMappedMemoryRange(vk, device, buffer->getAllocation().getMemory(), buffer->getAllocation().getOffset(), VK_WHOLE_SIZE);
+	flushAlloc(vk, device, buffer->getAllocation());
 
 	// Push constants are used for dynamic indexing. PushConstant[i] = i.
 	const VkPushConstantRange			pushConstRange			=
@@ -1643,7 +1643,7 @@
 			vk, device, allocator, makeBufferCreateInfo(rayTracingProperties.shaderGroupHandleSize, VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_RAY_TRACING_BIT_NV), MemoryRequirement::HostVisible));
 
 		deUint32 *ptr = (deUint32 *)sbtBuffer->getAllocation().getHostPtr();
-		invalidateMappedMemoryRange(vk, device, sbtBuffer->getAllocation().getMemory(), sbtBuffer->getAllocation().getOffset(), rayTracingProperties.shaderGroupHandleSize);
+		invalidateAlloc(vk, device, sbtBuffer->getAllocation());
 
 		vk.getRayTracingShaderGroupHandlesNV(device, *pipeline, 0, 1, rayTracingProperties.shaderGroupHandleSize, ptr);
 	}
@@ -1957,7 +1957,7 @@
 	submitCommandsAndWait(vk, device, queue, cmdBuffer.get());
 
 	deUint32 *ptr = (deUint32 *)copyBuffer->getAllocation().getHostPtr();
-	invalidateMappedMemoryRange(vk, device, copyBuffer->getAllocation().getMemory(), copyBuffer->getAllocation().getOffset(), DIM*DIM*sizeof(deUint32));
+	invalidateAlloc(vk, device, copyBuffer->getAllocation());
 
 	qpTestResult res = QP_TEST_RESULT_PASS;
 
diff --git a/external/vulkancts/modules/vulkan/compute/vktComputeIndirectComputeDispatchTests.cpp b/external/vulkancts/modules/vulkan/compute/vktComputeIndirectComputeDispatchTests.cpp
index 538fd57..eec66ad 100644
--- a/external/vulkancts/modules/vulkan/compute/vktComputeIndirectComputeDispatchTests.cpp
+++ b/external/vulkancts/modules/vulkan/compute/vktComputeIndirectComputeDispatchTests.cpp
@@ -449,10 +449,11 @@
 	virtual void					fillIndirectBufferData					(const vk::VkCommandBuffer	commandBuffer,
 																			 const Buffer&				indirectBuffer);
 
-	vk::Move<vk::VkDescriptorPool>	m_descriptorPool;
-	vk::Move<vk::VkDescriptorSet>	m_descriptorSet;
-	vk::Move<vk::VkPipelineLayout>	m_pipelineLayout;
-	vk::Move<vk::VkPipeline>		m_computePipeline;
+	vk::Move<vk::VkDescriptorSetLayout>	m_descriptorSetLayout;
+	vk::Move<vk::VkDescriptorPool>		m_descriptorPool;
+	vk::Move<vk::VkDescriptorSet>		m_descriptorSet;
+	vk::Move<vk::VkPipelineLayout>		m_pipelineLayout;
+	vk::Move<vk::VkPipeline>			m_computePipeline;
 
 private:
 	IndirectDispatchInstanceBufferGenerate (const vkt::TestInstance&);
@@ -466,12 +467,12 @@
 		m_device_interface, m_device, m_context.getBinaryCollection().get("indirect_dispatch_" + m_name + "_generate"), 0u));
 
 	// Create descriptorSetLayout
-	vk::DescriptorSetLayoutBuilder layoutBuilder;
-	layoutBuilder.addSingleBinding(vk::VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, vk::VK_SHADER_STAGE_COMPUTE_BIT);
-	vk::Unique<vk::VkDescriptorSetLayout> descriptorSetLayout(layoutBuilder.build(m_device_interface, m_device));
+	m_descriptorSetLayout = vk::DescriptorSetLayoutBuilder()
+		.addSingleBinding(vk::VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, vk::VK_SHADER_STAGE_COMPUTE_BIT)
+		.build(m_device_interface, m_device);
 
 	// Create compute pipeline
-	m_pipelineLayout = makePipelineLayout(m_device_interface, m_device, *descriptorSetLayout);
+	m_pipelineLayout = makePipelineLayout(m_device_interface, m_device, *m_descriptorSetLayout);
 	m_computePipeline = makeComputePipeline(m_device_interface, m_device, *m_pipelineLayout, *genIndirectBufferDataShader);
 
 	// Create descriptor pool
@@ -480,7 +481,7 @@
 		.build(m_device_interface, m_device, vk::VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, 1u);
 
 	// Create descriptor set
-	m_descriptorSet = makeDescriptorSet(m_device_interface, m_device, *m_descriptorPool, *descriptorSetLayout);
+	m_descriptorSet = makeDescriptorSet(m_device_interface, m_device, *m_descriptorPool, *m_descriptorSetLayout);
 
 	const vk::VkDescriptorBufferInfo indirectDescriptorInfo = makeDescriptorBufferInfo(*indirectBuffer, 0ull, m_bufferSize);
 
diff --git a/external/vulkancts/modules/vulkan/descriptor_indexing/vktDescriptorSetsIndexingTests.cpp b/external/vulkancts/modules/vulkan/descriptor_indexing/vktDescriptorSetsIndexingTests.cpp
index 5ae5310..282cd2f 100644
--- a/external/vulkancts/modules/vulkan/descriptor_indexing/vktDescriptorSetsIndexingTests.cpp
+++ b/external/vulkancts/modules/vulkan/descriptor_indexing/vktDescriptorSetsIndexingTests.cpp
@@ -1677,13 +1677,13 @@
 		break;
 	case VK_DESCRIPTOR_TYPE_SAMPLER:
 		text = usesMipMaps
-			? "textureLod(sampler2D(tex[0], data[nonuniformEXT(${INDEX})]), normalpos, 1)"
-			: "texture(   sampler2D(tex[0], data[nonuniformEXT(${INDEX})]), normalpos   )";
+			? "textureLod(nonuniformEXT(sampler2D(tex[0], data[${INDEX}])), normalpos, 1)"
+			: "texture(   nonuniformEXT(sampler2D(tex[0], data[${INDEX}])), normalpos   )";
 		break;
 	case VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE:
 		text = usesMipMaps
-			? "textureLod( sampler2D(data[nonuniformEXT(${INDEX})], samp[0]), vec2(0,0), textureQueryLevels(sampler2D(data[nonuniformEXT(${INDEX})], samp[0]))-1)"
-			: "texture(    sampler2D(data[nonuniformEXT(${INDEX})], samp[0]), vec2(0,0)   )";
+			? "textureLod( nonuniformEXT(sampler2D(data[${INDEX}], samp[0])), vec2(0,0), textureQueryLevels(nonuniformEXT(sampler2D(data[${INDEX}], samp[0])))-1)"
+			: "texture(    nonuniformEXT(sampler2D(data[${INDEX}], samp[0])), vec2(0,0)   )";
 		break;
 	case VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER:
 		text = usesMipMaps
diff --git a/external/vulkancts/modules/vulkan/descriptor_indexing/vktDescriptorSetsIndexingTests.hpp b/external/vulkancts/modules/vulkan/descriptor_indexing/vktDescriptorSetsIndexingTests.hpp
index 131beff..27b7e82 100644
--- a/external/vulkancts/modules/vulkan/descriptor_indexing/vktDescriptorSetsIndexingTests.hpp
+++ b/external/vulkancts/modules/vulkan/descriptor_indexing/vktDescriptorSetsIndexingTests.hpp
@@ -291,8 +291,7 @@
 	void fillColor (const tcu::Vec4&) const { }
 	void invalidate (void) const
 	{
-		const VkDeviceSize		bufferSize = calcTexSize(getFormat(), getWidth(), getHeight(), getDepth());
-		vk::invalidateMappedMemoryRange(m_interface, m_device, (*m_allocation)->getMemory(), (*m_allocation)->getOffset(), bufferSize);
+		invalidateAlloc(m_interface, m_device, **m_allocation);
 	}
 };
 
diff --git a/external/vulkancts/modules/vulkan/descriptor_indexing/vktDescriptorSetsIndexingTestsUtils.cpp b/external/vulkancts/modules/vulkan/descriptor_indexing/vktDescriptorSetsIndexingTestsUtils.cpp
index c81b845..cc58e34 100644
--- a/external/vulkancts/modules/vulkan/descriptor_indexing/vktDescriptorSetsIndexingTestsUtils.cpp
+++ b/external/vulkancts/modules/vulkan/descriptor_indexing/vktDescriptorSetsIndexingTestsUtils.cpp
@@ -587,7 +587,7 @@
 {
 	const size_t				nonCoherentAtomSize	(static_cast<size_t>(ctx.getDeviceProperties().limits.nonCoherentAtomSize));
 	const VkDeviceSize			roundedSize			(deAlignSize(static_cast<size_t>(desiredSize), nonCoherentAtomSize));
-	Allocator&                  allocator			(ctx.getDefaultAllocator());
+	Allocator&					allocator			(ctx.getDefaultAllocator());
 	VkDevice					device				(ctx.getDevice());
 	const DeviceInterface&		interface			(ctx.getDeviceInterface());
 
diff --git a/external/vulkancts/modules/vulkan/draw/CMakeLists.txt b/external/vulkancts/modules/vulkan/draw/CMakeLists.txt
index 33578a9..8c8bb09 100644
--- a/external/vulkancts/modules/vulkan/draw/CMakeLists.txt
+++ b/external/vulkancts/modules/vulkan/draw/CMakeLists.txt
@@ -42,6 +42,10 @@
 	vktDrawMultipleInterpolationTests.cpp
 	vktDrawDiscardRectanglesTests.hpp
 	vktDrawDiscardRectanglesTests.cpp
+	vktDrawExplicitVertexParameterTests.cpp
+	vktDrawExplicitVertexParameterTests.hpp
+	vktDrawOutputLocationTests.cpp
+	vktDrawOutputLocationTests.hpp
 )
 
 set(DEQP_VK_DRAW_LIBS
diff --git a/external/vulkancts/modules/vulkan/draw/vktDrawDiscardRectanglesTests.cpp b/external/vulkancts/modules/vulkan/draw/vktDrawDiscardRectanglesTests.cpp
index 375ed88..7093662 100644
--- a/external/vulkancts/modules/vulkan/draw/vktDrawDiscardRectanglesTests.cpp
+++ b/external/vulkancts/modules/vulkan/draw/vktDrawDiscardRectanglesTests.cpp
@@ -599,7 +599,7 @@
 	// Verify results
 	{
 		const Allocation alloc = m_colorBuffer->getBoundMemory();
-		invalidateMappedMemoryRange(vk, device, alloc.getMemory(), 0ull, colorBufferSize);
+		invalidateAlloc(vk, device, alloc);
 
 		const tcu::ConstPixelBufferAccess	resultImage		(mapVkFormat(colorFormat), m_renderSize.x(), m_renderSize.y(), 1u, alloc.getHostPtr());
 		const tcu::TextureLevel				referenceImage	= generateReferenceImage(mapVkFormat(colorFormat), m_renderSize, m_params.testMode, m_clearColor,
diff --git a/external/vulkancts/modules/vulkan/draw/vktDrawExplicitVertexParameterTests.cpp b/external/vulkancts/modules/vulkan/draw/vktDrawExplicitVertexParameterTests.cpp
new file mode 100644
index 0000000..a872a69
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/draw/vktDrawExplicitVertexParameterTests.cpp
@@ -0,0 +1,621 @@
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2020 The Khronos Group Inc.
+ * Copyright (c) 2020 Valve Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief VK_AMD_shader_explicit_vertex_parameter tests
+ *//*--------------------------------------------------------------------*/
+
+#include "vktDrawExplicitVertexParameterTests.hpp"
+
+#include "vktDrawBaseClass.hpp"
+#include "vkQueryUtil.hpp"
+#include "vkCmdUtil.hpp"
+#include "vkTypeUtil.hpp"
+#include "vktTestGroupUtil.hpp"
+
+#include "vkObjUtil.hpp"
+#include "vkBuilderUtil.hpp"
+#include "vkTypeUtil.hpp"
+
+#include "deDefs.h"
+#include "deRandom.hpp"
+#include "deString.h"
+#include "deMath.h"
+
+#include "tcuTestCase.hpp"
+#include "tcuRGBA.hpp"
+#include "tcuTextureUtil.hpp"
+#include "tcuImageCompare.hpp"
+#include "tcuStringTemplate.hpp"
+
+#include "rrRenderer.hpp"
+
+#include <string>
+#include <sstream>
+
+namespace vkt
+{
+namespace Draw
+{
+namespace
+{
+using namespace vk;
+using namespace std;
+
+enum Interpolation
+{
+	SMOOTH = 0,
+	NOPERSPECTIVE = 1,
+};
+
+enum AuxiliaryQualifier
+{
+	AUX_NONE = 0,
+	AUX_CENTROID = 1,
+	AUX_SAMPLE = 2,
+};
+
+
+enum
+{
+	WIDTH = 16,
+	HEIGHT = 16
+};
+
+struct PositionValueVertex {
+	PositionValueVertex(tcu::Vec4 pos, float val)
+	: position(pos)
+	, value(val)
+	{};
+public:
+	tcu::Vec4	position;
+	float		value;
+};
+
+struct DrawParams
+{
+	Interpolation				interpolation;
+	vk::VkSampleCountFlagBits	samples;
+	AuxiliaryQualifier			auxiliaryStorage;
+};
+
+const char* interpolationToString (Interpolation interpolation)
+{
+	switch (interpolation)
+	{
+		case SMOOTH:
+			return "smooth";
+		case NOPERSPECTIVE:
+			return "noperspective";
+		default:
+			DE_FATAL("Invalid interpolation enum");
+	}
+
+	return "";
+}
+
+std::string barycentricVariableString (Interpolation interpolation, AuxiliaryQualifier aux)
+{
+	std::ostringstream name;
+	name << "gl_BaryCoord";
+	switch (interpolation)
+	{
+		case SMOOTH:
+			name << "Smooth";
+			break;
+		case NOPERSPECTIVE:
+			name << "NoPersp";
+			break;
+		default:
+			DE_FATAL("Invalid interpolation enum");
+	}
+
+	switch (aux)
+	{
+		case AUX_CENTROID:
+			name << "Centroid";
+			break;
+		case AUX_SAMPLE:
+			name << "Sample";
+			break;
+		case AUX_NONE:
+			name << "";
+			break;
+		default:
+			DE_FATAL("Invalid auxiliary storage qualifier enum");
+	}
+	name << "AMD";
+	return name.str();
+}
+
+const char* auxiliaryQualifierToString (AuxiliaryQualifier aux)
+{
+	switch (aux)
+	{
+		case AUX_CENTROID:
+			return "centroid";
+		case AUX_SAMPLE:
+			return "sample";
+		case AUX_NONE:
+			return "";
+		default:
+			DE_FATAL("Invalid auxiliary storage qualifier enum");
+	}
+
+	return "";
+}
+
+std::string getTestName (DrawParams params)
+{
+	std::ostringstream	name;
+
+	name << interpolationToString(params.interpolation) << "_";
+
+	if (params.auxiliaryStorage != AUX_NONE)
+		name << auxiliaryQualifierToString(params.auxiliaryStorage) << "_";
+
+	name << "samples_" << de::toString(params.samples);
+
+	return name.str();
+}
+
+class DrawTestInstance : public TestInstance
+{
+public:
+						DrawTestInstance	(Context& context, const DrawParams& data);
+						~DrawTestInstance	(void);
+	tcu::TestStatus		iterate				(void);
+private:
+	DrawParams			m_data;
+};
+
+DrawTestInstance::DrawTestInstance (Context& context, const DrawParams& data)
+	: vkt::TestInstance		(context)
+	, m_data				(data)
+{
+}
+
+DrawTestInstance::~DrawTestInstance (void)
+{
+}
+
+class DrawTestCase : public TestCase
+{
+	public:
+								DrawTestCase		(tcu::TestContext& context, const char* name, const char* desc, const DrawParams data);
+								~DrawTestCase		(void);
+	virtual	void				initPrograms		(SourceCollections& programCollection) const;
+	virtual TestInstance*		createInstance		(Context& context) const;
+	virtual void				checkSupport	(Context& context) const;
+
+private:
+	DrawParams					m_data;
+};
+
+DrawTestCase::DrawTestCase (tcu::TestContext& context, const char* name, const char* desc, const DrawParams data)
+	: vkt::TestCase	(context, name, desc)
+	, m_data		(data)
+{
+}
+
+DrawTestCase::~DrawTestCase	(void)
+{
+}
+
+void DrawTestCase::checkSupport(Context &context) const
+{
+	context.requireDeviceFunctionality("VK_AMD_shader_explicit_vertex_parameter");
+
+	if ((context.getDeviceProperties().limits.framebufferColorSampleCounts & m_data.samples) == 0)
+		TCU_THROW(NotSupportedError, "framebufferColorSampleCounts: sample count not supported");
+}
+
+void DrawTestCase::initPrograms (SourceCollections& programCollection) const
+{
+	const deUint32				numValues	= WIDTH * HEIGHT * m_data.samples;
+
+	const tcu::StringTemplate	vertShader	(string(
+		"#version 450\n"
+		"#extension GL_AMD_shader_explicit_vertex_parameter : require\n"
+		"\n"
+		"layout(location = 0) in vec4 in_position;\n"
+		"layout(location = 1) in float in_data;\n"
+		"layout(location = 0) __explicitInterpAMD out float out_data_explicit;\n"
+		"layout(location = 1) ${auxqualifier} ${qualifier}        out float out_data_${qualifier};\n"
+		"\n"
+		"out gl_PerVertex {\n"
+		"    vec4  gl_Position;\n"
+		"    float gl_PointSize;\n"
+		"};\n"
+		"\n"
+		"void main() {\n"
+		"    gl_PointSize              = 1.0;\n"
+		"    gl_Position               = in_position;\n"
+		"    out_data_explicit         = in_data;\n"
+		"    out_data_${qualifier}     = in_data;\n"
+		"}\n"));
+
+	const tcu::StringTemplate	fragShader	(string(
+		"#version 450\n"
+		"#extension GL_AMD_shader_explicit_vertex_parameter : require\n"
+		"\n"
+		"layout(location = 0) __explicitInterpAMD in float in_data_explicit;\n"
+		"layout(location = 1) ${auxqualifier} ${qualifier}        in float in_data_${qualifier};\n"
+		"layout(location = 0) out vec4 out_color;\n"
+		"layout (binding = 0, std140) writeonly buffer Output {\n"
+		"    vec4 values [${numValues}];\n"
+		"} sb_out;\n"
+		"\n"
+		"void main()\n"
+		"{\n"
+		"    uint index = (uint(gl_FragCoord.y) * ${width} * ${samples}) + uint(gl_FragCoord.x) * ${samples} + gl_SampleID;\n"
+		"    // Barycentric coodinates (I, J, K)\n"
+		"    vec3 bary_coord = vec3(${barycoord}.x, ${barycoord}.y, 1.0f - ${barycoord}.x - ${barycoord}.y);\n"
+		"\n"
+		"    // Vertex 0 -> (I = 0, J = 0, K = 1)\n"
+		"    float data0 = interpolateAtVertexAMD(in_data_explicit, 0);\n"
+		"    // Vertex 1 -> (I = 1, J = 0, K = 0)\n"
+		"    float data1 = interpolateAtVertexAMD(in_data_explicit, 1);\n"
+		"    // Vertex 1 -> (I = 0, J = 1, K = 0)\n"
+		"    float data2 = interpolateAtVertexAMD(in_data_explicit, 2);\n"
+		"    // Match data component with barycentric coordinate\n"
+		"    vec3  data  = vec3(data1, data2, data0);\n"
+		"\n"
+		"    float res      = (bary_coord.x * data.x) + (bary_coord.y * data.y) + (bary_coord.z * data.z);\n"
+		"    float expected = in_data_${qualifier};\n"
+		"\n"
+		"    sb_out.values[ index ] = vec4(expected, res, 0u, 0u);\n"
+		"\n"
+		"    const float threshold = 0.0005f;\n"
+		"    if (abs(res - expected) < threshold)\n"
+		"        out_color = vec4(0.0f, 1.0f, 0.0f, 1.0f);\n"
+		"    else\n"
+		"        out_color = vec4(1.0f, 0.0f, 0.0f, 1.0f);\n"
+		"}\n"));
+
+	map<string, string> attributes;
+	attributes["width"]			= de::toString(WIDTH);
+	attributes["numValues"]		= de::toString(numValues * m_data.samples);
+	attributes["qualifier"]		= interpolationToString(m_data.interpolation);
+	attributes["auxqualifier"]	= auxiliaryQualifierToString(m_data.auxiliaryStorage);
+	attributes["barycoord"]		= barycentricVariableString(m_data.interpolation, m_data.auxiliaryStorage);
+	attributes["samples"]		= de::toString(m_data.samples);
+
+	programCollection.glslSources.add("vert") << glu::VertexSource(vertShader.specialize(attributes));
+	programCollection.glslSources.add("frag") << glu::FragmentSource(fragShader.specialize(attributes));
+}
+
+TestInstance* DrawTestCase::createInstance (Context& context) const
+{
+	return new DrawTestInstance(context, m_data);
+}
+
+tcu::TestStatus DrawTestInstance::iterate (void)
+{
+	de::SharedPtr<Image>			colorTargetImage;
+	de::SharedPtr<Image>			multisampleTargetImage;
+	tcu::TestLog					&log					= m_context.getTestContext().getLog();
+
+	// Run two iterations with shaders that have different interpolation decorations. Images should still match.
+	const DeviceInterface&			vk						= m_context.getDeviceInterface();
+	const VkDevice					device					= m_context.getDevice();
+	const CmdPoolCreateInfo			cmdPoolCreateInfo		(m_context.getUniversalQueueFamilyIndex());
+	Move<VkCommandPool>				cmdPool					= createCommandPool(vk, device, &cmdPoolCreateInfo);
+	Move<VkCommandBuffer>			cmdBuffer				= allocateCommandBuffer(vk, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY);
+	const Unique<VkShaderModule>	vs						(createShaderModule(vk, device, m_context.getBinaryCollection().get("vert"), 0));
+	const Unique<VkShaderModule>	fs						(createShaderModule(vk, device, m_context.getBinaryCollection().get("frag"), 0));
+	de::SharedPtr<Buffer>			vertexBuffer;
+	de::SharedPtr<Buffer>			ssboBuffer;
+	Move<VkRenderPass>				renderPass;
+	Move<VkImageView>				colorTargetView;
+	Move<VkImageView>				multisampleTargetView;
+	Move<VkFramebuffer>				framebuffer;
+	Move<VkPipeline>				pipeline;
+	Move<VkPipelineLayout>			pipelineLayout;
+	Move<VkDescriptorPool>			descriptorPool;
+	Move<VkDescriptorSet>			descriptorSet;
+	Move<VkDescriptorSetLayout>		descriptorSetLayout;
+
+	vk::VkFormat					imageFormat				= VK_FORMAT_R8G8B8A8_UNORM;
+	const deUint32					numValues				= WIDTH * HEIGHT * m_data.samples;
+	const deBool					useMultisampling		= m_data.samples != VK_SAMPLE_COUNT_1_BIT;
+
+	// Create color buffer images.
+	{
+		const VkExtent3D			targetImageExtent		= { WIDTH, HEIGHT, 1 };
+		const ImageCreateInfo		targetImageCreateInfo	(VK_IMAGE_TYPE_2D, imageFormat, targetImageExtent, 1, 1, VK_SAMPLE_COUNT_1_BIT,
+															 VK_IMAGE_TILING_OPTIMAL, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT);
+		colorTargetImage									= Image::createAndAlloc(vk, device, targetImageCreateInfo, m_context.getDefaultAllocator(), m_context.getUniversalQueueFamilyIndex());
+
+		if (useMultisampling)
+		{
+			const ImageCreateInfo		multisampleTargetImageCreateInfo	(VK_IMAGE_TYPE_2D, imageFormat, targetImageExtent, 1, 1, m_data.samples,
+																			 VK_IMAGE_TILING_OPTIMAL, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT);
+			multisampleTargetImage											= Image::createAndAlloc(vk, device, multisampleTargetImageCreateInfo, m_context.getDefaultAllocator(), m_context.getUniversalQueueFamilyIndex());
+		}
+	}
+
+	// Create render pass and frame buffer.
+	{
+		const ImageViewCreateInfo		colorTargetViewInfo		(colorTargetImage->object(), VK_IMAGE_VIEW_TYPE_2D, imageFormat);
+		colorTargetView	= createImageView(vk, device, &colorTargetViewInfo);
+
+		RenderPassCreateInfo			renderPassCreateInfo;
+		renderPassCreateInfo.addAttachment(AttachmentDescription(imageFormat,
+																 VK_SAMPLE_COUNT_1_BIT,
+																 VK_ATTACHMENT_LOAD_OP_LOAD,
+																 VK_ATTACHMENT_STORE_OP_STORE,
+																 VK_ATTACHMENT_LOAD_OP_DONT_CARE,
+																 VK_ATTACHMENT_STORE_OP_STORE,
+																 VK_IMAGE_LAYOUT_UNDEFINED,
+																 VK_IMAGE_LAYOUT_GENERAL));
+
+		const VkAttachmentReference		colorAttachmentRef			= { 0u, VK_IMAGE_LAYOUT_GENERAL };
+		const VkAttachmentReference		multisampleAttachmentRef	= { 1u, VK_IMAGE_LAYOUT_GENERAL };
+		vector<VkImageView>				colorAttachments;
+		colorAttachments.push_back(*colorTargetView);
+
+		if (useMultisampling)
+		{
+			const ImageViewCreateInfo		multisamplingTargetViewInfo		(multisampleTargetImage->object(),
+																			 vk::VK_IMAGE_VIEW_TYPE_2D,
+																			 imageFormat);
+
+
+			multisampleTargetView = createImageView(vk, device, &multisamplingTargetViewInfo);
+			colorAttachments.push_back(*multisampleTargetView);
+
+			renderPassCreateInfo.addAttachment(AttachmentDescription(imageFormat,
+																	 m_data.samples,
+																	 vk::VK_ATTACHMENT_LOAD_OP_CLEAR,
+																	 vk::VK_ATTACHMENT_STORE_OP_STORE,
+																	 vk::VK_ATTACHMENT_LOAD_OP_DONT_CARE,
+																	 vk::VK_ATTACHMENT_STORE_OP_DONT_CARE,
+																	 vk::VK_IMAGE_LAYOUT_UNDEFINED,
+																	 vk::VK_IMAGE_LAYOUT_GENERAL));
+		}
+
+		renderPassCreateInfo.addSubpass(SubpassDescription(VK_PIPELINE_BIND_POINT_GRAPHICS,
+														   0,
+														   0,
+														   DE_NULL,
+														   1u,
+														   useMultisampling ? &multisampleAttachmentRef : &colorAttachmentRef,
+														   useMultisampling ? &colorAttachmentRef : DE_NULL,
+														   AttachmentReference(),
+														   0,
+														   DE_NULL));
+
+		renderPass			= createRenderPass(vk, device, &renderPassCreateInfo);
+
+		const FramebufferCreateInfo		framebufferCreateInfo	(*renderPass, colorAttachments, WIDTH, HEIGHT, 1);
+		framebuffer	= createFramebuffer(vk, device, &framebufferCreateInfo);
+	}
+
+	// Create vertex buffer.
+	{
+		const PositionValueVertex	vertices[]	=
+		{
+			PositionValueVertex(
+				tcu::Vec4(-1.0f, 1.0f, 0.5f, 1.0f),		// Coord
+				float(1.0f)),							// Value
+
+			PositionValueVertex(
+				tcu::Vec4(-1.0f, -1.0f, 0.25f, 0.75f),	// Coord
+				float(0.0f)),							// Value
+			PositionValueVertex(
+				tcu::Vec4( 1.0f,  1.0f, 0.0f, 2.0f),	// Coord
+				float(0.5f)),							// Value
+			PositionValueVertex(
+				tcu::Vec4( 1.0f, -1.0f, 1.0f, 0.5f),	// Coord
+				float(1.0f)),							// Value
+		};
+
+		const VkDeviceSize			dataSize	= DE_LENGTH_OF_ARRAY(vertices) * sizeof(PositionValueVertex);
+		vertexBuffer							= Buffer::createAndAlloc(vk, device, BufferCreateInfo(dataSize, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT), m_context.getDefaultAllocator(), MemoryRequirement::HostVisible);
+		deUint8*					ptr			= reinterpret_cast<deUint8*>(vertexBuffer->getBoundMemory().getHostPtr());
+
+		deMemcpy(ptr, vertices, static_cast<size_t>(dataSize));
+		flushMappedMemoryRange(vk, device, vertexBuffer->getBoundMemory().getMemory(), vertexBuffer->getBoundMemory().getOffset(), VK_WHOLE_SIZE);
+	}
+
+	// Create SSBO buffer
+	{
+		const VkDeviceSize		dataSize	= sizeof(tcu::Vec4) * numValues;
+		ssboBuffer							= Buffer::createAndAlloc(vk, device, BufferCreateInfo(dataSize, VK_BUFFER_USAGE_STORAGE_BUFFER_BIT), m_context.getDefaultAllocator(), MemoryRequirement::HostVisible);
+		deUint8*				ptr			= reinterpret_cast<deUint8*>(ssboBuffer->getBoundMemory().getHostPtr());
+
+		deMemset(ptr, 0, static_cast<size_t>(dataSize));
+		flushMappedMemoryRange(vk, device, ssboBuffer->getBoundMemory().getMemory(), ssboBuffer->getBoundMemory().getOffset(), VK_WHOLE_SIZE);
+	}
+
+	// Create Descriptor Set layout
+	{
+		descriptorSetLayout = DescriptorSetLayoutBuilder()
+			.addSingleBinding(VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, VK_SHADER_STAGE_FRAGMENT_BIT)
+			.build(vk, device);
+	}
+
+	// Create Descriptor Set
+	{
+		descriptorPool = DescriptorPoolBuilder()
+			.addType(VK_DESCRIPTOR_TYPE_STORAGE_BUFFER)
+			.build(vk, device, VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, 1u);
+
+	    descriptorSet = makeDescriptorSet(vk, device, *descriptorPool, *descriptorSetLayout);
+
+		const VkDescriptorBufferInfo	bufferInfo =
+		{
+			ssboBuffer->object(),		// VkBuffer		buffer;
+			0u,							// VkDeviceSize	offset;
+			VK_WHOLE_SIZE				// VkDeviceSize	range;
+		};
+
+		DescriptorSetUpdateBuilder()
+			.writeSingle(*descriptorSet, DescriptorSetUpdateBuilder::Location::binding(0u), VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, &bufferInfo)
+			.update(vk, device);
+	}
+
+	// Create pipeline
+	{
+		const PipelineCreateInfo::ColorBlendState::Attachment vkCbAttachmentState;
+
+		VkViewport	viewport	= makeViewport(WIDTH, HEIGHT);
+		VkRect2D	scissor		= makeRect2D(WIDTH, HEIGHT);
+
+		const VkVertexInputBindingDescription vertexInputBindingDescription = { 0, (deUint32)(sizeof(tcu::Vec4) + sizeof(float)), VK_VERTEX_INPUT_RATE_VERTEX };
+
+		const VkVertexInputAttributeDescription vertexInputAttributeDescriptions[2] =
+		{
+			{ 0u, 0u, vk::VK_FORMAT_R32G32B32A32_SFLOAT, 0u },
+			{ 1u, 0u, vk::VK_FORMAT_R32_SFLOAT, (deUint32)(sizeof(float)* 4) }
+		};
+
+		PipelineCreateInfo::VertexInputState vertexInputState	= PipelineCreateInfo::VertexInputState(1, &vertexInputBindingDescription, 2, vertexInputAttributeDescriptions);
+
+		pipelineLayout = makePipelineLayout	(vk, device, *descriptorSetLayout);
+
+		PipelineCreateInfo pipelineCreateInfo(*pipelineLayout, *renderPass, 0, 0);
+		pipelineCreateInfo.addShader(PipelineCreateInfo::PipelineShaderStage(*vs, "main", VK_SHADER_STAGE_VERTEX_BIT));
+		pipelineCreateInfo.addShader(PipelineCreateInfo::PipelineShaderStage(*fs, "main", VK_SHADER_STAGE_FRAGMENT_BIT));
+		pipelineCreateInfo.addState(PipelineCreateInfo::VertexInputState(vertexInputState));
+		pipelineCreateInfo.addState(PipelineCreateInfo::InputAssemblerState(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP));
+		pipelineCreateInfo.addState(PipelineCreateInfo::ColorBlendState(1, &vkCbAttachmentState));
+		pipelineCreateInfo.addState(PipelineCreateInfo::ViewportState(1, vector<VkViewport>(1, viewport), vector<VkRect2D>(1, scissor)));
+		pipelineCreateInfo.addState(PipelineCreateInfo::DepthStencilState());
+		pipelineCreateInfo.addState(PipelineCreateInfo::RasterizerState());
+		pipelineCreateInfo.addState(PipelineCreateInfo::MultiSampleState(m_data.samples));
+
+		pipeline = createGraphicsPipeline(vk, device, DE_NULL, &pipelineCreateInfo);
+	}
+
+	// Queue draw and read results.
+	{
+		const VkQueue				queue				= m_context.getUniversalQueue();
+		const ImageSubresourceRange subresourceRange	(VK_IMAGE_ASPECT_COLOR_BIT);
+		const tcu::Vec4				clearColor			= tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f);
+		const VkRect2D				renderArea			= makeRect2D(WIDTH, HEIGHT);
+		const VkDeviceSize			vertexBufferOffset	= 0;
+		const VkBuffer				buffer				= vertexBuffer->object();
+
+		vector<VkClearValue>		clearColors;
+		clearColors.push_back(makeClearValueColor(clearColor));
+
+		if (useMultisampling)
+			clearColors.push_back(makeClearValueColor(clearColor));
+
+		beginCommandBuffer(vk, *cmdBuffer, 0u);
+		const VkRenderPassBeginInfo renderPassBeginInfo =
+		{
+			VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,	// VkStructureType         sType;
+			DE_NULL,									// const void*             pNext;
+			*renderPass,								// VkRenderPass            renderPass;
+			*framebuffer,								// VkFramebuffer           framebuffer;
+			renderArea,									// VkRect2D                renderArea;
+			(deUint32)clearColors.size(),				// deUint32                clearValueCount;
+			clearColors.data(),							// const VkClearValue*     pClearValues;
+		};
+
+		vk.cmdBeginRenderPass(*cmdBuffer, &renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE);
+		vk.cmdBindVertexBuffers(*cmdBuffer, 0, 1, &buffer, &vertexBufferOffset);
+		vk.cmdBindPipeline(*cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *pipeline);
+		vk.cmdBindDescriptorSets(*cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *pipelineLayout, 0u, 1u, &descriptorSet.get(), 0u, DE_NULL);
+		vk.cmdDraw(*cmdBuffer, 4u, 1u, 0u, 0u);
+		endRenderPass(vk, *cmdBuffer);
+		endCommandBuffer(vk, *cmdBuffer);
+
+		submitCommandsAndWait(vk, device, queue, cmdBuffer.get());
+	}
+
+	qpTestResult res = QP_TEST_RESULT_PASS;
+
+	{
+		const Allocation& resultAlloc = ssboBuffer->getBoundMemory();
+		invalidateAlloc(vk, device, resultAlloc);
+
+		const tcu::Vec4*	ptr		= reinterpret_cast<tcu::Vec4*>(resultAlloc.getHostPtr());
+		for (deUint32 valueNdx = 0u; valueNdx < numValues; valueNdx++)
+		{
+			if (deFloatAbs(ptr[valueNdx].x() - ptr[valueNdx].y()) > 0.0005f)
+			{
+				log << tcu::TestLog::Message << "Expected value " << valueNdx << " is " << ptr[valueNdx].x() << ", got " << ptr[valueNdx].y()
+					<< tcu::TestLog::EndMessage;
+				res = QP_TEST_RESULT_FAIL;
+			}
+		}
+	}
+
+	return tcu::TestStatus(res, qpGetTestResultName(res));
+}
+
+void createTests (tcu::TestCaseGroup* testGroup)
+{
+	tcu::TestContext&	testCtx		= testGroup->getTestContext();
+
+	const VkSampleCountFlagBits samples[] =
+	{
+		VK_SAMPLE_COUNT_1_BIT,
+		VK_SAMPLE_COUNT_2_BIT,
+		VK_SAMPLE_COUNT_4_BIT,
+		VK_SAMPLE_COUNT_8_BIT,
+		VK_SAMPLE_COUNT_16_BIT,
+		VK_SAMPLE_COUNT_32_BIT,
+		VK_SAMPLE_COUNT_64_BIT,
+	};
+
+	const Interpolation interTypes[] =
+	{
+		SMOOTH,
+		NOPERSPECTIVE
+	};
+
+	const AuxiliaryQualifier auxQualifiers[] =
+	{
+		AUX_NONE,
+		AUX_SAMPLE,
+		AUX_CENTROID,
+	};
+
+	for (deUint32 sampleNdx	= 0;	sampleNdx	< DE_LENGTH_OF_ARRAY(samples);			sampleNdx++)
+	for (deUint32 auxNdx	= 0;	auxNdx		< DE_LENGTH_OF_ARRAY(auxQualifiers);	auxNdx++)
+    for (deUint32 interNdx	= 0;	interNdx	< DE_LENGTH_OF_ARRAY(interTypes);		interNdx++)
+	{
+		if (samples[sampleNdx] == VK_SAMPLE_COUNT_1_BIT && auxQualifiers[auxNdx] != AUX_NONE)
+			continue;
+
+		const DrawParams params =
+		{
+			interTypes[interNdx],
+			samples[sampleNdx],
+			auxQualifiers[auxNdx],
+		};
+		testGroup->addChild(new DrawTestCase(testCtx, getTestName(params).c_str(), "", params));
+	}
+}
+
+}	// anonymous
+
+tcu::TestCaseGroup*	createExplicitVertexParameterTests (tcu::TestContext& testCtx)
+{
+	return createTestGroup(testCtx, "explicit_vertex_parameter", "Tests for VK_AMD_shader_explicit_vertex_parameter.", createTests);
+}
+
+}	// Draw
+}	// vkt
diff --git a/external/vulkancts/modules/vulkan/draw/vktDrawExplicitVertexParameterTests.hpp b/external/vulkancts/modules/vulkan/draw/vktDrawExplicitVertexParameterTests.hpp
new file mode 100644
index 0000000..57e74d4
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/draw/vktDrawExplicitVertexParameterTests.hpp
@@ -0,0 +1,40 @@
+#ifndef _VKTDRAWEXPLICITVERTEXPARAMETERTESTS_HPP
+#define _VKTDRAWEXPLICITVERTEXPARAMETERTESTS_HPP
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2020 The Khronos Group Inc.
+ * Copyright (c) 2020 Valve Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief VK_AMD_shader_explicit_vertex_parameter tests
+ *//*--------------------------------------------------------------------*/
+
+#include "vkDefs.hpp"
+#include "vktTestCase.hpp"
+
+namespace vkt
+{
+namespace Draw
+{
+
+tcu::TestCaseGroup*	createExplicitVertexParameterTests (tcu::TestContext& testCtx);
+
+} // Draw
+} // vkt
+
+#endif // _VKTDRAWEXPLICITVERTEXPARAMETERTESTS_HPP
diff --git a/external/vulkancts/modules/vulkan/draw/vktDrawIndirectTest.cpp b/external/vulkancts/modules/vulkan/draw/vktDrawIndirectTest.cpp
index b0b495a..60b11e1 100644
--- a/external/vulkancts/modules/vulkan/draw/vktDrawIndirectTest.cpp
+++ b/external/vulkancts/modules/vulkan/draw/vktDrawIndirectTest.cpp
@@ -70,16 +70,25 @@
 	DRAWTYPE_LAST
 };
 
+enum class IndirectCountType
+{
+	NONE,
+	BUFFER_LIMIT,
+	PARAM_LIMIT,
+
+	LAST
+};
+
 struct DrawTypedTestSpec : public TestSpecBase
 {
 	DrawTypedTestSpec()
 		: testFirstInstanceNdx(false)
-		, testIndirectCountExt(false)
+		, testIndirectCountExt(IndirectCountType::NONE)
 	{};
 
-	DrawType	drawType;
-	bool		testFirstInstanceNdx;
-	bool		testIndirectCountExt;
+	DrawType			drawType;
+	bool				testFirstInstanceNdx;
+	IndirectCountType	testIndirectCountExt;
 };
 
 class IndirectDraw : public DrawTestsBaseClass
@@ -101,7 +110,7 @@
 	vk::VkDeviceSize			m_offsetInBuffer;
 	deUint32					m_strideInBuffer;
 
-	const bool					m_testIndirectCountExt;
+	const IndirectCountType		m_testIndirectCountExt;
 	de::SharedPtr<Buffer>		m_indirectCountBuffer;
 	vk::VkDeviceSize			m_offsetInCountBuffer;
 	const deUint32				m_indirectCountExtDrawPadding;
@@ -303,6 +312,10 @@
 	const vk::VkQueue	queue	= m_context.getUniversalQueue();
 	const vk::VkDevice	device	= m_context.getDevice();
 
+					m_drawCount			= 2;
+					m_offsetInBuffer	= sizeof(m_junkData);
+	const deUint32	m_bufferDrawCount	= 2u * m_drawCount;
+
 	if (m_drawType == DRAW_TYPE_SEQUENTIAL)
 	{
 		switch (m_topology)
@@ -328,10 +341,15 @@
 			addCommand(drawCommands[0]);
 			addCommand(drawCommands[1]);
 			addCommand(drawCommands[2]);
-			if (m_testIndirectCountExt)
+			addCommand(drawCommands[1]);
+			if (m_testIndirectCountExt != IndirectCountType::NONE)
 			{
-				addCommand(drawCommands[1]);
-				addCommand(drawCommands[1]);
+				// Add padding data to the buffer to make sure it's large enough.
+				for (deUint32 i = 0; i < m_bufferDrawCount; ++i)
+				{
+					addCommand(drawCommands[1]);
+					addCommand(drawCommands[1]);
+				}
 			}
 			break;
 		}
@@ -356,10 +374,15 @@
 			addCommand(drawCommands[0]);
 			addCommand(drawCommands[1]);
 			addCommand(drawCommands[2]);
-			if (m_testIndirectCountExt)
+			addCommand(drawCommands[1]);
+			if (m_testIndirectCountExt != IndirectCountType::NONE)
 			{
-				addCommand(drawCommands[1]);
-				addCommand(drawCommands[1]);
+				// Add padding data to the buffer to make sure it's large enough.
+				for (deUint32 i = 0; i < m_bufferDrawCount; ++i)
+				{
+					addCommand(drawCommands[1]);
+					addCommand(drawCommands[1]);
+				}
 			}
 			break;
 		}
@@ -396,10 +419,15 @@
 			addCommand(drawCommands[0]);
 			addCommand(drawCommands[1]);
 			addCommand(drawCommands[2]);
-			if (m_testIndirectCountExt)
+			addCommand(drawCommands[1]);
+			if (m_testIndirectCountExt != IndirectCountType::NONE)
 			{
-				addCommand(drawCommands[1]);
-				addCommand(drawCommands[1]);
+				// Add padding data to the buffer to make sure it's large enough.
+				for (deUint32 i = 0; i < m_bufferDrawCount; ++i)
+				{
+					addCommand(drawCommands[1]);
+					addCommand(drawCommands[1]);
+				}
 			}
 			break;
 		}
@@ -426,10 +454,15 @@
 			addCommand(drawCommands[0]);
 			addCommand(drawCommands[1]);
 			addCommand(drawCommands[2]);
-			if (m_testIndirectCountExt)
+			addCommand(drawCommands[1]);
+			if (m_testIndirectCountExt != IndirectCountType::NONE)
 			{
-				addCommand(drawCommands[1]);
-				addCommand(drawCommands[1]);
+				// Add padding data to the buffer to make sure it's large enough.
+				for (deUint32 i = 0; i < m_bufferDrawCount; ++i)
+				{
+					addCommand(drawCommands[1]);
+					addCommand(drawCommands[1]);
+				}
 			}
 			break;
 		}
@@ -440,9 +473,6 @@
 		m_strideInBuffer = 2 * (deUint32)sizeof(vk::VkDrawIndexedIndirectCommand);
 	}
 
-	m_drawCount			= 2;
-	m_offsetInBuffer	= sizeof(m_junkData);
-
 	beginRenderPass();
 
 	const vk::VkDeviceSize vertexBufferOffset	= 0;
@@ -466,7 +496,7 @@
 
 	vk::flushAlloc(m_vk, m_context.getDevice(), m_indirectBuffer->getBoundMemory());
 
-	if (m_testIndirectCountExt)
+	if (m_testIndirectCountExt != IndirectCountType::NONE)
 	{
 		m_offsetInCountBuffer = sizeof(tcu::Vec3);
 		m_indirectCountBuffer = Buffer::createAndAlloc(m_vk,
@@ -478,10 +508,11 @@
 
 		deUint8* countBufferPtr = reinterpret_cast<deUint8*>(m_indirectCountBuffer->getBoundMemory().getHostPtr());
 
+		// For IndirectCountType::PARAM_LIMIT, the real limit will be set using the call parameter.
 		if (m_isMultiDrawEnabled && m_drawCount <= m_drawIndirectMaxCount)
-			*(deUint32*)(countBufferPtr + m_offsetInCountBuffer) = m_drawCount;
+			*(deUint32*)(countBufferPtr + m_offsetInCountBuffer) = m_drawCount + (m_testIndirectCountExt == IndirectCountType::BUFFER_LIMIT ? 0u : m_indirectCountExtDrawPadding);
 		else
-			*(deUint32*)(countBufferPtr + m_offsetInCountBuffer) = 1u;
+			*(deUint32*)(countBufferPtr + m_offsetInCountBuffer) = (m_testIndirectCountExt == IndirectCountType::BUFFER_LIMIT ? 1u : m_drawCount + m_indirectCountExtDrawPadding);
 
 		vk::flushAlloc(m_vk, m_context.getDevice(), m_indirectCountBuffer->getBoundMemory());
 	}
@@ -499,20 +530,26 @@
 		{
 			case DRAW_TYPE_SEQUENTIAL:
 			{
-				if (m_testIndirectCountExt)
+				if (m_testIndirectCountExt != IndirectCountType::NONE)
+				{
+					const deUint32 maxDrawCount = m_drawCount + (m_testIndirectCountExt == IndirectCountType::BUFFER_LIMIT ? m_indirectCountExtDrawPadding : 0u);
 					m_vk.cmdDrawIndirectCount(*m_cmdBuffer, m_indirectBuffer->object(), m_offsetInBuffer,
-											  m_indirectCountBuffer->object(), m_offsetInCountBuffer, m_drawCount + m_indirectCountExtDrawPadding,
+											  m_indirectCountBuffer->object(), m_offsetInCountBuffer, maxDrawCount,
 											  m_strideInBuffer);
+				}
 				else
 					m_vk.cmdDrawIndirect(*m_cmdBuffer, m_indirectBuffer->object(), m_offsetInBuffer, m_drawCount, m_strideInBuffer);
 				break;
 			}
 			case DRAW_TYPE_INDEXED:
 			{
-				if (m_testIndirectCountExt)
+				if (m_testIndirectCountExt != IndirectCountType::NONE)
+				{
+					const deUint32 maxDrawCount = m_drawCount + (m_testIndirectCountExt == IndirectCountType::BUFFER_LIMIT ? m_indirectCountExtDrawPadding : 0u);
 					m_vk.cmdDrawIndexedIndirectCount(*m_cmdBuffer, m_indirectBuffer->object(), m_offsetInBuffer,
-													 m_indirectCountBuffer->object(), m_offsetInCountBuffer, m_drawCount + m_indirectCountExtDrawPadding,
+													 m_indirectCountBuffer->object(), m_offsetInCountBuffer, maxDrawCount,
 													 m_strideInBuffer);
+				}
 				else
 					m_vk.cmdDrawIndexedIndirect(*m_cmdBuffer, m_indirectBuffer->object(), m_offsetInBuffer, m_drawCount, m_strideInBuffer);
 				break;
@@ -529,20 +566,26 @@
 			{
 				case DRAW_TYPE_SEQUENTIAL:
 				{
-					if (m_testIndirectCountExt)
+					if (m_testIndirectCountExt != IndirectCountType::NONE)
+					{
+						const deUint32 maxDrawCount = (m_testIndirectCountExt == IndirectCountType::BUFFER_LIMIT ? m_drawCount + m_indirectCountExtDrawPadding : 1u);
 						m_vk.cmdDrawIndirectCount(*m_cmdBuffer, m_indirectBuffer->object(), m_offsetInBuffer + drawNdx*m_strideInBuffer,
-												  m_indirectCountBuffer->object(), m_offsetInCountBuffer, m_drawCount + m_indirectCountExtDrawPadding,
+												  m_indirectCountBuffer->object(), m_offsetInCountBuffer, maxDrawCount,
 												  m_strideInBuffer);
+					}
 					else
 						m_vk.cmdDrawIndirect(*m_cmdBuffer, m_indirectBuffer->object(), m_offsetInBuffer + drawNdx*m_strideInBuffer, 1u, 0u);
 					break;
 				}
 				case DRAW_TYPE_INDEXED:
 				{
-					if (m_testIndirectCountExt)
+					if (m_testIndirectCountExt != IndirectCountType::NONE)
+					{
+						const deUint32 maxDrawCount = (m_testIndirectCountExt == IndirectCountType::BUFFER_LIMIT ? m_drawCount + m_indirectCountExtDrawPadding : 1u);
 						m_vk.cmdDrawIndexedIndirectCount(*m_cmdBuffer, m_indirectBuffer->object(), m_offsetInBuffer + drawNdx*m_strideInBuffer,
-														 m_indirectCountBuffer->object(), m_offsetInCountBuffer, m_drawCount + m_indirectCountExtDrawPadding,
+														 m_indirectCountBuffer->object(), m_offsetInCountBuffer, maxDrawCount,
 														 m_strideInBuffer);
+					}
 					else
 						m_vk.cmdDrawIndexedIndirect(*m_cmdBuffer, m_indirectBuffer->object(), m_offsetInBuffer + drawNdx*m_strideInBuffer, 1u, 0u);
 					break;
@@ -616,6 +659,10 @@
 	const vk::VkQueue	queue	= m_context.getUniversalQueue();
 	const vk::VkDevice	device	= m_context.getDevice();
 
+					m_drawCount			= 2;
+					m_offsetInBuffer	= sizeof(m_junkData);
+	const deUint32	m_bufferDrawCount	= 2u * m_drawCount;
+
 	if (m_drawType == DRAW_TYPE_SEQUENTIAL)
 	{
 		switch (m_topology)
@@ -641,10 +688,14 @@
 				addCommand(drawCmd[0]);
 				addCommand(drawCmd[1]);
 				addCommand(drawCmd[2]);
-				if (m_testIndirectCountExt)
+				if (m_testIndirectCountExt != IndirectCountType::NONE)
 				{
-					addCommand(drawCmd[1]);
-					addCommand(drawCmd[1]);
+					// Add padding data to the buffer to make sure it's large enough.
+					for (deUint32 i = 0; i < m_bufferDrawCount; ++i)
+					{
+						addCommand(drawCmd[1]);
+						addCommand(drawCmd[1]);
+					}
 				}
 				break;
 			}
@@ -669,10 +720,14 @@
 				addCommand(drawCmd[0]);
 				addCommand(drawCmd[1]);
 				addCommand(drawCmd[2]);
-				if (m_testIndirectCountExt)
+				if (m_testIndirectCountExt != IndirectCountType::NONE)
 				{
-					addCommand(drawCmd[1]);
-					addCommand(drawCmd[1]);
+					// Add padding data to the buffer to make sure it's large enough.
+					for (deUint32 i = 0; i < m_bufferDrawCount; ++i)
+					{
+						addCommand(drawCmd[1]);
+						addCommand(drawCmd[1]);
+					}
 				}
 				break;
 			}
@@ -710,10 +765,14 @@
 				addCommand(drawCmd[0]);
 				addCommand(drawCmd[1]);
 				addCommand(drawCmd[2]);
-				if (m_testIndirectCountExt)
+				if (m_testIndirectCountExt != IndirectCountType::NONE)
 				{
-					addCommand(drawCmd[1]);
-					addCommand(drawCmd[1]);
+					// Add padding data to the buffer to make sure it's large enough.
+					for (deUint32 i = 0; i < m_bufferDrawCount; ++i)
+					{
+						addCommand(drawCmd[1]);
+						addCommand(drawCmd[1]);
+					}
 				}
 				break;
 			}
@@ -740,10 +799,14 @@
 				addCommand(drawCmd[0]);
 				addCommand(drawCmd[1]);
 				addCommand(drawCmd[2]);
-				if (m_testIndirectCountExt)
+				if (m_testIndirectCountExt != IndirectCountType::NONE)
 				{
-					addCommand(drawCmd[1]);
-					addCommand(drawCmd[1]);
+					// Add padding data to the buffer to make sure it's large enough.
+					for (deUint32 i = 0; i < m_bufferDrawCount; ++i)
+					{
+						addCommand(drawCmd[1]);
+						addCommand(drawCmd[1]);
+					}
 				}
 				break;
 			}
@@ -755,9 +818,6 @@
 		m_strideInBuffer = 2 * (deUint32)sizeof(vk::VkDrawIndexedIndirectCommand);
 	}
 
-	m_drawCount			= 2;
-	m_offsetInBuffer	= sizeof(m_junkData);
-
 	beginRenderPass();
 
 	const vk::VkDeviceSize vertexBufferOffset = 0;
@@ -781,7 +841,7 @@
 
 	vk::flushAlloc(m_vk, m_context.getDevice(), m_indirectBuffer->getBoundMemory());
 
-	if (m_testIndirectCountExt)
+	if (m_testIndirectCountExt != IndirectCountType::NONE)
 	{
 		m_offsetInCountBuffer = sizeof(tcu::Vec3);
 		m_indirectCountBuffer = Buffer::createAndAlloc(m_vk,
@@ -793,8 +853,9 @@
 
 		deUint8* countBufferPtr = reinterpret_cast<deUint8*>(m_indirectCountBuffer->getBoundMemory().getHostPtr());
 
+		// For IndirectCountType::PARAM_LIMIT, the real limit will be set using the call parameter.
 		if (m_isMultiDrawEnabled && m_drawCount <= m_drawIndirectMaxCount)
-			*(deUint32*)(countBufferPtr + m_offsetInCountBuffer) = m_drawCount;
+			*(deUint32*)(countBufferPtr + m_offsetInCountBuffer) = m_drawCount + (m_testIndirectCountExt == IndirectCountType::BUFFER_LIMIT ? 0u : m_indirectCountExtDrawPadding);
 		else
 			*(deUint32*)(countBufferPtr + m_offsetInCountBuffer) = 1u;
 
@@ -814,20 +875,26 @@
 		{
 			case DRAW_TYPE_SEQUENTIAL:
 			{
-				if (m_testIndirectCountExt)
+				if (m_testIndirectCountExt != IndirectCountType::NONE)
+				{
+					const deUint32 maxDrawCount = m_drawCount + (m_testIndirectCountExt == IndirectCountType::BUFFER_LIMIT ? m_indirectCountExtDrawPadding : 0u);
 					m_vk.cmdDrawIndirectCount(*m_cmdBuffer, m_indirectBuffer->object(), m_offsetInBuffer,
 											  m_indirectCountBuffer->object(), m_offsetInCountBuffer,
-											  m_drawCount + m_indirectCountExtDrawPadding, m_strideInBuffer);
+											  maxDrawCount, m_strideInBuffer);
+				}
 				else
 					m_vk.cmdDrawIndirect(*m_cmdBuffer, m_indirectBuffer->object(), m_offsetInBuffer, m_drawCount, m_strideInBuffer);
 				break;
 			}
 			case DRAW_TYPE_INDEXED:
 			{
-				if (m_testIndirectCountExt)
+				if (m_testIndirectCountExt != IndirectCountType::NONE)
+				{
+					const deUint32 maxDrawCount = m_drawCount + (m_testIndirectCountExt == IndirectCountType::BUFFER_LIMIT ? m_indirectCountExtDrawPadding : 0u);
 					m_vk.cmdDrawIndexedIndirectCount(*m_cmdBuffer, m_indirectBuffer->object(), m_offsetInBuffer,
 													 m_indirectCountBuffer->object(), m_offsetInCountBuffer,
-													 m_drawCount + m_indirectCountExtDrawPadding, m_strideInBuffer);
+													 maxDrawCount, m_strideInBuffer);
+				}
 				else
 					m_vk.cmdDrawIndexedIndirect(*m_cmdBuffer, m_indirectBuffer->object(), m_offsetInBuffer, m_drawCount, m_strideInBuffer);
 				break;
@@ -844,20 +911,26 @@
 			{
 				case DRAW_TYPE_SEQUENTIAL:
 				{
-					if (m_testIndirectCountExt)
+					if (m_testIndirectCountExt != IndirectCountType::NONE)
+					{
+						const deUint32 maxDrawCount = (m_testIndirectCountExt == IndirectCountType::BUFFER_LIMIT ? m_drawCount + m_indirectCountExtDrawPadding : 1u);
 						m_vk.cmdDrawIndirectCount(*m_cmdBuffer, m_indirectBuffer->object(), m_offsetInBuffer + drawNdx*m_strideInBuffer,
-												  m_indirectCountBuffer->object(), m_offsetInCountBuffer, m_drawCount + m_indirectCountExtDrawPadding,
+												  m_indirectCountBuffer->object(), m_offsetInCountBuffer, maxDrawCount,
 												  m_strideInBuffer);
+					}
 					else
 						m_vk.cmdDrawIndirect(*m_cmdBuffer, m_indirectBuffer->object(), m_offsetInBuffer + drawNdx*m_strideInBuffer, 1u, 0u);
 					break;
 				}
 				case DRAW_TYPE_INDEXED:
 				{
-					if (m_testIndirectCountExt)
+					if (m_testIndirectCountExt != IndirectCountType::NONE)
+					{
+						const deUint32 maxDrawCount = (m_testIndirectCountExt == IndirectCountType::BUFFER_LIMIT ? m_drawCount + m_indirectCountExtDrawPadding : 1u);
 						m_vk.cmdDrawIndexedIndirectCount(*m_cmdBuffer, m_indirectBuffer->object(), m_offsetInBuffer + drawNdx*m_strideInBuffer,
-														 m_indirectCountBuffer->object(), m_offsetInCountBuffer, m_drawCount + m_indirectCountExtDrawPadding,
+														 m_indirectCountBuffer->object(), m_offsetInCountBuffer, maxDrawCount,
 														 m_strideInBuffer);
+					}
 					else
 						m_vk.cmdDrawIndexedIndirect(*m_cmdBuffer, m_indirectBuffer->object(), m_offsetInBuffer + drawNdx*m_strideInBuffer, 1u, 0u);
 					break;
@@ -952,8 +1025,9 @@
 
 		tcu::TestCaseGroup* drawTypeGroup = new tcu::TestCaseGroup(m_testCtx, drawTypeStr.c_str(), ("Draws geometry using " + drawTypeStr + "draw call").c_str());
 		{
-			tcu::TestCaseGroup* indirectDrawGroup		= new tcu::TestCaseGroup(m_testCtx, "indirect_draw", "Draws geometry");
-			tcu::TestCaseGroup* indirectDrawCountGroup	= new tcu::TestCaseGroup(m_testCtx, "indirect_draw_count", "Draws geometry with VK_KHR_draw_indirect_count extension");
+			tcu::TestCaseGroup* indirectDrawGroup			= new tcu::TestCaseGroup(m_testCtx, "indirect_draw", "Draws geometry");
+			tcu::TestCaseGroup* indirectDrawCountGroup		= new tcu::TestCaseGroup(m_testCtx, "indirect_draw_count", "Draws geometry with VK_KHR_draw_indirect_count extension");
+			tcu::TestCaseGroup* indirectDrawParamCountGroup	= new tcu::TestCaseGroup(m_testCtx, "indirect_draw_param_count", "Draws geometry with VK_KHR_draw_indirect_count extension and limit draws count with call parameter");
 			{
 				IndirectDraw::TestSpec testSpec;
 				testSpec.drawType = static_cast<DrawType>(drawTypeIdx);
@@ -964,18 +1038,26 @@
 				testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
 				indirectDrawGroup->addChild(new InstanceFactory<IndirectDraw>(m_testCtx, "triangle_strip", "Draws triangle strip", testSpec));
 
-				testSpec.testIndirectCountExt = true;
+				testSpec.testIndirectCountExt = IndirectCountType::BUFFER_LIMIT;
 				testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
 				indirectDrawCountGroup->addChild(new InstanceFactory<IndirectDraw, FunctionSupport0>(m_testCtx, "triangle_list", "Draws triangle list", testSpec, FunctionSupport0(checkIndirectCountExt)));
 				testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
 				indirectDrawCountGroup->addChild(new InstanceFactory<IndirectDraw, FunctionSupport0>(m_testCtx, "triangle_strip", "Draws triangle strip", testSpec, FunctionSupport0(checkIndirectCountExt)));
+
+				testSpec.testIndirectCountExt = IndirectCountType::PARAM_LIMIT;
+				testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
+				indirectDrawParamCountGroup->addChild(new InstanceFactory<IndirectDraw, FunctionSupport0>(m_testCtx, "triangle_list", "Draws triangle list", testSpec, FunctionSupport0(checkIndirectCountExt)));
+				testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
+				indirectDrawParamCountGroup->addChild(new InstanceFactory<IndirectDraw, FunctionSupport0>(m_testCtx, "triangle_strip", "Draws triangle strip", testSpec, FunctionSupport0(checkIndirectCountExt)));
 			}
 			drawTypeGroup->addChild(indirectDrawGroup);
 			drawTypeGroup->addChild(indirectDrawCountGroup);
+			drawTypeGroup->addChild(indirectDrawParamCountGroup);
 
 			{
-				tcu::TestCaseGroup* indirectDrawFirstInstanceGroup = new tcu::TestCaseGroup(m_testCtx, "indirect_draw_first_instance", "Draws geometry with different first instance in one commandbuffer");
-				tcu::TestCaseGroup* indirectDrawCountFirstInstanceGroup = new tcu::TestCaseGroup(m_testCtx, "indirect_draw_count_first_instance", "Draws geometry with VK_KHR_draw_indirect_count extension with different first instance in one commandbuffer using ");
+				tcu::TestCaseGroup* indirectDrawFirstInstanceGroup				= new tcu::TestCaseGroup(m_testCtx, "indirect_draw_first_instance", "Draws geometry with different first instance in one commandbuffer");
+				tcu::TestCaseGroup* indirectDrawCountFirstInstanceGroup			= new tcu::TestCaseGroup(m_testCtx, "indirect_draw_count_first_instance", "Draws geometry with VK_KHR_draw_indirect_count extension with different first instance in one commandbuffer");
+				tcu::TestCaseGroup* indirectDrawParamCountFirstInstanceGroup	= new tcu::TestCaseGroup(m_testCtx, "indirect_draw_param_count_first_instance", "Draws geometry with VK_KHR_draw_indirect_count extension with different first instance in one commandbuffer and limit draws count with call parameter");
 				{
 					IndirectDraw::TestSpec testSpec;
 					testSpec.testFirstInstanceNdx = true;
@@ -987,21 +1069,30 @@
 					testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
 					indirectDrawFirstInstanceGroup->addChild(new InstanceFactory<IndirectDraw>(m_testCtx, "triangle_strip", "Draws triangle strip", testSpec));
 
-					testSpec.testIndirectCountExt = true;
+					testSpec.testIndirectCountExt = IndirectCountType::BUFFER_LIMIT;
 					testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
 					indirectDrawCountFirstInstanceGroup->addChild(new InstanceFactory<IndirectDraw, FunctionSupport0>(m_testCtx, "triangle_list", "Draws triangle list", testSpec, FunctionSupport0(checkIndirectCountExt)));
 					testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
 					indirectDrawCountFirstInstanceGroup->addChild(new InstanceFactory<IndirectDraw, FunctionSupport0>(m_testCtx, "triangle_strip", "Draws triangle strip", testSpec, FunctionSupport0(checkIndirectCountExt)));
+
+					testSpec.testIndirectCountExt = IndirectCountType::PARAM_LIMIT;
+					testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
+					indirectDrawParamCountFirstInstanceGroup->addChild(new InstanceFactory<IndirectDraw, FunctionSupport0>(m_testCtx, "triangle_list", "Draws triangle list", testSpec, FunctionSupport0(checkIndirectCountExt)));
+					testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
+					indirectDrawParamCountFirstInstanceGroup->addChild(new InstanceFactory<IndirectDraw, FunctionSupport0>(m_testCtx, "triangle_strip", "Draws triangle strip", testSpec, FunctionSupport0(checkIndirectCountExt)));
 				}
 				drawTypeGroup->addChild(indirectDrawFirstInstanceGroup);
 				drawTypeGroup->addChild(indirectDrawCountFirstInstanceGroup);
+				drawTypeGroup->addChild(indirectDrawParamCountFirstInstanceGroup);
 			}
 
-			tcu::TestCaseGroup* indirectDrawInstancedGroup		= new tcu::TestCaseGroup(m_testCtx, "indirect_draw_instanced", "Draws an instanced geometry");
-			tcu::TestCaseGroup* indirectDrawCountInstancedGroup	= new tcu::TestCaseGroup(m_testCtx, "indirect_draw_count_instanced", "Draws an instanced geometry with VK_KHR_draw_indirect_count extension");
+			tcu::TestCaseGroup* indirectDrawInstancedGroup				= new tcu::TestCaseGroup(m_testCtx, "indirect_draw_instanced", "Draws an instanced geometry");
+			tcu::TestCaseGroup* indirectDrawCountInstancedGroup			= new tcu::TestCaseGroup(m_testCtx, "indirect_draw_count_instanced", "Draws an instanced geometry with VK_KHR_draw_indirect_count extension");
+			tcu::TestCaseGroup* indirectDrawParamCountInstancedGroup	= new tcu::TestCaseGroup(m_testCtx, "indirect_draw_param_count_instanced", "Draws an instanced geometry with VK_KHR_draw_indirect_count extension and limit draws count with call parameter");
 			{
-				tcu::TestCaseGroup*	indirectDrawNoFirstInstanceGroup		= new tcu::TestCaseGroup(m_testCtx, "no_first_instance", "Use 0 as firstInstance");
-				tcu::TestCaseGroup*	indirectDrawCountNoFirstInstanceGroup	= new tcu::TestCaseGroup(m_testCtx, "no_first_instance", "Use 0 as firstInstance");
+				tcu::TestCaseGroup*	indirectDrawNoFirstInstanceGroup			= new tcu::TestCaseGroup(m_testCtx, "no_first_instance", "Use 0 as firstInstance");
+				tcu::TestCaseGroup*	indirectDrawCountNoFirstInstanceGroup		= new tcu::TestCaseGroup(m_testCtx, "no_first_instance", "Use 0 as firstInstance");
+				tcu::TestCaseGroup*	indirectDrawParamCountNoFirstInstanceGroup	= new tcu::TestCaseGroup(m_testCtx, "no_first_instance", "Use 0 as firstInstance");
 				{
 					IndirectDrawInstanced<FirstInstanceNotSupported>::TestSpec testSpec;
 					testSpec.drawType = static_cast<DrawType>(drawTypeIdx);
@@ -1013,17 +1104,26 @@
 					indirectDrawNoFirstInstanceGroup->addChild(new InstanceFactory<IndirectDrawInstanced<FirstInstanceNotSupported> >(m_testCtx, "triangle_list", "Draws an instanced triangle list", testSpec));
 					testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
 					indirectDrawNoFirstInstanceGroup->addChild(new InstanceFactory<IndirectDrawInstanced<FirstInstanceNotSupported> >(m_testCtx, "triangle_strip", "Draws an instanced triangle strip", testSpec));
-					testSpec.testIndirectCountExt = true;
+
+					testSpec.testIndirectCountExt = IndirectCountType::BUFFER_LIMIT;
 					testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
 					indirectDrawCountNoFirstInstanceGroup->addChild(new InstanceFactory<IndirectDrawInstanced<FirstInstanceNotSupported>, FunctionSupport0>(m_testCtx, "triangle_list", "Draws an instanced triangle list", testSpec, FunctionSupport0(checkIndirectCountExt)));
 					testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
 					indirectDrawCountNoFirstInstanceGroup->addChild(new InstanceFactory<IndirectDrawInstanced<FirstInstanceNotSupported>, FunctionSupport0>(m_testCtx, "triangle_strip", "Draws an instanced triangle strip", testSpec, FunctionSupport0(checkIndirectCountExt)));
+
+					testSpec.testIndirectCountExt = IndirectCountType::PARAM_LIMIT;
+					testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
+					indirectDrawParamCountNoFirstInstanceGroup->addChild(new InstanceFactory<IndirectDrawInstanced<FirstInstanceNotSupported>, FunctionSupport0>(m_testCtx, "triangle_list", "Draws an instanced triangle list", testSpec, FunctionSupport0(checkIndirectCountExt)));
+					testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
+					indirectDrawParamCountNoFirstInstanceGroup->addChild(new InstanceFactory<IndirectDrawInstanced<FirstInstanceNotSupported>, FunctionSupport0>(m_testCtx, "triangle_strip", "Draws an instanced triangle strip", testSpec, FunctionSupport0(checkIndirectCountExt)));
 				}
 				indirectDrawInstancedGroup->addChild(indirectDrawNoFirstInstanceGroup);
 				indirectDrawCountInstancedGroup->addChild(indirectDrawCountNoFirstInstanceGroup);
+				indirectDrawParamCountInstancedGroup->addChild(indirectDrawParamCountNoFirstInstanceGroup);
 
-				tcu::TestCaseGroup*	indirectDrawFirstInstanceGroup		= new tcu::TestCaseGroup(m_testCtx, "first_instance", "Use drawIndirectFirstInstance optional feature");
-				tcu::TestCaseGroup*	indirectDrawCountFirstInstanceGroup	= new tcu::TestCaseGroup(m_testCtx, "first_instance", "Use drawIndirectFirstInstance optional feature");
+				tcu::TestCaseGroup*	indirectDrawFirstInstanceGroup				= new tcu::TestCaseGroup(m_testCtx, "first_instance", "Use drawIndirectFirstInstance optional feature");
+				tcu::TestCaseGroup*	indirectDrawCountFirstInstanceGroup			= new tcu::TestCaseGroup(m_testCtx, "first_instance", "Use drawIndirectFirstInstance optional feature");
+				tcu::TestCaseGroup*	indirectDrawParamCountFirstInstanceGroup	= new tcu::TestCaseGroup(m_testCtx, "first_instance", "Use drawIndirectFirstInstance optional feature");
 				{
 					IndirectDrawInstanced<FirstInstanceSupported>::TestSpec testSpec;
 					testSpec.drawType = static_cast<DrawType>(drawTypeIdx);
@@ -1036,17 +1136,25 @@
 					testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
 					indirectDrawFirstInstanceGroup->addChild(new InstanceFactory<IndirectDrawInstanced<FirstInstanceSupported> >(m_testCtx, "triangle_strip", "Draws an instanced triangle strip", testSpec));
 
-					testSpec.testIndirectCountExt = true;
+					testSpec.testIndirectCountExt = IndirectCountType::BUFFER_LIMIT;
 					testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
 					indirectDrawCountFirstInstanceGroup->addChild(new InstanceFactory<IndirectDrawInstanced<FirstInstanceSupported>, FunctionSupport0>(m_testCtx, "triangle_list", "Draws an instanced triangle list", testSpec, FunctionSupport0(checkIndirectCountExt)));
 					testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
 					indirectDrawCountFirstInstanceGroup->addChild(new InstanceFactory<IndirectDrawInstanced<FirstInstanceSupported>, FunctionSupport0>(m_testCtx, "triangle_strip", "Draws an instanced triangle strip", testSpec, FunctionSupport0(checkIndirectCountExt)));
+
+					testSpec.testIndirectCountExt = IndirectCountType::PARAM_LIMIT;
+					testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST;
+					indirectDrawParamCountFirstInstanceGroup->addChild(new InstanceFactory<IndirectDrawInstanced<FirstInstanceSupported>, FunctionSupport0>(m_testCtx, "triangle_list", "Draws an instanced triangle list", testSpec, FunctionSupport0(checkIndirectCountExt)));
+					testSpec.topology = vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP;
+					indirectDrawParamCountFirstInstanceGroup->addChild(new InstanceFactory<IndirectDrawInstanced<FirstInstanceSupported>, FunctionSupport0>(m_testCtx, "triangle_strip", "Draws an instanced triangle strip", testSpec, FunctionSupport0(checkIndirectCountExt)));
 				}
 				indirectDrawInstancedGroup->addChild(indirectDrawFirstInstanceGroup);
 				indirectDrawCountInstancedGroup->addChild(indirectDrawCountFirstInstanceGroup);
+				indirectDrawParamCountInstancedGroup->addChild(indirectDrawParamCountFirstInstanceGroup);
 			}
 			drawTypeGroup->addChild(indirectDrawInstancedGroup);
 			drawTypeGroup->addChild(indirectDrawCountInstancedGroup);
+			drawTypeGroup->addChild(indirectDrawParamCountInstancedGroup);
 		}
 
 		addChild(drawTypeGroup);
diff --git a/external/vulkancts/modules/vulkan/draw/vktDrawOutputLocationTests.cpp b/external/vulkancts/modules/vulkan/draw/vktDrawOutputLocationTests.cpp
new file mode 100644
index 0000000..30c1cd4
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/draw/vktDrawOutputLocationTests.cpp
@@ -0,0 +1,137 @@
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2020 Google Inc.
+ * Copyright (c) 2020 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Fragment output location tests
+ *//*--------------------------------------------------------------------*/
+
+#include "vktDrawOutputLocationTests.hpp"
+#include "vktTestGroupUtil.hpp"
+#include "amber/vktAmberTestCase.hpp"
+
+#include "tcuTestCase.hpp"
+
+#include <string>
+
+namespace vkt
+{
+namespace Draw
+{
+namespace
+{
+
+void createTests (tcu::TestCaseGroup* testGroup)
+{
+	tcu::TestContext& testCtx = testGroup->getTestContext();
+
+	// .array
+	{
+		tcu::TestCaseGroup* const	array		= new tcu::TestCaseGroup(testCtx, "array", "Test output location array");
+		static const char			dataDir[]	= "draw/output_location/array";
+
+		static const std::string	cases[]		=
+		{
+			"b10g11r11-ufloat-pack32-highp",
+			"b10g11r11-ufloat-pack32-highp-output-float",
+			"b10g11r11-ufloat-pack32-highp-output-vec2",
+			"b10g11r11-ufloat-pack32-lowp",
+			"b10g11r11-ufloat-pack32-lowp-output-float",
+			"b10g11r11-ufloat-pack32-lowp-output-vec2",
+			"b10g11r11-ufloat-pack32-mediump",
+			"b10g11r11-ufloat-pack32-mediump-output-float",
+			"b10g11r11-ufloat-pack32-mediump-output-vec2",
+			"b8g8r8a8-unorm-highp",
+			"b8g8r8a8-unorm-highp-output-vec2",
+			"b8g8r8a8-unorm-highp-output-vec3",
+			"b8g8r8a8-unorm-lowp",
+			"b8g8r8a8-unorm-lowp-output-vec2",
+			"b8g8r8a8-unorm-lowp-output-vec3",
+			"b8g8r8a8-unorm-mediump",
+			"b8g8r8a8-unorm-mediump-output-vec2",
+			"b8g8r8a8-unorm-mediump-output-vec3",
+			"r16g16-sfloat-highp",
+			"r16g16-sfloat-highp-output-float",
+			"r16g16-sfloat-lowp",
+			"r16g16-sfloat-lowp-output-float",
+			"r16g16-sfloat-mediump",
+			"r16g16-sfloat-mediump-output-float",
+			"r32g32b32a32-sfloat-highp",
+			"r32g32b32a32-sfloat-highp-output-vec2",
+			"r32g32b32a32-sfloat-highp-output-vec3",
+			"r32g32b32a32-sfloat-lowp",
+			"r32g32b32a32-sfloat-lowp-output-vec2",
+			"r32g32b32a32-sfloat-lowp-output-vec3",
+			"r32g32b32a32-sfloat-mediump",
+			"r32g32b32a32-sfloat-mediump-output-vec2",
+			"r32g32b32a32-sfloat-mediump-output-vec3",
+			"r32-sfloat-highp",
+			"r32-sfloat-lowp",
+			"r32-sfloat-mediump",
+			"r8g8-uint-highp",
+			"r8g8-uint-highp-output-uint",
+			"r8g8-uint-lowp",
+			"r8g8-uint-lowp-output-uint",
+			"r8g8-uint-mediump",
+			"r8g8-uint-mediump-output-uint"
+		};
+
+		testGroup->addChild(array);
+
+		for (int i = 0; i < DE_LENGTH_OF_ARRAY(cases); ++i)
+		{
+			const std::string			fileName	= cases[i] + ".amber";
+			cts_amber::AmberTestCase*	testCase	= cts_amber::createAmberTestCase(testCtx, cases[i].c_str(), "", dataDir, fileName);
+
+			array->addChild(testCase);
+		}
+	}
+
+	// .shuffle
+	{
+		tcu::TestCaseGroup* const	shuffle		= new tcu::TestCaseGroup(testCtx, "shuffle", "Test output location shuffling");
+		static const char			dataDir[]	= "draw/output_location/shuffle";
+
+		static const std::string	cases[]		=
+		{
+			"inputs-outputs",
+			"inputs-outputs-mod"
+		};
+
+		testGroup->addChild(shuffle);
+
+		for (int i = 0; i < DE_LENGTH_OF_ARRAY(cases); ++i)
+		{
+			const std::string			fileName	= cases[i] + ".amber";
+			cts_amber::AmberTestCase*	testCase	= cts_amber::createAmberTestCase(testCtx, cases[i].c_str(), "", dataDir, fileName);
+
+			shuffle->addChild(testCase);
+		}
+	}
+}
+
+} // anonymous
+
+tcu::TestCaseGroup* createOutputLocationTests (tcu::TestContext& testCtx)
+{
+	return createTestGroup(testCtx, "output_location", "Fragment output location tests", createTests);
+}
+
+}	// Draw
+}	// vkt
diff --git a/external/vulkancts/modules/vulkan/draw/vktDrawOutputLocationTests.hpp b/external/vulkancts/modules/vulkan/draw/vktDrawOutputLocationTests.hpp
new file mode 100644
index 0000000..e0b1f23
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/draw/vktDrawOutputLocationTests.hpp
@@ -0,0 +1,40 @@
+#ifndef _VKTDRAWOUTPUTLOCATIONTESTS_HPP
+#define _VKTDRAWOUTPUTLOCATIONTESTS_HPP
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2020 Google Inc.
+ * Copyright (c) 2020 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Fragment output location tests
+ *//*--------------------------------------------------------------------*/
+
+#include "vkDefs.hpp"
+#include "vktTestCase.hpp"
+
+namespace vkt
+{
+namespace Draw
+{
+
+tcu::TestCaseGroup* createOutputLocationTests (tcu::TestContext& testCtx);
+
+} // Draw
+} // vkt
+
+#endif // _VKTDRAWOUTPUTLOCATIONTESTS_HPP
diff --git a/external/vulkancts/modules/vulkan/draw/vktDrawScissorTests.cpp b/external/vulkancts/modules/vulkan/draw/vktDrawScissorTests.cpp
index 05ecb6a..6318160 100644
--- a/external/vulkancts/modules/vulkan/draw/vktDrawScissorTests.cpp
+++ b/external/vulkancts/modules/vulkan/draw/vktDrawScissorTests.cpp
@@ -66,7 +66,7 @@
 	Vec4		m_color;
 };
 
-ColorQuad scissorQuad (ColorQuad quad, VkRect2D scissor)
+ColorQuad scissorQuad (ColorQuad quad, VkRect2D scissor, VkExtent2D framebufferSize)
 {
 	int	left	= quad.m_x;
 	int	right	= quad.m_x + quad.m_width;
@@ -76,11 +76,11 @@
 	left	= de::max(left, scissor.offset.x);
 	left	= de::max(left, 0);
 	right	= de::min(right, scissor.offset.x + (int)scissor.extent.width);
-	right	= de::min(right, (int)WIDTH);
+	right	= de::min(right, (int)framebufferSize.width);
 	top		= de::max(top, scissor.offset.y);
 	top		= de::max(top, 0);
 	bottom	= de::min(bottom, scissor.offset.y + (int)scissor.extent.height);
-	bottom	= de::min(bottom, (int)HEIGHT);
+	bottom	= de::min(bottom, (int)framebufferSize.height);
 
 	return ColorQuad(left, top, de::max(right - left, 0), de::max(bottom - top, 0), quad.m_color);
 }
@@ -227,10 +227,13 @@
 
 struct TestParams
 {
+	TestParams() : framebufferSize({WIDTH,HEIGHT}) {};
+
 	bool					dynamicScissor;
 	vector<VkRect2D>		staticScissors;
 	vector<TestCommandSp>	commands;
 	bool					usesMultipleScissors;
+	VkExtent2D				framebufferSize;
 };
 
 deUint32 countScissors (TestParams params)
@@ -377,6 +380,7 @@
 	Move<VkFramebuffer>				framebuffer;
 	Move<VkPipeline>				pipeline;
 	TextureLevel					refImage;
+	VkExtent2D						framebufferSize			= m_params.framebufferSize;
 
 	if (m_params.usesMultipleScissors)
 		gs = createShaderModule(vk, device, m_context.getBinaryCollection().get("geom"), 0);
@@ -385,8 +389,7 @@
 	{
 		const VkExtent3D		targetImageExtent		= { WIDTH, HEIGHT, 1 };
 		const ImageCreateInfo	targetImageCreateInfo	(VK_IMAGE_TYPE_2D, VK_FORMAT_R8G8B8A8_UNORM, targetImageExtent, 1, 1, VK_SAMPLE_COUNT_1_BIT,
-														 VK_IMAGE_TILING_OPTIMAL, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT);
-
+														 VK_IMAGE_TILING_OPTIMAL, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT);
 		colorTargetImage = Image::createAndAlloc(vk, device, targetImageCreateInfo, m_context.getDefaultAllocator(), m_context.getUniversalQueueFamilyIndex());
 	}
 
@@ -402,7 +405,7 @@
 																 VK_ATTACHMENT_STORE_OP_STORE,
 																 VK_ATTACHMENT_LOAD_OP_DONT_CARE,
 																 VK_ATTACHMENT_STORE_OP_STORE,
-																 VK_IMAGE_LAYOUT_UNDEFINED,
+																 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
 																 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL));
 
 		const VkAttachmentReference	colorAttachmentRef		= { 0, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL };
@@ -412,7 +415,7 @@
 
 		renderPass = createRenderPass(vk, device, &renderPassCreateInfo);
 
-		const FramebufferCreateInfo	framebufferCreateInfo	(*renderPass, colorAttachment, WIDTH, HEIGHT, 1);
+		const FramebufferCreateInfo	framebufferCreateInfo(*renderPass, colorAttachment, framebufferSize.width, framebufferSize.height, 1);
 
 		framebuffer	= createFramebuffer(vk, device, &framebufferCreateInfo);
 	}
@@ -490,11 +493,16 @@
 	// Queue commands and read results.
 	{
 		const ImageSubresourceRange subresourceRange	(VK_IMAGE_ASPECT_COLOR_BIT);
-		const VkRect2D				renderArea			= makeRect2D(WIDTH, HEIGHT);
+		const VkRect2D				renderArea			= makeRect2D(framebufferSize);
 		const VkDeviceSize			vertexBufferOffset	= 0;
 		const VkOffset3D			zeroOffset			= { 0, 0, 0 };
 		const Vec4					clearColor			(0.0f, 0.0f, 0.0f, 1.0f);
 
+		clearColorImage(vk, device, m_context.getUniversalQueue(), m_context.getUniversalQueueFamilyIndex(), colorTargetImage->object(), clearColor,
+						VK_IMAGE_LAYOUT_UNDEFINED,
+						VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
+						VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT);
+
 		beginCommandBuffer(vk, *cmdBuffer, 0u);
 		beginRenderPass(vk, *cmdBuffer, *renderPass, *framebuffer, renderArea, clearColor);
 		if (vertexBufferSize > 0)
@@ -537,7 +545,7 @@
 
 			for (size_t scissorIdx = 0; scissorIdx < scissors.size(); scissorIdx++)
 			{
-				ColorQuad scissoredQuad = m_params.commands[commandIdx]->isScissored() ? scissorQuad(quad[0], scissors[scissorIdx]) : quad[0];
+				ColorQuad scissoredQuad = m_params.commands[commandIdx]->isScissored() ? scissorQuad(quad[0], scissors[scissorIdx], framebufferSize) : quad[0];
 
 				if (scissoredQuad.m_width == 0 || scissoredQuad.m_height == 0)
 					continue;
@@ -828,6 +836,125 @@
 
 		testGroup->addChild(new ScissorTestCase(testCtx, "dynamic_scissor_mix", "", params));
 	}
+
+	// Static scissor off by one, inside frame buffer border
+	{
+		VkExtent2D size =
+		{
+			WIDTH / 2 - 1,
+			HEIGHT / 2 - 1
+		};
+
+		TestParams params;
+
+		params.framebufferSize = size;
+		params.dynamicScissor = false;
+		params.staticScissors.push_back(makeRect2D(1, 1, size.width - 2, size.height - 2));
+		params.commands.push_back(TestCommandSp(new QuadDrawTestCommand(0, 0, WIDTH * 4, HEIGHT * 4, red)));
+
+		testGroup->addChild(new ScissorTestCase(testCtx, "static_scissor_framebuffer_border_in", "", params));
+	}
+
+	// Dynamic scissor off by one, inside frame buffer border
+	{
+		VkExtent2D size =
+		{
+			WIDTH / 2 - 1,
+			HEIGHT / 2 - 1
+		};
+
+		TestParams			params;
+		vector<VkRect2D>	scissors;
+
+		params.framebufferSize = size;
+		params.dynamicScissor = true;
+
+		scissors.push_back(makeRect2D(1, 1, size.width - 2, size.height - 2));
+		params.commands.push_back(TestCommandSp(new DynamicScissorTestCommand(0, scissors)));
+		params.commands.push_back(TestCommandSp(new QuadDrawTestCommand(0, 0, WIDTH * 4, HEIGHT * 4, red)));
+
+		testGroup->addChild(new ScissorTestCase(testCtx, "dynamic_scissor_framebuffer_border_in", "", params));
+	}
+
+	// Static scissor off by one, outside frame buffer border
+	{
+		VkExtent2D size =
+		{
+			WIDTH / 2 - 1,
+			HEIGHT / 2 - 1
+		};
+
+		TestParams params;
+
+		params.framebufferSize = size;
+		params.dynamicScissor = false;
+
+		params.staticScissors.push_back(makeRect2D(0, 0, size.width + 1, size.height + 1));
+		params.commands.push_back(TestCommandSp(new QuadDrawTestCommand(0, 0, WIDTH * 4, HEIGHT * 4, red)));
+
+		testGroup->addChild(new ScissorTestCase(testCtx, "static_scissor_framebuffer_border_out", "", params));
+	}
+
+	// Dynamic scissor off by one, outside frame buffer border
+	{
+		VkExtent2D size =
+		{
+			WIDTH / 2 - 1,
+			HEIGHT / 2 - 1
+		};
+
+		TestParams			params;
+		vector<VkRect2D>	scissors;
+
+		params.framebufferSize = size;
+		params.dynamicScissor = true;
+
+		scissors.push_back(makeRect2D(0, 0, size.width + 1, size.height + 1));
+		params.commands.push_back(TestCommandSp(new DynamicScissorTestCommand(0, scissors)));
+		params.commands.push_back(TestCommandSp(new QuadDrawTestCommand(0, 0, WIDTH * 4, HEIGHT * 4, red)));
+
+		testGroup->addChild(new ScissorTestCase(testCtx, "dynamic_scissor_framebuffer_border_out", "", params));
+	}
+
+	// Static oversized scissor, exceeds frame buffer and image attachment sizes
+	{
+		VkExtent2D size =
+		{
+			WIDTH / 2 - 1,
+			HEIGHT / 2 - 1
+		};
+
+		TestParams params;
+
+		params.framebufferSize = size;
+		params.dynamicScissor = false;
+
+		params.staticScissors.push_back(makeRect2D(0, 0, WIDTH * 2, HEIGHT * 2));
+		params.commands.push_back(TestCommandSp(new QuadDrawTestCommand(0, 0, WIDTH * 4, HEIGHT * 4, red)));
+
+		testGroup->addChild(new ScissorTestCase(testCtx, "static_scissor_oversized", "", params));
+	}
+
+	// Dynamic oversized scissor, exceeds frame buffer and image attachment sizes
+	{
+		VkExtent2D size =
+		{
+			WIDTH / 2 - 1,
+			HEIGHT / 2 - 1
+		};
+
+		TestParams			params;
+		vector<VkRect2D>	scissors;
+
+		params.framebufferSize = size;
+		params.dynamicScissor = true;
+
+		scissors.push_back(makeRect2D(0, 0, WIDTH * 2, HEIGHT * 2));
+		params.commands.push_back(TestCommandSp(new DynamicScissorTestCommand(0, scissors)));
+		params.commands.push_back(TestCommandSp(new QuadDrawTestCommand(0, 0, WIDTH * 4, HEIGHT * 4, red)));
+
+		testGroup->addChild(new ScissorTestCase(testCtx, "dynamic_scissor_oversized", "", params));
+	}
 }
 
 }	// anonymous
diff --git a/external/vulkancts/modules/vulkan/draw/vktDrawShaderLayerTests.cpp b/external/vulkancts/modules/vulkan/draw/vktDrawShaderLayerTests.cpp
index ee87595..9c051aa 100644
--- a/external/vulkancts/modules/vulkan/draw/vktDrawShaderLayerTests.cpp
+++ b/external/vulkancts/modules/vulkan/draw/vktDrawShaderLayerTests.cpp
@@ -756,7 +756,7 @@
 	// Verify layers.
 	{
 		const Allocation alloc = colorBuffer->getBoundMemory();
-		invalidateMappedMemoryRange(vk, device, alloc.getMemory(), 0ull, colorBufferSize);
+		invalidateAlloc(vk, device, alloc);
 
 		deUint8* resultMem = reinterpret_cast<deUint8*>(alloc.getHostPtr());
 		for (int i = 0; i < numLayers; i++)
@@ -816,7 +816,7 @@
 	// Verify layers.
 	{
 		const Allocation alloc = colorBuffer->getBoundMemory();
-		invalidateMappedMemoryRange(vk, device, alloc.getMemory(), 0ull, colorBufferSize);
+		invalidateAlloc(vk, device, alloc);
 
 		deUint8* resultMem = reinterpret_cast<deUint8*>(alloc.getHostPtr());
 		for (int i = 0; i < numLayers; i++) {
diff --git a/external/vulkancts/modules/vulkan/draw/vktDrawShaderViewportIndexTests.cpp b/external/vulkancts/modules/vulkan/draw/vktDrawShaderViewportIndexTests.cpp
index 53275e5..fd248e5 100644
--- a/external/vulkancts/modules/vulkan/draw/vktDrawShaderViewportIndexTests.cpp
+++ b/external/vulkancts/modules/vulkan/draw/vktDrawShaderViewportIndexTests.cpp
@@ -38,6 +38,8 @@
 #include "vkQueryUtil.hpp"
 #include "vkCmdUtil.hpp"
 #include "vkObjUtil.hpp"
+#include "vkBuilderUtil.hpp"
+#include "vkBufferWithMemory.hpp"
 
 #include "tcuTestLog.hpp"
 #include "tcuVector.hpp"
@@ -48,6 +50,7 @@
 #include "deMath.h"
 
 #include <vector>
+#include <memory>
 
 namespace vkt
 {
@@ -70,6 +73,20 @@
 	MIN_MAX_VIEWPORTS = 16,		//!< Minimum number of viewports for an implementation supporting multiViewport.
 };
 
+struct FragmentTestParams
+{
+	int		numViewports;
+	bool	writeFromVertex;
+
+	FragmentTestParams (int nvp, bool write)
+		: numViewports		(nvp)
+		, writeFromVertex	(write)
+	{
+		if (!write)
+			DE_ASSERT(nvp == 1);
+	}
+};
+
 template<typename T>
 inline VkDeviceSize sizeInBytes(const std::vector<T>& vec)
 {
@@ -457,6 +474,49 @@
 	}
 }
 
+void initFragmentTestPrograms (SourceCollections& programCollection, FragmentTestParams testParams)
+{
+	// Vertex shader.
+	{
+		std::ostringstream src;
+		src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450) << "\n"
+			<< "#extension GL_ARB_shader_viewport_layer_array : require\n"
+			<< "\n"
+			<< "layout(location = 0) in  vec4 in_position;\n"
+			<< "layout(location = 1) in  vec4 in_color;\n"
+			<< "layout(location = 0) out vec4 out_color;\n"
+			<< "\n"
+			<< "void main(void)\n"
+			<< "{\n"
+			<< (testParams.writeFromVertex ? "    gl_ViewportIndex = gl_VertexIndex / 6;\n" : "")
+			<< "    gl_Position = in_position;\n"
+			<< "    out_color = in_color;\n"
+			<< "}\n";
+
+		programCollection.glslSources.add("vert") << glu::VertexSource(src.str());
+	}
+
+	// Fragment shader
+	{
+		// Ignore input color and choose one using the viewport index.
+		std::ostringstream src;
+		src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450) << "\n"
+			<< "\n"
+			<< "layout(location = 0) in  vec4 in_color;\n"
+			<< "layout(location = 0) out vec4 out_color;\n"
+			<< "layout(set=0, binding=0) uniform Colors {\n"
+			<< "    vec4 color[" << testParams.numViewports << "];\n"
+			<< "};\n"
+			<< "\n"
+			<< "void main(void)\n"
+			<< "{\n"
+			<< "    out_color = color[gl_ViewportIndex];\n"
+			<< "}\n";
+
+		programCollection.glslSources.add("frag") << glu::FragmentSource(src.str());
+	}
+}
+
 void initTessellationTestPrograms (SourceCollections& programCollection, const int numViewports)
 {
 	DE_UNREF(numViewports);
@@ -586,6 +646,7 @@
 	enum Shader {
 		VERTEX,
 		TESSELLATION,
+		FRAGMENT,
 	};
 
 	Renderer (Context&						context,
@@ -601,7 +662,9 @@
 		, m_colorSubresourceRange	(makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u))
 		, m_clearColor				(clearColor)
 		, m_numViewports			(numViewports)
+		, m_colors					(colors)
 		, m_vertices				(generateVertices(colors))
+		, m_shader					(shader)
 	{
 		const DeviceInterface&		vk					= context.getDeviceInterface();
 		const VkDevice				device				= context.getDevice();
@@ -631,7 +694,15 @@
 		m_renderPass		= makeRenderPass		(vk, device, m_colorFormat);
 		m_framebuffer		= makeFramebuffer		(vk, device, *m_renderPass, m_colorAttachment.get(),
 													 static_cast<deUint32>(m_renderSize.x()),  static_cast<deUint32>(m_renderSize.y()));
-		m_pipelineLayout	= makePipelineLayout	(vk, device);
+
+		if (shader == FRAGMENT)
+		{
+			vk::DescriptorSetLayoutBuilder builder;
+			builder.addSingleBinding(vk::VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, vk::VK_SHADER_STAGE_FRAGMENT_BIT);
+			m_descriptorSetLayout = builder.build(vk, device);
+		}
+
+		m_pipelineLayout	= makePipelineLayout	(vk, device, (shader == FRAGMENT ? m_descriptorSetLayout.get() : DE_NULL));
 		m_pipeline			= makeGraphicsPipeline	(vk, device, *m_pipelineLayout, *m_renderPass, *m_vertexModule, *m_tessellationControlModule,
 													 *m_tessellationEvaluationModule, *m_fragmentModule, m_renderSize, m_numViewports, cells);
 		m_cmdPool			= createCommandPool		(vk, device, VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, queueFamilyIndex);
@@ -643,6 +714,7 @@
 		const DeviceInterface&		vk			= context.getDeviceInterface();
 		const VkDevice				device		= context.getDevice();
 		const VkQueue				queue		= context.getUniversalQueue();
+		Allocator&					allocator	= context.getDefaultAllocator();
 
 		beginCommandBuffer(vk, *m_cmdBuffer);
 
@@ -654,6 +726,41 @@
 			const VkDeviceSize vertexBufferOffset = 0ull;
 			vk.cmdBindVertexBuffers(*m_cmdBuffer, 0u, 1u, &vertexBuffer, &vertexBufferOffset);
 		}
+
+		// Prepare colors buffer if needed.
+		std::unique_ptr<vk::BufferWithMemory>	colorsBuffer;
+		vk::Move<vk::VkDescriptorPool>			descriptorPool;
+		vk::Move<vk::VkDescriptorSet>			descriptorSet;
+
+		if (m_shader == FRAGMENT)
+		{
+			// Create buffer.
+			const auto	colorsBufferSize		= m_colors.size() * sizeof(decltype(m_colors)::value_type);
+			const auto	colorsBufferCreateInfo	= vk::makeBufferCreateInfo(static_cast<VkDeviceSize>(colorsBufferSize), vk::VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT);
+			colorsBuffer.reset(new vk::BufferWithMemory{vk, device, allocator, colorsBufferCreateInfo, MemoryRequirement::HostVisible});
+
+			// Copy colors and flush allocation.
+			auto& colorsBufferAlloc = colorsBuffer->getAllocation();
+			deMemcpy(colorsBufferAlloc.getHostPtr(), m_colors.data(), colorsBufferSize);
+			vk::flushAlloc(vk, device, colorsBufferAlloc);
+
+			// Descriptor pool.
+			vk::DescriptorPoolBuilder poolBuilder;
+			poolBuilder.addType(vk::VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 1u);
+			descriptorPool = poolBuilder.build(vk, device, vk::VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, 1u);
+
+			// Descriptor set.
+			descriptorSet = vk::makeDescriptorSet(vk, device, descriptorPool.get(), m_descriptorSetLayout.get());
+
+			// Update and bind descriptor set.
+			const auto						colorsBufferDescriptorInfo = vk::makeDescriptorBufferInfo(colorsBuffer->get(), 0ull, VK_WHOLE_SIZE);
+			vk::DescriptorSetUpdateBuilder	updateBuilder;
+			updateBuilder.writeSingle(descriptorSet.get(), vk::DescriptorSetUpdateBuilder::Location::binding(0u), vk::VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, &colorsBufferDescriptorInfo);
+			updateBuilder.update(vk, device);
+
+			vk.cmdBindDescriptorSets(*m_cmdBuffer, vk::VK_PIPELINE_BIND_POINT_GRAPHICS, m_pipelineLayout.get(), 0u, 1u, &descriptorSet.get(), 0u, nullptr);
+		}
+
 		vk.cmdDraw(*m_cmdBuffer, static_cast<deUint32>(m_numViewports * 6), 1u, 0u, 0u);	// two triangles per viewport
 		endRenderPass(vk, *m_cmdBuffer);
 
@@ -669,7 +776,9 @@
 	const VkImageSubresourceRange			m_colorSubresourceRange;
 	const Vec4								m_clearColor;
 	const int								m_numViewports;
+	const std::vector<Vec4>					m_colors;
 	const std::vector<PositionColorVertex>	m_vertices;
+	const Shader							m_shader;
 
 	Move<VkImage>							m_colorImage;
 	MovePtr<Allocation>						m_colorImageAlloc;
@@ -681,6 +790,7 @@
 	Move<VkShaderModule>					m_fragmentModule;
 	Move<VkRenderPass>						m_renderPass;
 	Move<VkFramebuffer>						m_framebuffer;
+	Move<VkDescriptorSetLayout>				m_descriptorSetLayout;
 	Move<VkPipelineLayout>					m_pipelineLayout;
 	Move<VkPipeline>						m_pipeline;
 	Move<VkCommandPool>						m_cmdPool;
@@ -691,7 +801,7 @@
 	Renderer&	operator=	(const Renderer&);
 };
 
-tcu::TestStatus testVertexShader (Context& context, const int numViewports)
+tcu::TestStatus testVertexFragmentShader (Context& context, const int numViewports, Renderer::Shader shader)
 {
 	const DeviceInterface&			vk					= context.getDeviceInterface();
 	const VkDevice					device				= context.getDevice();
@@ -722,14 +832,14 @@
 
 	// Draw
 	{
-		const Renderer renderer (context, renderSize, numViewports, cells, colorFormat, clearColor, colors, Renderer::VERTEX);
+		const Renderer renderer (context, renderSize, numViewports, cells, colorFormat, clearColor, colors, shader);
 		renderer.draw(context, colorBuffer->object());
 	}
 
 	// Log image
 	{
 		const Allocation alloc = colorBuffer->getBoundMemory();
-		invalidateMappedMemoryRange(vk, device, alloc.getMemory(), 0ull, colorBufferSize);
+		invalidateAlloc(vk, device, alloc);
 
 		const tcu::ConstPixelBufferAccess	resultImage		(mapVkFormat(colorFormat), renderSize.x(), renderSize.y(), 1u, alloc.getHostPtr());
 		const tcu::TextureLevel				referenceImage	= generateReferenceImage(mapVkFormat(colorFormat), renderSize, clearColor, cells, colors);
@@ -742,6 +852,16 @@
 	return tcu::TestStatus::pass("OK");
 }
 
+tcu::TestStatus testVertexShader (Context& context, const int numViewports)
+{
+	return testVertexFragmentShader(context, numViewports, Renderer::VERTEX);
+}
+
+tcu::TestStatus testFragmentShader (Context& context, FragmentTestParams testParams)
+{
+	return testVertexFragmentShader(context, testParams.numViewports, Renderer::FRAGMENT);
+}
+
 tcu::TestStatus testTessellationShader (Context& context, const int numViewports)
 {
 	const DeviceInterface&			vk					= context.getDeviceInterface();
@@ -780,7 +900,7 @@
 	// Log image
 	{
 		const Allocation alloc = colorBuffer->getBoundMemory();
-		invalidateMappedMemoryRange(vk, device, alloc.getMemory(), 0ull, colorBufferSize);
+		invalidateAlloc(vk, device, alloc);
 
 		const tcu::ConstPixelBufferAccess	resultImage		(mapVkFormat(colorFormat), renderSize.x(), renderSize.y(), 1u, alloc.getHostPtr());
 		const tcu::TextureLevel				referenceImage	= generateReferenceImage(mapVkFormat(colorFormat), renderSize, clearColor, cells, colors);
@@ -802,6 +922,11 @@
 		TCU_FAIL("multiViewport supported but maxViewports is less than the minimum required");
 }
 
+void checkSupportFragment (Context& context, FragmentTestParams)
+{
+	checkSupportVertex(context, 0);
+}
+
 void checkSupportTessellation (Context& context, const int)
 {
 	context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_TESSELLATION_SHADER);
@@ -818,6 +943,10 @@
 	for (int numViewports = 1; numViewports <= MIN_MAX_VIEWPORTS; ++numViewports)
 		addFunctionCaseWithPrograms(group.get(), "vertex_shader_" + de::toString(numViewports), "", checkSupportVertex, initVertexTestPrograms, testVertexShader, numViewports);
 
+	addFunctionCaseWithPrograms(group.get(), "fragment_shader_implicit", "", checkSupportFragment, initFragmentTestPrograms, testFragmentShader, FragmentTestParams(1, false));
+	for (int numViewports = 1; numViewports <= MIN_MAX_VIEWPORTS; ++numViewports)
+		addFunctionCaseWithPrograms(group.get(), "fragment_shader_" + de::toString(numViewports), "", checkSupportFragment, initFragmentTestPrograms, testFragmentShader, FragmentTestParams(numViewports, true));
+
 	for (int numViewports = 1; numViewports <= MIN_MAX_VIEWPORTS; ++numViewports)
 		addFunctionCaseWithPrograms(group.get(), "tessellation_shader_" + de::toString(numViewports), "", checkSupportTessellation, initTessellationTestPrograms, testTessellationShader, numViewports);
 
diff --git a/external/vulkancts/modules/vulkan/draw/vktDrawTests.cpp b/external/vulkancts/modules/vulkan/draw/vktDrawTests.cpp
index eb80924..0b5b63a 100644
--- a/external/vulkancts/modules/vulkan/draw/vktDrawTests.cpp
+++ b/external/vulkancts/modules/vulkan/draw/vktDrawTests.cpp
@@ -40,6 +40,8 @@
 #include "vktDrawScissorTests.hpp"
 #include "vktDrawMultipleInterpolationTests.hpp"
 #include "vktDrawDiscardRectanglesTests.hpp"
+#include "vktDrawExplicitVertexParameterTests.hpp"
+#include "vktDrawOutputLocationTests.hpp"
 
 namespace vkt
 {
@@ -69,6 +71,8 @@
 	group->addChild(createScissorTests					(testCtx));
 	group->addChild(createMultipleInterpolationTests	(testCtx));
 	group->addChild(createDiscardRectanglesTests		(testCtx));
+	group->addChild(createExplicitVertexParameterTests	(testCtx));
+	group->addChild(createOutputLocationTests	        (testCtx));
 }
 
 } // anonymous
diff --git a/external/vulkancts/modules/vulkan/geometry/vktGeometryBasicClass.cpp b/external/vulkancts/modules/vulkan/geometry/vktGeometryBasicClass.cpp
index 521e8e6..c90e076 100644
--- a/external/vulkancts/modules/vulkan/geometry/vktGeometryBasicClass.cpp
+++ b/external/vulkancts/modules/vulkan/geometry/vktGeometryBasicClass.cpp
@@ -175,7 +175,7 @@
 	{
 		// Log the result image.
 		const Allocation& colorBufferAlloc = colorBuffer.getAllocation();
-		invalidateMappedMemoryRange(vk, device, colorBufferAlloc.getMemory(), colorBufferAlloc.getOffset(), colorBufferSizeBytes);
+		invalidateAlloc(vk, device, colorBufferAlloc);
 		const tcu::ConstPixelBufferAccess imagePixelAccess(mapVkFormat(colorFormat), resolution.x(), resolution.y(), 1, colorBufferAlloc.getHostPtr());
 
 		if (!compareWithFileImage(m_context, imagePixelAccess, m_name))
diff --git a/external/vulkancts/modules/vulkan/geometry/vktGeometryLayeredRenderingTests.cpp b/external/vulkancts/modules/vulkan/geometry/vktGeometryLayeredRenderingTests.cpp
index 6be4a6a..8d43032 100644
--- a/external/vulkancts/modules/vulkan/geometry/vktGeometryLayeredRenderingTests.cpp
+++ b/external/vulkancts/modules/vulkan/geometry/vktGeometryLayeredRenderingTests.cpp
@@ -1273,7 +1273,7 @@
 	endCommandBuffer(vk, *cmdBuffer);
 	submitCommandsAndWait(vk, device, queue, *cmdBuffer);
 
-	invalidateMappedMemoryRange(vk, device, colorBufferAlloc->getMemory(), colorBufferAlloc->getOffset(), colorBufferSize);
+	invalidateAlloc(vk, device, *colorBufferAlloc);
 
 	if (!verifyResults(context.getTestContext().getLog(), params, colorFormat, colorBufferAlloc->getHostPtr()))
 		return tcu::TestStatus::fail("Rendered images are incorrect");
@@ -1542,9 +1542,9 @@
 	endCommandBuffer(vk, *cmdBuffer);
 	submitCommandsAndWait(vk, device, queue, *cmdBuffer);
 
-	invalidateMappedMemoryRange(vk, device, colorBufferAlloc->getMemory(), colorBufferAlloc->getOffset(), colorBufferSize);
-	invalidateMappedMemoryRange(vk, device, depthBufferAlloc->getMemory(), depthBufferAlloc->getOffset(), depthBufferSize);
-	invalidateMappedMemoryRange(vk, device, stencilBufferAlloc->getMemory(), stencilBufferAlloc->getOffset(), stencilBufferSize);
+	invalidateAlloc(vk, device, *colorBufferAlloc);
+	invalidateAlloc(vk, device, *depthBufferAlloc);
+	invalidateAlloc(vk, device, *stencilBufferAlloc);
 
 	if (!verifyResults(context.getTestContext().getLog(), params, colorFormat, colorBufferAlloc->getHostPtr()))
 		result += " Color";
@@ -1796,7 +1796,7 @@
 	endCommandBuffer(vk, *cmdBuffer);
 	submitCommandsAndWait(vk, device, queue, *cmdBuffer);
 
-	invalidateMappedMemoryRange(vk, device, colorBufferAlloc->getMemory(), colorBufferAlloc->getOffset(), colorBufferSize);
+	invalidateAlloc(vk, device, *colorBufferAlloc);
 
 	if (!verifyResults(context.getTestContext().getLog(), params, colorFormat, colorBufferAlloc->getHostPtr()))
 		return tcu::TestStatus::fail("Rendered images are incorrect");
diff --git a/external/vulkancts/modules/vulkan/image/vktImageLoadStoreTests.cpp b/external/vulkancts/modules/vulkan/image/vktImageLoadStoreTests.cpp
index 081e6c7..784e968 100644
--- a/external/vulkancts/modules/vulkan/image/vktImageLoadStoreTests.cpp
+++ b/external/vulkancts/modules/vulkan/image/vktImageLoadStoreTests.cpp
@@ -110,18 +110,40 @@
 	}
 }
 
+//! \return the size in bytes of a given level of a mipmap image, including array layers.
+vk::VkDeviceSize getMipmapLevelImageSizeBytes (const Texture& texture, const vk::VkFormat format, const deUint32 mipmapLevel)
+{
+	tcu::IVec3 size = texture.size(mipmapLevel);
+	return tcu::getPixelSize(vk::mapVkFormat(format)) * size.x() * size.y() * size.z();
+}
+
+//! \return the size in bytes of the whole mipmap image, including all mipmap levels and array layers
+vk::VkDeviceSize getMipmapImageTotalSizeBytes (const Texture& texture, const vk::VkFormat format)
+{
+	vk::VkDeviceSize	size			= 0u;
+	deInt32				levelCount		= 0u;
+
+	do
+	{
+		size += getMipmapLevelImageSizeBytes(texture, format, levelCount);
+		levelCount++;
+	} while (levelCount < texture.numMipmapLevels());
+	return size;
+}
+
 //! \return true if all layers match in both pixel buffers
 bool comparePixelBuffers (tcu::TestLog&						log,
 						  const Texture&					texture,
 						  const VkFormat					format,
 						  const tcu::ConstPixelBufferAccess	reference,
-						  const tcu::ConstPixelBufferAccess	result)
+						  const tcu::ConstPixelBufferAccess	result,
+						  const deUint32					mipmapLevel = 0u)
 {
 	DE_ASSERT(reference.getFormat() == result.getFormat());
 	DE_ASSERT(reference.getSize() == result.getSize());
 
 	const bool is3d = (texture.type() == IMAGE_TYPE_3D);
-	const int numLayersOrSlices = (is3d ? texture.size().z() : texture.numLayers());
+	const int numLayersOrSlices = (is3d ? texture.size(mipmapLevel).z() : texture.numLayers());
 	const int numCubeFaces = 6;
 
 	int passedLayers = 0;
@@ -130,7 +152,7 @@
 		const std::string comparisonName = "Comparison" + de::toString(layerNdx);
 		const std::string comparisonDesc = "Image Comparison, " +
 			(isCube(texture) ? "face " + de::toString(layerNdx % numCubeFaces) + ", cube " + de::toString(layerNdx / numCubeFaces) :
-			is3d			 ? "slice " + de::toString(layerNdx) : "layer " + de::toString(layerNdx));
+			is3d			 ? "slice " + de::toString(layerNdx) : "layer " + de::toString(layerNdx) + " , level " + de::toString(mipmapLevel));
 
 		const tcu::ConstPixelBufferAccess refLayer = getLayerOrSlice(texture, reference, layerNdx);
 		const tcu::ConstPixelBufferAccess resultLayer = getLayerOrSlice(texture, result, layerNdx);
@@ -319,7 +341,7 @@
 {
 	const DeviceInterface& vk = context.getDeviceInterface();
 
-	const VkImageSubresourceRange fullImageSubresourceRange = makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, texture.numLayers());
+	const VkImageSubresourceRange fullImageSubresourceRange = makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, texture.numMipmapLevels(), 0u, texture.numLayers());
 	const VkImageMemoryBarrier shaderWriteBarrier = makeImageMemoryBarrier(
 		VK_ACCESS_SHADER_WRITE_BIT, 0u,
 		VK_IMAGE_LAYOUT_GENERAL, VK_IMAGE_LAYOUT_GENERAL,
@@ -366,6 +388,49 @@
 	vk.cmdPipelineBarrier(cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_HOST_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 1, &copyBarrier, 0, (const VkImageMemoryBarrier*)DE_NULL);
 }
 
+//! Copy all layers of a mipmap image to a buffer.
+void commandCopyMipmapImageToBuffer (Context&				context,
+									 const VkCommandBuffer	cmdBuffer,
+									 const VkImage			image,
+									 const VkFormat			imageFormat,
+									 const VkBuffer			buffer,
+									 const VkDeviceSize		bufferSizeBytes,
+									 const Texture&			texture)
+{
+	const DeviceInterface& vk = context.getDeviceInterface();
+
+	const VkImageSubresourceRange fullImageSubresourceRange = makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, texture.numMipmapLevels(), 0u, texture.numLayers());
+	const VkImageMemoryBarrier prepareForTransferBarrier = makeImageMemoryBarrier(
+		VK_ACCESS_SHADER_WRITE_BIT, VK_ACCESS_TRANSFER_READ_BIT,
+		VK_IMAGE_LAYOUT_GENERAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
+		image, fullImageSubresourceRange);
+
+	std::vector<VkBufferImageCopy> copyRegions;
+	VkDeviceSize bufferOffset = 0u;
+	for (deInt32 levelNdx = 0; levelNdx < texture.numMipmapLevels(); levelNdx++)
+	{
+		const VkBufferImageCopy copyParams =
+		{
+			bufferOffset,																				//	VkDeviceSize				bufferOffset;
+			0u,																							//	deUint32					bufferRowLength;
+			0u,																							//	deUint32					bufferImageHeight;
+			makeImageSubresourceLayers(VK_IMAGE_ASPECT_COLOR_BIT, levelNdx, 0u, texture.numLayers()),	//	VkImageSubresourceLayers	imageSubresource;
+			makeOffset3D(0, 0, 0),																		//	VkOffset3D					imageOffset;
+			makeExtent3D(texture.layerSize(levelNdx)),													//	VkExtent3D					imageExtent;
+		};
+		copyRegions.push_back(copyParams);
+		bufferOffset += getMipmapLevelImageSizeBytes(texture, imageFormat, levelNdx);
+	}
+
+	const VkBufferMemoryBarrier copyBarrier = makeBufferMemoryBarrier(
+		VK_ACCESS_TRANSFER_WRITE_BIT, VK_ACCESS_HOST_READ_BIT,
+		buffer, 0ull, bufferSizeBytes);
+
+	vk.cmdPipelineBarrier(cmdBuffer, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 0, (const VkBufferMemoryBarrier*)DE_NULL, 1, &prepareForTransferBarrier);
+	vk.cmdCopyImageToBuffer(cmdBuffer, image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, buffer, (deUint32) copyRegions.size(), copyRegions.data());
+	vk.cmdPipelineBarrier(cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_HOST_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 1, &copyBarrier, 0, (const VkImageMemoryBarrier*)DE_NULL);
+}
+
 class StoreTest : public TestCase
 {
 public:
@@ -966,7 +1031,8 @@
 													 const Texture&			texture,
 													 const VkFormat			format,
 													 const VkFormat			imageFormat,
-													 const deUint32			flags = FLAG_DECLARE_IMAGE_FORMAT_IN_SHADER);
+													 const deUint32			flags = FLAG_DECLARE_IMAGE_FORMAT_IN_SHADER,
+													 const deBool			imageLoadStoreLodAMD = DE_FALSE);
 
 	virtual void			checkSupport			(Context&				context) const;
 	void					initPrograms			(SourceCollections&		programCollection) const;
@@ -981,6 +1047,7 @@
 	const bool				m_restrictImages;
 	const bool				m_minalign;
 	bool					m_bufferLoadUniform;
+	const deBool			m_imageLoadStoreLodAMD;
 };
 
 LoadStoreTest::LoadStoreTest (tcu::TestContext&		testCtx,
@@ -989,7 +1056,8 @@
 							  const Texture&		texture,
 							  const VkFormat		format,
 							  const VkFormat		imageFormat,
-							  const deUint32		flags)
+							  const deUint32		flags,
+							  const deBool			imageLoadStoreLodAMD)
 	: TestCase						(testCtx, name, description)
 	, m_texture						(texture)
 	, m_format						(format)
@@ -999,6 +1067,7 @@
 	, m_restrictImages				((flags & FLAG_RESTRICT_IMAGES) != 0)
 	, m_minalign					((flags & FLAG_MINALIGN) != 0)
 	, m_bufferLoadUniform			((flags & FLAG_UNIFORM_TEXEL_BUFFER) != 0)
+	, m_imageLoadStoreLodAMD		(imageLoadStoreLodAMD)
 {
 	if (m_singleLayerBind)
 		DE_ASSERT(m_texture.numLayers() > 1);
@@ -1014,6 +1083,8 @@
 	const vk::VkFormatProperties imageFormatProperties  (vk::getPhysicalDeviceFormatProperties(context.getInstanceInterface(),
 																							   context.getPhysicalDevice(),
 																							   m_imageFormat));
+	if (m_imageLoadStoreLodAMD)
+		context.requireDeviceFunctionality("VK_AMD_shader_image_load_store_lod");
 
 	if (!m_bufferLoadUniform && !m_declareImageFormatInShader)
 		context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_SHADER_STORAGE_IMAGE_READ_WITHOUT_FORMAT);
@@ -1064,12 +1135,18 @@
 	const std::string			xMax				= de::toString(m_texture.size().x() - 1);
 
 	std::ostringstream src;
-	src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_440) << "\n"
+	src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450) << "\n"
 		<< "\n";
 	if (!m_declareImageFormatInShader)
 	{
 		src << "#extension GL_EXT_shader_image_load_formatted : require\n";
 	}
+
+	if (m_imageLoadStoreLodAMD)
+	{
+		src << "#extension GL_AMD_shader_image_load_store_lod : require\n";
+	}
+
 	src << "layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;\n";
 	if (m_bufferLoadUniform)
 		src << "layout (binding = 0) uniform " << uniformTypeStr << " u_image0;\n";
@@ -1106,20 +1183,60 @@
 			else
 				src << "    imageStore(u_image1, pos, t);\n";
 		}
+		else if (m_imageLoadStoreLodAMD)
+		{
+			src <<
+				"    int pos = int(gl_GlobalInvocationID.x);\n";
+
+			for (deInt32 levelNdx = 0; levelNdx < m_texture.numMipmapLevels(); levelNdx++)
+			{
+				std::string xMaxSize = de::toString(deMax32(((m_texture.layerSize().x() >> levelNdx) - 1), 1u));
+				src << "    imageStoreLodAMD(u_image1, pos, " + de::toString(levelNdx) + ", imageLoadLodAMD(u_image0, " + xMaxSize + "-pos, " + de::toString(levelNdx) + "));\n";
+			}
+		}
 		else
+		{
 			src <<
 				"    int pos = int(gl_GlobalInvocationID.x);\n"
 				"    imageStore(u_image1, pos, imageLoad(u_image0, " + xMax + "-pos));\n";
+		}
 		break;
 	case 2:
-		src <<
-			"    ivec2 pos = ivec2(gl_GlobalInvocationID.xy);\n"
-			"    imageStore(u_image1, pos, imageLoad(u_image0, ivec2(" + xMax + "-pos.x, pos.y)));\n";
+		if (m_imageLoadStoreLodAMD)
+		{
+			src << "    ivec2 pos = ivec2(gl_GlobalInvocationID.xy);\n";
+
+			for (deInt32 levelNdx = 0; levelNdx < m_texture.numMipmapLevels(); levelNdx++)
+			{
+				std::string xMaxSize = de::toString(deMax32(((m_texture.layerSize().x() >> levelNdx) - 1), 1u));
+				src << "    imageStoreLodAMD(u_image1, pos, " + de::toString(levelNdx) + ", imageLoadLodAMD(u_image0, ivec2(" + xMaxSize + "-pos.x, pos.y), " + de::toString(levelNdx) + "));\n";
+			}
+
+		}
+		else
+		{
+			src <<
+				"    ivec2 pos = ivec2(gl_GlobalInvocationID.xy);\n"
+				"    imageStore(u_image1, pos, imageLoad(u_image0, ivec2(" + xMax + "-pos.x, pos.y)));\n";
+		}
 		break;
 	case 3:
-		src <<
-			"    ivec3 pos = ivec3(gl_GlobalInvocationID);\n"
-			"    imageStore(u_image1, pos, imageLoad(u_image0, ivec3(" + xMax + "-pos.x, pos.y, pos.z)));\n";
+		if (m_imageLoadStoreLodAMD)
+		{
+			src << "    ivec3 pos = ivec3(gl_GlobalInvocationID);\n";
+
+			for (deInt32 levelNdx = 0; levelNdx < m_texture.numMipmapLevels(); levelNdx++)
+			{
+				std::string xMaxSize = de::toString(deMax32(((m_texture.layerSize().x() >> levelNdx) - 1), 1u));
+				src << "    imageStoreLodAMD(u_image1, pos, " + de::toString(levelNdx) + ", imageLoadLodAMD(u_image0, ivec3(" + xMaxSize + "-pos.x, pos.y, pos.z), " + de::toString(levelNdx) + "));\n";
+			}
+		}
+		else
+		{
+			src <<
+				"    ivec3 pos = ivec3(gl_GlobalInvocationID);\n"
+				"    imageStore(u_image1, pos, imageLoad(u_image0, ivec3(" + xMax + "-pos.x, pos.y, pos.z)));\n";
+		}
 		break;
 	}
 	src << "}\n";
@@ -1385,6 +1502,305 @@
 	commandCopyImageToBuffer(m_context, cmdBuffer, m_imageDst->get(), m_imageBuffer->get(), m_imageSizeBytes, m_texture);
 }
 
+//! Load/store Lod AMD test for images
+class ImageLoadStoreLodAMDTestInstance : public BaseTestInstance
+{
+public:
+										ImageLoadStoreLodAMDTestInstance	(Context&				context,
+																			 const Texture&			texture,
+																			 const VkFormat			format,
+																			 const VkFormat			imageFormat,
+																			 const bool				declareImageFormatInShader,
+																			 const bool				singleLayerBind,
+																			 const bool				minalign,
+																			 const bool				bufferLoadUniform);
+
+protected:
+	VkDescriptorSetLayout				prepareDescriptors					(void);
+	void								commandBeforeCompute				(const VkCommandBuffer	cmdBuffer);
+	void								commandBetweenShaderInvocations		(const VkCommandBuffer	cmdBuffer);
+	void								commandAfterCompute					(const VkCommandBuffer	cmdBuffer);
+
+	void								commandBindDescriptorsForLayer		(const VkCommandBuffer	cmdBuffer,
+																			 const VkPipelineLayout pipelineLayout,
+																			 const int				layerNdx);
+
+	Buffer*								getResultBuffer						(void) const { return m_imageBuffer.get(); }
+	tcu::TestStatus						verifyResult						(void);
+
+	de::MovePtr<Buffer>					m_imageBuffer;		//!< Source data and helper buffer
+	const VkDeviceSize					m_imageSizeBytes;
+	const VkFormat						m_imageFormat;		//!< Image format (for storage, may be different than texture format)
+	std::vector<tcu::TextureLevel>		m_referenceImages;	//!< Used as input data and later to verify result image
+
+	bool								m_bufferLoadUniform;
+	VkDescriptorType					m_bufferLoadDescriptorType;
+	VkBufferUsageFlagBits				m_bufferLoadUsageBit;
+
+	de::MovePtr<Image>					m_imageSrc;
+	de::MovePtr<Image>					m_imageDst;
+	Move<VkDescriptorSetLayout>			m_descriptorSetLayout;
+	Move<VkDescriptorPool>				m_descriptorPool;
+	std::vector<SharedVkDescriptorSet>  m_allDescriptorSets;
+	std::vector<SharedVkImageView>      m_allSrcImageViews;
+	std::vector<SharedVkImageView>      m_allDstImageViews;
+
+};
+
+ImageLoadStoreLodAMDTestInstance::ImageLoadStoreLodAMDTestInstance (Context&		context,
+																	const Texture&	texture,
+																	const VkFormat	format,
+																	const VkFormat	imageFormat,
+																	const bool		declareImageFormatInShader,
+																	const bool		singleLayerBind,
+																	const bool		minalign,
+																	const bool		bufferLoadUniform)
+	: BaseTestInstance			(context, texture, format, declareImageFormatInShader, singleLayerBind, minalign, bufferLoadUniform)
+	, m_imageSizeBytes			(getMipmapImageTotalSizeBytes(texture, format))
+	, m_imageFormat				(imageFormat)
+	, m_bufferLoadUniform		(bufferLoadUniform)
+	, m_allDescriptorSets       (texture.numLayers())
+	, m_allSrcImageViews        (texture.numLayers())
+	, m_allDstImageViews        (texture.numLayers())
+{
+	const DeviceInterface&		vk					= m_context.getDeviceInterface();
+	const VkDevice				device				= m_context.getDevice();
+	Allocator&					allocator			= m_context.getDefaultAllocator();
+	const VkImageCreateFlags	imageFlags			= (m_format == m_imageFormat ? 0u : (VkImageCreateFlags)VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT);
+
+	const VkSampleCountFlagBits samples = static_cast<VkSampleCountFlagBits>(m_texture.numSamples());	// integer and bit mask are aligned, so we can cast like this
+
+	for (deInt32 levelNdx = 0; levelNdx < m_texture.numMipmapLevels(); levelNdx++)
+	{
+		tcu::TextureLevel referenceImage = generateReferenceImage(texture.size(levelNdx), imageFormat, format);
+		m_referenceImages.push_back(referenceImage);
+	}
+
+	m_bufferLoadDescriptorType = m_bufferLoadUniform ? VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER : VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER;
+	m_bufferLoadUsageBit = m_bufferLoadUniform ? VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT : VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT;
+
+	// A helper buffer with enough space to hold the whole image.
+	m_imageBuffer = de::MovePtr<Buffer>(new Buffer(
+												   vk, device, allocator,
+												   makeBufferCreateInfo(m_imageSizeBytes + m_srcViewOffset, m_bufferLoadUsageBit | VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_TRANSFER_SRC_BIT),
+												   MemoryRequirement::HostVisible));
+
+	// Copy reference data to buffer for subsequent upload to image.
+	{
+		const Allocation& alloc = m_imageBuffer->getAllocation();
+		VkDeviceSize bufferOffset = 0u;
+		for (deInt32 levelNdx = 0; levelNdx < m_texture.numMipmapLevels(); levelNdx++)
+		{
+			deMemcpy((char *)alloc.getHostPtr() + m_srcViewOffset + bufferOffset, m_referenceImages[levelNdx].getAccess().getDataPtr(), static_cast<size_t>(getMipmapLevelImageSizeBytes(m_texture, m_imageFormat, levelNdx)));
+			bufferOffset += getMipmapLevelImageSizeBytes(m_texture, m_imageFormat, levelNdx);
+		}
+		flushAlloc(vk, device, alloc);
+	}
+
+	{
+		const VkImageCreateInfo imageParamsSrc =
+		{
+			VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,																// VkStructureType			sType;
+			DE_NULL,																							// const void*				pNext;
+			(isCube(m_texture) ? (VkImageCreateFlags)VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT : 0u) | imageFlags,	// VkImageCreateFlags		flags;
+			mapImageType(m_texture.type()),																		// VkImageType				imageType;
+			m_imageFormat,																						// VkFormat					format;
+			makeExtent3D(m_texture.layerSize()),																// VkExtent3D				extent;
+			(deUint32)m_texture.numMipmapLevels(),																// deUint32					mipLevels;
+			(deUint32)m_texture.numLayers(),																	// deUint32					arrayLayers;
+			samples,																							// VkSampleCountFlagBits	samples;
+			VK_IMAGE_TILING_OPTIMAL,																			// VkImageTiling			tiling;
+			VK_IMAGE_USAGE_STORAGE_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT,										// VkImageUsageFlags		usage;
+			VK_SHARING_MODE_EXCLUSIVE,																			// VkSharingMode			sharingMode;
+			0u,																									// deUint32					queueFamilyIndexCount;
+			DE_NULL,																							// const deUint32*			pQueueFamilyIndices;
+			VK_IMAGE_LAYOUT_UNDEFINED,																			// VkImageLayout			initialLayout;
+		};
+
+		m_imageSrc = de::MovePtr<Image>(new Image(
+												  vk, device, allocator,
+												  imageParamsSrc,
+												  MemoryRequirement::Any));
+	}
+
+	{
+		const VkImageCreateInfo imageParamsDst =
+		{
+			VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,																// VkStructureType			sType;
+			DE_NULL,																							// const void*				pNext;
+			(isCube(m_texture) ? (VkImageCreateFlags)VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT : 0u) | imageFlags,	// VkImageCreateFlags		flags;
+			mapImageType(m_texture.type()),																		// VkImageType				imageType;
+			m_imageFormat,																						// VkFormat					format;
+			makeExtent3D(m_texture.layerSize()),																// VkExtent3D				extent;
+			(deUint32)m_texture.numMipmapLevels(),																// deUint32					mipLevels;
+			(deUint32)m_texture.numLayers(),																	// deUint32					arrayLayers;
+			samples,																							// VkSampleCountFlagBits	samples;
+			VK_IMAGE_TILING_OPTIMAL,																			// VkImageTiling			tiling;
+		    VK_IMAGE_USAGE_STORAGE_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT,										// VkImageUsageFlags		usage;
+			VK_SHARING_MODE_EXCLUSIVE,																			// VkSharingMode			sharingMode;
+			0u,																									// deUint32					queueFamilyIndexCount;
+			DE_NULL,																							// const deUint32*			pQueueFamilyIndices;
+			VK_IMAGE_LAYOUT_UNDEFINED,																			// VkImageLayout			initialLayout;
+		};
+
+		m_imageDst = de::MovePtr<Image>(new Image(
+												  vk, device, allocator,
+												  imageParamsDst,
+												  MemoryRequirement::Any));
+	}
+}
+
+tcu::TestStatus ImageLoadStoreLodAMDTestInstance::verifyResult	(void)
+{
+	const DeviceInterface&	vk		= m_context.getDeviceInterface();
+	const VkDevice			device	= m_context.getDevice();
+
+	const Allocation& alloc = getResultBuffer()->getAllocation();
+	invalidateAlloc(vk, device, alloc);
+
+    VkDeviceSize bufferOffset = 0;
+	for (deInt32 levelNdx = 0; levelNdx < m_texture.numMipmapLevels(); levelNdx++)
+	{
+		// Apply the same transformation as done in the shader
+		const tcu::PixelBufferAccess reference = m_referenceImages[levelNdx].getAccess();
+		flipHorizontally(reference);
+
+		const tcu::ConstPixelBufferAccess result(mapVkFormat(m_imageFormat), m_texture.size(levelNdx), (const char *)alloc.getHostPtr() + m_dstViewOffset + bufferOffset);
+
+		if (!comparePixelBuffers(m_context.getTestContext().getLog(), m_texture, m_imageFormat, reference, result, levelNdx))
+		{
+			std::ostringstream errorMessage;
+			errorMessage << "Image Level " << levelNdx << " comparison failed";
+			return tcu::TestStatus::fail(errorMessage.str());
+		}
+		bufferOffset += getMipmapLevelImageSizeBytes(m_texture, m_imageFormat, levelNdx);
+	}
+
+	return tcu::TestStatus::pass("Passed");
+}
+
+VkDescriptorSetLayout ImageLoadStoreLodAMDTestInstance::prepareDescriptors (void)
+{
+	const VkDevice			device	= m_context.getDevice();
+	const DeviceInterface&	vk		= m_context.getDeviceInterface();
+
+	const int numLayers = m_texture.numLayers();
+	m_descriptorSetLayout = DescriptorSetLayoutBuilder()
+		.addSingleBinding(VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, VK_SHADER_STAGE_COMPUTE_BIT)
+		.addSingleBinding(VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, VK_SHADER_STAGE_COMPUTE_BIT)
+		.build(vk, device);
+
+	m_descriptorPool = DescriptorPoolBuilder()
+		.addType(VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, numLayers)
+		.addType(VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, numLayers)
+		.build(vk, device, VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, numLayers);
+
+	if (m_singleLayerBind)
+	{
+		for (int layerNdx = 0; layerNdx < numLayers; ++layerNdx)
+		{
+			const VkImageViewType viewType = mapImageViewType(getImageTypeForSingleLayer(m_texture.type()));
+			const VkImageSubresourceRange subresourceRange = makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, m_texture.numMipmapLevels(), layerNdx, 1u);
+
+			m_allDescriptorSets[layerNdx] = makeVkSharedPtr(makeDescriptorSet(vk, device, *m_descriptorPool, *m_descriptorSetLayout));
+			m_allSrcImageViews[layerNdx]  = makeVkSharedPtr(makeImageView(vk, device, m_imageSrc->get(), viewType, m_format, subresourceRange));
+			m_allDstImageViews[layerNdx]  = makeVkSharedPtr(makeImageView(vk, device, m_imageDst->get(), viewType, m_format, subresourceRange));
+		}
+	}
+	else // bind all layers at once
+	{
+		const VkImageViewType viewType = mapImageViewType(m_texture.type());
+		const VkImageSubresourceRange subresourceRange = makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, m_texture.numMipmapLevels(), 0u, numLayers);
+
+		m_allDescriptorSets[0] = makeVkSharedPtr(makeDescriptorSet(vk, device, *m_descriptorPool, *m_descriptorSetLayout));
+		m_allSrcImageViews[0]  = makeVkSharedPtr(makeImageView(vk, device, m_imageSrc->get(), viewType, m_format, subresourceRange));
+		m_allDstImageViews[0]  = makeVkSharedPtr(makeImageView(vk, device, m_imageDst->get(), viewType, m_format, subresourceRange));
+	}
+
+	return *m_descriptorSetLayout;  // not passing the ownership
+}
+
+void ImageLoadStoreLodAMDTestInstance::commandBindDescriptorsForLayer (const VkCommandBuffer cmdBuffer, const VkPipelineLayout pipelineLayout, const int layerNdx)
+{
+	const VkDevice			device	= m_context.getDevice();
+	const DeviceInterface&	vk		= m_context.getDeviceInterface();
+
+	const VkDescriptorSet descriptorSet = **m_allDescriptorSets[layerNdx];
+	const VkImageView	  srcImageView	= **m_allSrcImageViews[layerNdx];
+	const VkImageView	  dstImageView	= **m_allDstImageViews[layerNdx];
+
+	const VkDescriptorImageInfo descriptorSrcImageInfo = makeDescriptorImageInfo(DE_NULL, srcImageView, VK_IMAGE_LAYOUT_GENERAL);
+	const VkDescriptorImageInfo descriptorDstImageInfo = makeDescriptorImageInfo(DE_NULL, dstImageView, VK_IMAGE_LAYOUT_GENERAL);
+
+	DescriptorSetUpdateBuilder()
+		.writeSingle(descriptorSet, DescriptorSetUpdateBuilder::Location::binding(0u), VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, &descriptorSrcImageInfo)
+		.writeSingle(descriptorSet, DescriptorSetUpdateBuilder::Location::binding(1u), VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, &descriptorDstImageInfo)
+		.update(vk, device);
+	vk.cmdBindDescriptorSets(cmdBuffer, VK_PIPELINE_BIND_POINT_COMPUTE, pipelineLayout, 0u, 1u, &descriptorSet, 0u, DE_NULL);
+}
+
+void ImageLoadStoreLodAMDTestInstance::commandBeforeCompute (const VkCommandBuffer cmdBuffer)
+{
+	const DeviceInterface& vk = m_context.getDeviceInterface();
+	const VkImageSubresourceRange fullImageSubresourceRange = makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, m_texture.numMipmapLevels(), 0u, m_texture.numLayers());
+	{
+		const VkImageMemoryBarrier preCopyImageBarriers[] =
+		{
+			makeImageMemoryBarrier(
+				0u, VK_ACCESS_TRANSFER_WRITE_BIT,
+				VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
+				m_imageSrc->get(), fullImageSubresourceRange),
+			makeImageMemoryBarrier(
+				0u, VK_ACCESS_SHADER_WRITE_BIT,
+				VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_GENERAL,
+				m_imageDst->get(), fullImageSubresourceRange)
+		};
+
+		const VkBufferMemoryBarrier barrierFlushHostWriteBeforeCopy = makeBufferMemoryBarrier(
+			VK_ACCESS_HOST_WRITE_BIT, VK_ACCESS_TRANSFER_READ_BIT,
+			m_imageBuffer->get(), 0ull, m_imageSizeBytes + m_srcViewOffset);
+
+		vk.cmdPipelineBarrier(cmdBuffer, VK_PIPELINE_STAGE_HOST_BIT, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT | VK_PIPELINE_STAGE_TRANSFER_BIT,
+			(VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 1, &barrierFlushHostWriteBeforeCopy, DE_LENGTH_OF_ARRAY(preCopyImageBarriers), preCopyImageBarriers);
+	}
+	{
+		const VkImageMemoryBarrier barrierAfterCopy = makeImageMemoryBarrier(
+			VK_ACCESS_TRANSFER_WRITE_BIT, VK_ACCESS_SHADER_READ_BIT,
+			VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL,
+			m_imageSrc->get(), fullImageSubresourceRange);
+
+		std::vector<VkBufferImageCopy> copyRegions;
+		VkDeviceSize bufferOffset = 0u;
+		for (deInt32 levelNdx = 0; levelNdx < m_texture.numMipmapLevels(); levelNdx++)
+		{
+			const VkBufferImageCopy copyParams =
+			{
+				bufferOffset,																					//	VkDeviceSize				bufferOffset;
+				0u,																								//	deUint32					bufferRowLength;
+				0u,																								//	deUint32					bufferImageHeight;
+				makeImageSubresourceLayers(VK_IMAGE_ASPECT_COLOR_BIT, levelNdx, 0u, m_texture.numLayers()),		//	VkImageSubresourceLayers	imageSubresource;
+				makeOffset3D(0, 0, 0),																			//	VkOffset3D					imageOffset;
+				makeExtent3D(m_texture.layerSize(levelNdx)),													//	VkExtent3D					imageExtent;
+			};
+			copyRegions.push_back(copyParams);
+			bufferOffset += getMipmapLevelImageSizeBytes(m_texture, m_imageFormat, levelNdx);
+		}
+
+		vk.cmdCopyBufferToImage(cmdBuffer, m_imageBuffer->get(), m_imageSrc->get(), VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, (deUint32) copyRegions.size(), copyRegions.data());
+		vk.cmdPipelineBarrier(cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 0, (const VkBufferMemoryBarrier*)DE_NULL, 1, &barrierAfterCopy);
+	}
+}
+
+void ImageLoadStoreLodAMDTestInstance::commandBetweenShaderInvocations (const VkCommandBuffer cmdBuffer)
+{
+	commandImageWriteBarrierBetweenShaderInvocations(m_context, cmdBuffer, m_imageDst->get(), m_texture);
+}
+
+void ImageLoadStoreLodAMDTestInstance::commandAfterCompute (const VkCommandBuffer cmdBuffer)
+{
+	commandCopyMipmapImageToBuffer(m_context, cmdBuffer, m_imageDst->get(), m_imageFormat, m_imageBuffer->get(), m_imageSizeBytes, m_texture);
+}
+
 //! Load/store test for buffers
 class BufferLoadStoreTestInstance : public LoadStoreTestInstance
 {
@@ -1490,6 +1906,9 @@
 
 TestInstance* LoadStoreTest::createInstance (Context& context) const
 {
+	if (m_imageLoadStoreLodAMD)
+		return new ImageLoadStoreLodAMDTestInstance(context, m_texture, m_format, m_imageFormat, m_declareImageFormatInShader, m_singleLayerBind, m_minalign, m_bufferLoadUniform);
+
 	if (m_texture.type() == IMAGE_TYPE_BUFFER)
 		return new BufferLoadStoreTestInstance(context, m_texture, m_format, m_imageFormat, m_declareImageFormatInShader, m_minalign, m_bufferLoadUniform);
 	else
@@ -2138,6 +2557,54 @@
 	return testGroup.release();
 }
 
+tcu::TestCaseGroup* createImageLoadStoreLodAMDTests (tcu::TestContext& testCtx)
+{
+	static const Texture textures[] =
+	{
+		Texture(IMAGE_TYPE_1D_ARRAY,	tcu::IVec3(64,	1,	1),	8, 1, 6),
+		Texture(IMAGE_TYPE_1D,			tcu::IVec3(64,	1,	1),	1, 1, 6),
+		Texture(IMAGE_TYPE_2D,			tcu::IVec3(64,	64,	1),	1, 1, 6),
+		Texture(IMAGE_TYPE_2D_ARRAY,	tcu::IVec3(64,	64,	1),	8, 1, 6),
+		Texture(IMAGE_TYPE_3D,			tcu::IVec3(64,	64,	8),	1, 1, 6),
+		Texture(IMAGE_TYPE_CUBE,		tcu::IVec3(64,	64,	1),	6, 1, 6),
+		Texture(IMAGE_TYPE_CUBE_ARRAY,	tcu::IVec3(64,	64,	1),	2*6, 1, 6),
+	};
+
+	de::MovePtr<tcu::TestCaseGroup> testGroup(new tcu::TestCaseGroup(testCtx, "load_store_lod", "Cases with imageLoad() followed by imageStore()"));
+	de::MovePtr<tcu::TestCaseGroup> testGroupWithFormat(new tcu::TestCaseGroup(testCtx, "with_format", "Declare a format layout qualifier for read images"));
+	de::MovePtr<tcu::TestCaseGroup> testGroupWithoutFormat(new tcu::TestCaseGroup(testCtx, "without_format", "Do not declare a format layout qualifier for read images"));
+
+	for (int textureNdx = 0; textureNdx < DE_LENGTH_OF_ARRAY(textures); ++textureNdx)
+	{
+		const Texture& texture = textures[textureNdx];
+		de::MovePtr<tcu::TestCaseGroup> groupWithFormatByImageViewType (new tcu::TestCaseGroup(testCtx, getImageTypeName(texture.type()).c_str(), ""));
+		de::MovePtr<tcu::TestCaseGroup> groupWithoutFormatByImageViewType (new tcu::TestCaseGroup(testCtx, getImageTypeName(texture.type()).c_str(), ""));
+		const bool isLayered = (texture.numLayers() > 1);
+
+		if (texture.type() == IMAGE_TYPE_BUFFER)
+			continue;
+
+		for (int formatNdx = 0; formatNdx < DE_LENGTH_OF_ARRAY(s_formats); ++formatNdx)
+		{
+			groupWithFormatByImageViewType->addChild(new LoadStoreTest(testCtx, getFormatShortString(s_formats[formatNdx]), "", texture, s_formats[formatNdx], s_formats[formatNdx], LoadStoreTest::FLAG_DECLARE_IMAGE_FORMAT_IN_SHADER, DE_TRUE));
+			groupWithoutFormatByImageViewType->addChild(new LoadStoreTest(testCtx, getFormatShortString(s_formats[formatNdx]), "", texture, s_formats[formatNdx], s_formats[formatNdx], 0, DE_TRUE));
+
+			if (isLayered)
+				groupWithFormatByImageViewType->addChild(new LoadStoreTest(testCtx, getFormatShortString(s_formats[formatNdx]) + "_single_layer", "",
+														 texture, s_formats[formatNdx], s_formats[formatNdx],
+														 LoadStoreTest::FLAG_SINGLE_LAYER_BIND | LoadStoreTest::FLAG_DECLARE_IMAGE_FORMAT_IN_SHADER, DE_TRUE));
+		}
+
+		testGroupWithFormat->addChild(groupWithFormatByImageViewType.release());
+		testGroupWithoutFormat->addChild(groupWithoutFormatByImageViewType.release());
+	}
+
+	testGroup->addChild(testGroupWithFormat.release());
+	testGroup->addChild(testGroupWithoutFormat.release());
+
+	return testGroup.release();
+}
+
 tcu::TestCaseGroup* createImageFormatReinterpretTests (tcu::TestContext& testCtx)
 {
 	de::MovePtr<tcu::TestCaseGroup> testGroup(new tcu::TestCaseGroup(testCtx, "format_reinterpret",	"Cases with differing texture and image formats"));
diff --git a/external/vulkancts/modules/vulkan/image/vktImageLoadStoreTests.hpp b/external/vulkancts/modules/vulkan/image/vktImageLoadStoreTests.hpp
index 6d1887f..ddbcb7c 100644
--- a/external/vulkancts/modules/vulkan/image/vktImageLoadStoreTests.hpp
+++ b/external/vulkancts/modules/vulkan/image/vktImageLoadStoreTests.hpp
@@ -37,6 +37,7 @@
 tcu::TestCaseGroup*		createImageLoadStoreTests			(tcu::TestContext& testCtx);
 tcu::TestCaseGroup*		createImageFormatReinterpretTests	(tcu::TestContext& testCtx);
 tcu::TestCaseGroup*		createImageExtendOperandsTests		(tcu::TestContext& testCtx);
+tcu::TestCaseGroup*		createImageLoadStoreLodAMDTests		(tcu::TestContext& testCtx);
 
 de::MovePtr<TestCase>	createImageQualifierRestrictCase	(tcu::TestContext& testCtx, const ImageType imageType, const std::string& name);
 
diff --git a/external/vulkancts/modules/vulkan/image/vktImageQualifiersTests.cpp b/external/vulkancts/modules/vulkan/image/vktImageQualifiersTests.cpp
index 9968e0e..ae0e02c 100644
--- a/external/vulkancts/modules/vulkan/image/vktImageQualifiersTests.cpp
+++ b/external/vulkancts/modules/vulkan/image/vktImageQualifiersTests.cpp
@@ -410,7 +410,7 @@
 
 	// Retrieve data from buffer to host memory
 	const Allocation& allocation = m_buffer->getAllocation();
-	invalidateMappedMemoryRange(deviceInterface, device, allocation.getMemory(), allocation.getOffset(), bufferSizeInBytes);
+	invalidateAlloc(deviceInterface, device, allocation);
 
 	const tcu::UVec3 computeGridSize = getShaderGridSize(m_imageType, m_imageSize);
 	tcu::ConstPixelBufferAccess resultPixelBuffer(m_format, computeGridSize.x(), computeGridSize.y(), computeGridSize.z(), allocation.getHostPtr());
diff --git a/external/vulkancts/modules/vulkan/image/vktImageTests.cpp b/external/vulkancts/modules/vulkan/image/vktImageTests.cpp
index 793c21d..74c1fcd 100644
--- a/external/vulkancts/modules/vulkan/image/vktImageTests.cpp
+++ b/external/vulkancts/modules/vulkan/image/vktImageTests.cpp
@@ -60,6 +60,7 @@
 	imageTests->addChild(createImageExtendOperandsTests(testCtx));
 	imageTests->addChild(createImageAstcDecodeModeTests(testCtx));
 	imageTests->addChild(createMisalignedCubeTests(testCtx));
+	imageTests->addChild(createImageLoadStoreLodAMDTests(testCtx));
 }
 
 } // anonymous
diff --git a/external/vulkancts/modules/vulkan/image/vktImageTexture.cpp b/external/vulkancts/modules/vulkan/image/vktImageTexture.cpp
index 68d11a0..39d9b77 100644
--- a/external/vulkancts/modules/vulkan/image/vktImageTexture.cpp
+++ b/external/vulkancts/modules/vulkan/image/vktImageTexture.cpp
@@ -81,41 +81,81 @@
 	}
 }
 
-Texture::Texture (const ImageType imageType, const tcu::IVec3& imageLayerSize, const int layers, const int samples)
-	: m_layerSize	(imageLayerSize)
-	, m_type		(imageType)
-	, m_numLayers	(layers)
-	, m_numSamples	(samples)
+	Texture::Texture (const ImageType imageType, const tcu::IVec3& imageLayerSize, const int layers, const int samples, const int levels)
+	: m_layerSize		(imageLayerSize)
+	, m_type			(imageType)
+	, m_numLayers		(layers)
+	, m_numSamples		(samples)
+	, m_numMipmapLevels	(levels)
 {
 	checkInvariants();
 }
 
 Texture::Texture (const Texture& other, const int samples)
-	: m_layerSize	(other.m_layerSize)
-	, m_type		(other.m_type)
-	, m_numLayers	(other.m_numLayers)
-	, m_numSamples	(samples)
+	: m_layerSize		(other.m_layerSize)
+	, m_type			(other.m_type)
+	, m_numLayers		(other.m_numLayers)
+	, m_numSamples		(samples)
+	, m_numMipmapLevels	(other.m_numMipmapLevels)
 {
 	checkInvariants();
 }
 
-tcu::IVec3 Texture::size (void) const
+static inline deUint32 minify (deUint32 value, deUint32 mipmapLevel)
 {
+	return deMax32(value >> mipmapLevel, 1);
+}
+
+tcu::IVec3 Texture::layerSize (const int mipmapLevel) const
+{
+	tcu::IVec3 size = m_layerSize;
+
+	DE_ASSERT(mipmapLevel < numMipmapLevels());
+
+	if (mipmapLevel == 0)
+		return size;
+
+	switch (m_type)
+	{
+	case IMAGE_TYPE_3D:
+		size.z() = minify(size.z(), mipmapLevel);
+		/* fall-through */
+	case IMAGE_TYPE_CUBE:
+	case IMAGE_TYPE_CUBE_ARRAY:
+	case IMAGE_TYPE_2D_ARRAY:
+	case IMAGE_TYPE_2D:
+		size.y() = minify(size.y(), mipmapLevel);
+		/* fall-through */
+	case IMAGE_TYPE_1D_ARRAY:
+	case IMAGE_TYPE_1D:
+		size.x() = minify(size.x(), mipmapLevel);
+		break;
+	default:
+		DE_FATAL("Not supported image type");
+	}
+	return size;
+}
+
+tcu::IVec3 Texture::size (const int mipmapLevel) const
+{
+	// texture.size() includes number of layers in one component. Minify only the relevant component for the mipmap level.
+	tcu::IVec3 size = layerSize(mipmapLevel);
+
 	switch (m_type)
 	{
 		case IMAGE_TYPE_1D:
 		case IMAGE_TYPE_BUFFER:
 		case IMAGE_TYPE_2D:
 		case IMAGE_TYPE_3D:
-			return m_layerSize;
+			return size;
 
 		case IMAGE_TYPE_1D_ARRAY:
-			return tcu::IVec3(m_layerSize.x(), m_numLayers, 1);
+			return tcu::IVec3(size.x(), m_numLayers, 1);
 
 		case IMAGE_TYPE_2D_ARRAY:
 		case IMAGE_TYPE_CUBE:
 		case IMAGE_TYPE_CUBE_ARRAY:
-			return tcu::IVec3(m_layerSize.x(), m_layerSize.y(), m_numLayers);
+			return tcu::IVec3(size.x(), size.y(), m_numLayers);
 
 		default:
 			DE_FATAL("Internal error");
diff --git a/external/vulkancts/modules/vulkan/image/vktImageTexture.hpp b/external/vulkancts/modules/vulkan/image/vktImageTexture.hpp
index 8edae9f..8b46c81 100644
--- a/external/vulkancts/modules/vulkan/image/vktImageTexture.hpp
+++ b/external/vulkancts/modules/vulkan/image/vktImageTexture.hpp
@@ -31,21 +31,23 @@
 namespace image
 {
 
-//! Texture buffer/image abstraction. Helps managing size and number of layers.
+//! Texture buffer/image abstraction. Helps managing size, number of layers and number of mipmap levels.
 class Texture
 {
 public:
-						Texture			(const ImageType imageType, const tcu::IVec3& imageLayerSize, const int layers, const int samples = 1);
+						Texture			(const ImageType imageType, const tcu::IVec3& imageLayerSize, const int layers, const int samples = 1, const int levels = 1);
 						Texture			(const Texture& other, const int samples);
 
 	ImageType			type			(void) const { return m_type; }			//!< Texture type
-	tcu::IVec3			layerSize		(void) const { return m_layerSize; }	//!< Size of a single layer
+	tcu::IVec3			layerSize		(const int mipLevel = 0) const;			//!< Size of a single layer for mipmap level 0
 	int					numLayers		(void) const { return m_numLayers; }	//!< Number of array layers (for array and cube types)
 	int					numSamples		(void) const { return m_numSamples; }	//!< Number of samples per texel (multisampled texture)
 
-	tcu::IVec3			size			(void) const;	//!< Size including number of layers in additional dimension (e.g. z in 2d texture)
-	int					dimension		(void) const;	//!< Coordinate dimension used for addressing (e.g. 3 (x,y,z) for 2d array)
-	int					layerDimension	(void) const;	//!< Coordinate dimension used for addressing a single layer (e.g. 2 (x,y) for 2d array)
+	tcu::IVec3			size			(const int mipLevel = 0) const;			//!< Size including number of layers in additional dimension (e.g. z in 2d texture) for mipmap level 0
+	int					dimension		(void) const;							//!< Coordinate dimension used for addressing (e.g. 3 (x,y,z) for 2d array)
+	int					layerDimension	(void) const;							//!< Coordinate dimension used for addressing a single layer (e.g. 2 (x,y) for 2d array)
+
+	int					numMipmapLevels	(void) const { return m_numMipmapLevels; };	//!< Number of levels of detail (mipmap texture)
 
 private:
 	void				checkInvariants	(void) const;
@@ -54,6 +56,7 @@
 	const ImageType		m_type;
 	const int			m_numLayers;
 	const int			m_numSamples;
+	const int			m_numMipmapLevels;
 };
 
 inline bool isCube (const Texture& texture)
diff --git a/external/vulkancts/modules/vulkan/memory/vktMemoryExternalMemoryHostTests.cpp b/external/vulkancts/modules/vulkan/memory/vktMemoryExternalMemoryHostTests.cpp
index 6b5341a..ee55580 100644
--- a/external/vulkancts/modules/vulkan/memory/vktMemoryExternalMemoryHostTests.cpp
+++ b/external/vulkancts/modules/vulkan/memory/vktMemoryExternalMemoryHostTests.cpp
@@ -425,10 +425,17 @@
 
 Move<VkImage>  ExternalMemoryHostRenderImageTestInstance::createImage (VkFormat format, VkImageTiling tiling, VkImageUsageFlags usage)
 {
-	const VkImageCreateInfo			imageCreateInfo =
+	const vk::VkExternalMemoryImageCreateInfo	externalInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
+		DE_NULL,
+		(vk::VkExternalMemoryHandleTypeFlags)VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT
+	};
+
+	const VkImageCreateInfo						imageCreateInfo =
 	{
 		VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,	// VkStructureType			sType
-		DE_NULL,								// const void*				pNext
+		&externalInfo,							// const void*				pNext
 		0u,										// VkImageCreateFlags		flags
 		VK_IMAGE_TYPE_2D,						// VkImageType				imageType
 		format,									// VkFormat					format
@@ -507,7 +514,7 @@
 	void* const							mapPtr							= m_vertexBufferAllocation->getHostPtr();
 
 	deMemcpy(mapPtr, triangleData, sizeof(triangleData));
-	flushMappedMemoryRange(m_vkd, m_device, m_vertexBufferAllocation->getMemory(), m_vertexBufferAllocation->getOffset(), sizeof(triangleData));
+	flushAlloc(m_vkd, m_device, *m_vertexBufferAllocation);
 
 	return buffer;
 }
@@ -948,10 +955,17 @@
 
 Move<VkBuffer> ExternalMemoryHostSynchronizationTestInstance::createDataBuffer (VkDeviceSize size, VkBufferUsageFlags usage)
 {
-	const VkBufferCreateInfo		dataBufferCreateInfo =
+	const vk::VkExternalMemoryBufferCreateInfo	externalInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
+		DE_NULL,
+		(vk::VkExternalMemoryHandleTypeFlags)VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT
+	};
+
+	const VkBufferCreateInfo					dataBufferCreateInfo =
 	{
 		VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,	// VkStructureType		sType
-		DE_NULL,								// const void*			pNext
+		&externalInfo,							// const void*			pNext
 		0,										// VkBufferCreateFlags	flag
 		size,									// VkDeviceSize			size
 		usage,									// VkBufferUsageFlags	usage
diff --git a/external/vulkancts/modules/vulkan/memory/vktMemoryPipelineBarrierTests.cpp b/external/vulkancts/modules/vulkan/memory/vktMemoryPipelineBarrierTests.cpp
index f02681d..9951b04 100644
--- a/external/vulkancts/modules/vulkan/memory/vktMemoryPipelineBarrierTests.cpp
+++ b/external/vulkancts/modules/vulkan/memory/vktMemoryPipelineBarrierTests.cpp
@@ -1262,7 +1262,7 @@
 		const vk::DeviceInterface&	vkd		= context.getContext().getDeviceInterface();
 		const vk::VkDevice			device	= context.getContext().getDevice();
 
-		vk::invalidateMappedMemoryRange(vkd, device, m_memory, 0, m_size);
+		vk::invalidateMappedMemoryRange(vkd, device, m_memory, 0, VK_WHOLE_SIZE);
 	}
 
 private:
@@ -1293,7 +1293,7 @@
 		const vk::DeviceInterface&	vkd		= context.getContext().getDeviceInterface();
 		const vk::VkDevice			device	= context.getContext().getDevice();
 
-		vk::flushMappedMemoryRange(vkd, device, m_memory, 0, m_size);
+		vk::flushMappedMemoryRange(vkd, device, m_memory, 0, VK_WHOLE_SIZE);
 	}
 
 private:
@@ -2341,7 +2341,7 @@
 		void* const	ptr		= mapMemory(vkd, device, *m_memory, m_bufferSize);
 		bool		isOk	= true;
 
-		vk::invalidateMappedMemoryRange(vkd, device, *m_memory, 0, m_bufferSize);
+		vk::invalidateMappedMemoryRange(vkd, device, *m_memory, 0, VK_WHOLE_SIZE);
 
 		{
 			const deUint8* const data = (const deUint8*)ptr;
@@ -2421,7 +2421,7 @@
 				data[ndx] = rng.getUint8();
 		}
 
-		vk::flushMappedMemoryRange(vkd, device, *m_memory, 0, m_bufferSize);
+		vk::flushMappedMemoryRange(vkd, device, *m_memory, 0, VK_WHOLE_SIZE);
 		vkd.unmapMemory(device, *m_memory);
 	}
 }
@@ -2668,7 +2668,7 @@
 	{
 		void* const	ptr		= mapMemory(vkd, device, *memory, 4 * m_imageWidth * m_imageHeight);
 
-		vk::invalidateMappedMemoryRange(vkd, device, *memory, 0,  4 * m_imageWidth * m_imageHeight);
+		invalidateMappedMemoryRange(vkd, device, *memory, 0, VK_WHOLE_SIZE);
 
 		{
 			const deUint8* const	data = (const deUint8*)ptr;
@@ -2847,7 +2847,7 @@
 					data[ndx] = rng.getUint8();
 			}
 
-			vk::flushMappedMemoryRange(vkd, device, *memory, 0, 4 * m_imageWidth * m_imageHeight);
+			vk::flushMappedMemoryRange(vkd, device, *memory, 0, VK_WHOLE_SIZE);
 			vkd.unmapMemory(device, *memory);
 		}
 
@@ -3008,7 +3008,7 @@
 		const ConstPixelBufferAccess	referenceImage	(context.getReferenceImage().getAccess());
 		const ConstPixelBufferAccess	resultImage		(TextureFormat(TextureFormat::RGBA, TextureFormat::UNORM_INT8), m_imageWidth, m_imageHeight, 1, ptr);
 
-		vk::invalidateMappedMemoryRange(vkd, device, *m_memory, 0, m_bufferSize);
+		vk::invalidateMappedMemoryRange(vkd, device, *m_memory, 0, VK_WHOLE_SIZE);
 
 		if (!tcu::intThresholdCompare(context.getLog(), (de::toString(commandIndex) + ":" + getName()).c_str(), (de::toString(commandIndex) + ":" + getName()).c_str(), referenceImage, resultImage, UVec4(0), tcu::COMPARE_LOG_ON_ERROR))
 			resultCollector.fail(de::toString(commandIndex) + ":" + getName() + " Image comparison failed");
@@ -3072,7 +3072,7 @@
 				data[ndx] = rng.getUint8();
 		}
 
-		vk::flushMappedMemoryRange(vkd, device, *m_memory, 0, m_bufferSize);
+		vk::flushMappedMemoryRange(vkd, device, *m_memory, 0, VK_WHOLE_SIZE);
 		vkd.unmapMemory(device, *m_memory);
 	}
 }
@@ -3282,7 +3282,7 @@
 					data[ndx] = rng.getUint8();
 			}
 
-			vk::flushMappedMemoryRange(vkd, device, *memory, 0, 4 * m_imageWidth * m_imageHeight);
+			vk::flushMappedMemoryRange(vkd, device, *memory, 0, VK_WHOLE_SIZE);
 			vkd.unmapMemory(device, *memory);
 		}
 
@@ -3575,7 +3575,7 @@
 	{
 		void* const	ptr		= mapMemory(vkd, device, *memory, 4 * m_imageWidth * m_imageHeight);
 
-		vk::invalidateMappedMemoryRange(vkd, device, *memory, 0,  4 * m_imageWidth * m_imageHeight);
+		vk::invalidateMappedMemoryRange(vkd, device, *memory, 0, VK_WHOLE_SIZE);
 
 		{
 			const deUint8* const			data		= (const deUint8*)ptr;
@@ -3764,7 +3764,7 @@
 					data[ndx] = rng.getUint8();
 			}
 
-			vk::flushMappedMemoryRange(vkd, device, *memory, 0, 4 * m_srcImageWidth * m_srcImageHeight);
+			vk::flushMappedMemoryRange(vkd, device, *memory, 0, VK_WHOLE_SIZE);
 			vkd.unmapMemory(device, *memory);
 		}
 
@@ -4119,7 +4119,7 @@
 	{
 		void* const	ptr		= mapMemory(vkd, device, *memory, 4 * m_dstImageWidth * m_dstImageHeight);
 
-		vk::invalidateMappedMemoryRange(vkd, device, *memory, 0,  4 * m_dstImageWidth * m_dstImageHeight);
+		vk::invalidateMappedMemoryRange(vkd, device, *memory, 0, VK_WHOLE_SIZE);
 
 		if (m_scale == BLIT_SCALE_10)
 		{
@@ -4515,7 +4515,7 @@
 		{
 			void* const	ptr		= mapMemory(vkd, device, *memory, 4 * m_targetWidth * m_targetHeight);
 
-			vk::invalidateMappedMemoryRange(vkd, device, *memory, 0,  4 * m_targetWidth * m_targetHeight);
+			vk::invalidateMappedMemoryRange(vkd, device, *memory, 0, VK_WHOLE_SIZE);
 
 			{
 				const deUint8* const			data		= (const deUint8*)ptr;
@@ -4901,6 +4901,10 @@
 	void							submit						(SubmitContext& context);
 	void							verify						(VerifyRenderPassContext&, size_t);
 
+protected:
+
+	deUint32						calculateBufferPartSize		(size_t descriptorSetNdx) const;
+
 private:
 	PipelineResources				m_resources;
 	vk::Move<vk::VkDescriptorPool>	m_descriptorPool;
@@ -4933,7 +4937,9 @@
 	const vk::Unique<vk::VkShaderModule>		fragmentShaderModule	(vk::createShaderModule(vkd, device, context.getBinaryCollection().get("render-white.frag"), 0));
 	vector<vk::VkDescriptorSetLayoutBinding>	bindings;
 
+	// make sure buffer size is multiple of 16 (in glsl we use uvec4 to store 16 values)
 	m_bufferSize = context.getBufferSize();
+	m_bufferSize = static_cast<vk::VkDeviceSize>(m_bufferSize / 16u) * 16u;
 
 	{
 		const vk::VkDescriptorSetLayoutBinding binding =
@@ -4993,9 +4999,7 @@
 			{
 				context.getBuffer(),
 				(vk::VkDeviceSize)(descriptorSetNdx * (size_t)MAX_UNIFORM_BUFFER_SIZE),
-				m_bufferSize < (descriptorSetNdx + 1) * (vk::VkDeviceSize)MAX_UNIFORM_BUFFER_SIZE
-					? m_bufferSize - descriptorSetNdx * (vk::VkDeviceSize)MAX_UNIFORM_BUFFER_SIZE
-					: (vk::VkDeviceSize)MAX_UNIFORM_BUFFER_SIZE
+				calculateBufferPartSize(descriptorSetNdx)
 			};
 			const vk::VkWriteDescriptorSet			write		=
 			{
@@ -5025,9 +5029,7 @@
 
 	for (size_t descriptorSetNdx = 0; descriptorSetNdx < m_descriptorSets.size(); descriptorSetNdx++)
 	{
-		const size_t	size	= (size_t)(m_bufferSize < (descriptorSetNdx + 1) * (vk::VkDeviceSize)MAX_UNIFORM_BUFFER_SIZE
-								? m_bufferSize - descriptorSetNdx * (vk::VkDeviceSize)MAX_UNIFORM_BUFFER_SIZE
-								: (size_t)MAX_UNIFORM_BUFFER_SIZE);
+		const size_t	size	= calculateBufferPartSize(descriptorSetNdx);
 		const deUint32	count	= (deUint32)(size / 2);
 
 		vkd.cmdBindDescriptorSets(commandBuffer, vk::VK_PIPELINE_BIND_POINT_GRAPHICS, *m_resources.pipelineLayout, 0u, 1u, &m_descriptorSets[descriptorSetNdx], 0u, DE_NULL);
@@ -5040,9 +5042,7 @@
 	for (size_t descriptorSetNdx = 0; descriptorSetNdx < m_descriptorSets.size(); descriptorSetNdx++)
 	{
 		const size_t	offset	= descriptorSetNdx * MAX_UNIFORM_BUFFER_SIZE;
-		const size_t	size	= (size_t)(m_bufferSize < (descriptorSetNdx + 1) * (vk::VkDeviceSize)MAX_UNIFORM_BUFFER_SIZE
-								? m_bufferSize - descriptorSetNdx * (vk::VkDeviceSize)MAX_UNIFORM_BUFFER_SIZE
-								: (size_t)MAX_UNIFORM_BUFFER_SIZE);
+		const size_t	size	= calculateBufferPartSize(descriptorSetNdx);
 		const size_t	count	= size / 2;
 
 		for (size_t pos = 0; pos < count; pos++)
@@ -5055,6 +5055,14 @@
 	}
 }
 
+deUint32 RenderVertexUniformBuffer::calculateBufferPartSize(size_t descriptorSetNdx) const
+{
+	deUint32 size = static_cast<deUint32>(m_bufferSize) - static_cast<deUint32>(descriptorSetNdx) * MAX_UNIFORM_BUFFER_SIZE;
+	if (size < MAX_UNIFORM_BUFFER_SIZE)
+		return size;
+	return MAX_UNIFORM_BUFFER_SIZE;
+}
+
 class RenderVertexUniformTexelBuffer : public RenderPassCommand
 {
 public:
@@ -5985,6 +5993,10 @@
 	void							submit							(SubmitContext& context);
 	void							verify							(VerifyRenderPassContext&, size_t);
 
+protected:
+
+	deUint32						calculateBufferPartSize			(size_t descriptorSetNdx) const;
+
 private:
 	PipelineResources				m_resources;
 	vk::Move<vk::VkDescriptorPool>	m_descriptorPool;
@@ -5993,6 +6005,7 @@
 	vk::VkDeviceSize				m_bufferSize;
 	size_t							m_targetWidth;
 	size_t							m_targetHeight;
+	deUint32						m_valuesPerPixel;
 };
 
 RenderFragmentUniformBuffer::~RenderFragmentUniformBuffer (void)
@@ -6019,7 +6032,9 @@
 	const vk::Unique<vk::VkShaderModule>		fragmentShaderModule	(vk::createShaderModule(vkd, device, context.getBinaryCollection().get("uniform-buffer.frag"), 0));
 	vector<vk::VkDescriptorSetLayoutBinding>	bindings;
 
+	// make sure buffer is smaller then MAX_SIZE and is multiple of 16 (in glsl we use uvec4 to store 16 values)
 	m_bufferSize	= de::min(context.getBufferSize(), (vk::VkDeviceSize)MAX_SIZE);
+	m_bufferSize	= static_cast<vk::VkDeviceSize>(m_bufferSize / 16u) * 16u;
 	m_targetWidth	= context.getTargetWidth();
 	m_targetHeight	= context.getTargetHeight();
 
@@ -6039,7 +6054,7 @@
 	{
 		vk::VK_SHADER_STAGE_FRAGMENT_BIT,
 		0u,
-		8u
+		12u
 	};
 
 	createPipelineWithResources(vkd, device, renderPass, subpass, *vertexShaderModule, *fragmentShaderModule, context.getTargetWidth(), context.getTargetHeight(),
@@ -6065,6 +6080,8 @@
 
 		m_descriptorPool = vk::createDescriptorPool(vkd, device, &createInfo);
 		m_descriptorSets.resize(descriptorCount);
+
+		m_valuesPerPixel = (deUint32)divRoundUp<size_t>(descriptorCount * de::min<size_t>((size_t)m_bufferSize / 4, MAX_UNIFORM_BUFFER_SIZE / 4), m_targetWidth * m_targetHeight);
 	}
 
 	for (size_t descriptorSetNdx = 0; descriptorSetNdx < m_descriptorSets.size(); descriptorSetNdx++)
@@ -6087,9 +6104,7 @@
 			{
 				context.getBuffer(),
 				(vk::VkDeviceSize)(descriptorSetNdx * (size_t)MAX_UNIFORM_BUFFER_SIZE),
-				m_bufferSize < (descriptorSetNdx + 1) * (vk::VkDeviceSize)MAX_UNIFORM_BUFFER_SIZE
-					? m_bufferSize - descriptorSetNdx * (vk::VkDeviceSize)MAX_UNIFORM_BUFFER_SIZE
-					: (vk::VkDeviceSize)MAX_UNIFORM_BUFFER_SIZE
+				calculateBufferPartSize(descriptorSetNdx)
 			};
 			const vk::VkWriteDescriptorSet			write		=
 			{
@@ -6123,10 +6138,12 @@
 		{
 			const deUint32	callId;
 			const deUint32	valuesPerPixel;
+			const deUint32	bufferSize;
 		} callParams =
 		{
 			(deUint32)descriptorSetNdx,
-			(deUint32)divRoundUp<size_t>(m_descriptorSets.size() * (MAX_UNIFORM_BUFFER_SIZE / 4), m_targetWidth * m_targetHeight)
+			m_valuesPerPixel,
+			calculateBufferPartSize(descriptorSetNdx) / 16u
 		};
 
 		vkd.cmdBindDescriptorSets(commandBuffer, vk::VK_PIPELINE_BIND_POINT_GRAPHICS, *m_resources.pipelineLayout, 0u, 1u, &m_descriptorSets[descriptorSetNdx], 0u, DE_NULL);
@@ -6137,35 +6154,34 @@
 
 void RenderFragmentUniformBuffer::verify (VerifyRenderPassContext& context, size_t)
 {
-	const deUint32	valuesPerPixel	= (deUint32)divRoundUp<size_t>(m_descriptorSets.size() * (MAX_UNIFORM_BUFFER_SIZE / 4), m_targetWidth * m_targetHeight);
-	const size_t	arraySize		= MAX_UNIFORM_BUFFER_SIZE / (sizeof(deUint32) * 4);
-	const size_t	arrayIntSize	= arraySize * 4;
+	const size_t	arrayIntSize	= MAX_UNIFORM_BUFFER_SIZE / sizeof(deUint32);
 
 	for (int y = 0; y < context.getReferenceTarget().getSize().y(); y++)
 	for (int x = 0; x < context.getReferenceTarget().getSize().x(); x++)
 	{
-		const size_t firstDescriptorSetNdx = de::min<size_t>((y * 256u + x) / (arrayIntSize / valuesPerPixel), m_descriptorSets.size() - 1);
+		const deUint32	id						= (deUint32)y * 256u + (deUint32)x;
+		const size_t	firstDescriptorSetNdx	= de::min<size_t>(id / (arrayIntSize / m_valuesPerPixel), m_descriptorSets.size() - 1);
 
 		for (size_t descriptorSetNdx = firstDescriptorSetNdx; descriptorSetNdx < m_descriptorSets.size(); descriptorSetNdx++)
 		{
 			const size_t	offset	= descriptorSetNdx * MAX_UNIFORM_BUFFER_SIZE;
 			const deUint32	callId	= (deUint32)descriptorSetNdx;
+			const deUint32	count	= calculateBufferPartSize(descriptorSetNdx) / 16u;
 
-			const deUint32	id		= callId * ((deUint32)arrayIntSize / valuesPerPixel) + (deUint32)y * 256u + (deUint32)x;
-
-			if (y * 256u + x < callId * (arrayIntSize / valuesPerPixel))
+			if (id < callId * (arrayIntSize / m_valuesPerPixel))
 				continue;
 			else
 			{
 				deUint32 value = id;
 
-				for (deUint32 i = 0; i < valuesPerPixel; i++)
+				for (deUint32 i = 0; i < m_valuesPerPixel; i++)
 				{
-					value	= ((deUint32)context.getReference().get(offset + (value % (MAX_UNIFORM_BUFFER_SIZE / sizeof(deUint32))) * 4 + 0))
-							| (((deUint32)context.getReference().get(offset + (value % (MAX_UNIFORM_BUFFER_SIZE / sizeof(deUint32))) * 4 + 1)) << 8u)
-							| (((deUint32)context.getReference().get(offset + (value % (MAX_UNIFORM_BUFFER_SIZE / sizeof(deUint32))) * 4 + 2)) << 16u)
-							| (((deUint32)context.getReference().get(offset + (value % (MAX_UNIFORM_BUFFER_SIZE / sizeof(deUint32))) * 4 + 3)) << 24u);
-
+					// in shader UBO has up to 64 items of uvec4, each uvec4 contains 16 values
+					size_t index = offset + size_t((value % count) * 16u) + size_t((value % 4u) * 4u);
+					value	= (((deUint32)context.getReference().get(index + 0)))
+							| (((deUint32)context.getReference().get(index + 1)) << 8u)
+							| (((deUint32)context.getReference().get(index + 2)) << 16u)
+							| (((deUint32)context.getReference().get(index + 3)) << 24u);
 				}
 				const UVec4	vec	((value >>  0u) & 0xFFu,
 								 (value >>  8u) & 0xFFu,
@@ -6178,6 +6194,14 @@
 	}
 }
 
+deUint32 RenderFragmentUniformBuffer::calculateBufferPartSize(size_t descriptorSetNdx) const
+{
+	deUint32 size = static_cast<deUint32>(m_bufferSize) - static_cast<deUint32>(descriptorSetNdx) * MAX_UNIFORM_BUFFER_SIZE;
+	if (size < MAX_UNIFORM_BUFFER_SIZE)
+		return size;
+	return MAX_UNIFORM_BUFFER_SIZE;
+}
+
 class RenderFragmentStorageBuffer : public RenderPassCommand
 {
 public:
@@ -6225,7 +6249,9 @@
 	const vk::Unique<vk::VkShaderModule>		fragmentShaderModule	(vk::createShaderModule(vkd, device, context.getBinaryCollection().get("storage-buffer.frag"), 0));
 	vector<vk::VkDescriptorSetLayoutBinding>	bindings;
 
+	// make sure buffer size is multiple of 16 (in glsl we use uvec4 to store 16 values)
 	m_bufferSize	= context.getBufferSize();
+	m_bufferSize	= static_cast<vk::VkDeviceSize>(m_bufferSize / 16u) * 16u;
 	m_targetWidth	= context.getTargetWidth();
 	m_targetHeight	= context.getTargetHeight();
 
@@ -6583,7 +6609,7 @@
 
 				for (deUint32 i = 0; i < valuesPerPixel; i++)
 				{
-					value	= ((deUint32)context.getReference().get( offset + (value % count) * 4 + 0))
+					value	=  ((deUint32)context.getReference().get(offset + (value % count) * 4 + 0))
 							| (((deUint32)context.getReference().get(offset + (value % count) * 4 + 1)) << 8u)
 							| (((deUint32)context.getReference().get(offset + (value % count) * 4 + 2)) << 16u)
 							| (((deUint32)context.getReference().get(offset + (value % count) * 4 + 3)) << 24u);
@@ -9672,15 +9698,16 @@
 					"{\n"
 					"\tuint callId;\n"
 					"\tuint valuesPerPixel;\n"
+					"\tuint bufferSize;\n"
 					"} pushC;\n"
 					"void main (void) {\n"
-					"\thighp uint id = pushC.callId * (" << arrayIntSize << "u / pushC.valuesPerPixel) + uint(gl_FragCoord.y) * 256u + uint(gl_FragCoord.x);\n"
+					"\thighp uint id = uint(gl_FragCoord.y) * 256u + uint(gl_FragCoord.x);\n"
 					"\tif (uint(gl_FragCoord.y) * 256u + uint(gl_FragCoord.x) < pushC.callId * (" << arrayIntSize  << "u / pushC.valuesPerPixel))\n"
 					"\t\tdiscard;\n"
 					"\thighp uint value = id;\n"
 					"\tfor (uint i = 0u; i < pushC.valuesPerPixel; i++)\n"
 					"\t{\n"
-					"\t\thighp uvec4 vecVal = block.values[(value / 4u) % " << arraySize << "u];\n"
+					"\t\thighp uvec4 vecVal = block.values[value % pushC.bufferSize];\n"
 					"\t\tif ((value % 4u) == 0u)\n"
 					"\t\t\tvalue = vecVal.x;\n"
 					"\t\telse if ((value % 4u) == 1u)\n"
diff --git a/external/vulkancts/modules/vulkan/memory_model/vktMemoryModelMessagePassing.cpp b/external/vulkancts/modules/vulkan/memory_model/vktMemoryModelMessagePassing.cpp
index 6063a9d..8709807 100644
--- a/external/vulkancts/modules/vulkan/memory_model/vktMemoryModelMessagePassing.cpp
+++ b/external/vulkancts/modules/vulkan/memory_model/vktMemoryModelMessagePassing.cpp
@@ -1608,7 +1608,7 @@
 	tcu::TestLog& log = m_context.getTestContext().getLog();
 
 	deUint32 *ptr = (deUint32 *)copyBuffer->getAllocation().getHostPtr();
-	invalidateMappedMemoryRange(vk, device, copyBuffer->getAllocation().getMemory(), copyBuffer->getAllocation().getOffset(), bufferSizes[2]);
+	invalidateAlloc(vk, device, copyBuffer->getAllocation());
 	qpTestResult res = QP_TEST_RESULT_PASS;
 
 	deUint32 numErrors = 0;
diff --git a/external/vulkancts/modules/vulkan/modifiers/CMakeLists.txt b/external/vulkancts/modules/vulkan/modifiers/CMakeLists.txt
new file mode 100644
index 0000000..4183d2d
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/modifiers/CMakeLists.txt
@@ -0,0 +1,20 @@
+include_directories(
+	..
+	../image
+	../util
+	)
+
+set(DEQP_VK_MODIFIERS_SRCS
+	vktModifiersTests.cpp
+	vktModifiersTests.hpp
+	)
+
+set(DEQP_VK_MODIFIERS_LIBS
+	tcutil
+	vkutil
+	)
+
+PCH(DEQP_VK_MODIFIERS_SRCS ../pch.cpp)
+
+add_library(deqp-vk-modifiers STATIC ${DEQP_VK_MODIFIERS_SRCS})
+target_link_libraries(deqp-vk-modifiers ${DEQP_VK_MODIFIERS_LIBS})
diff --git a/external/vulkancts/modules/vulkan/modifiers/vktModifiersTests.cpp b/external/vulkancts/modules/vulkan/modifiers/vktModifiersTests.cpp
new file mode 100644
index 0000000..3e6f3be
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/modifiers/vktModifiersTests.cpp
@@ -0,0 +1,409 @@
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2020 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Modifiers tests
+ *//*--------------------------------------------------------------------*/
+
+#include "vktModifiersTests.hpp"
+#include "vktTestCase.hpp"
+#include "vktTestGroupUtil.hpp"
+#include "vktTestCaseUtil.hpp"
+#include "vkRefUtil.hpp"
+#include "vkBufferWithMemory.hpp"
+#include "vkCmdUtil.hpp"
+#include "vkObjUtil.hpp"
+#include "vkImageUtil.hpp"
+#include "vkTypeUtil.hpp"
+#include "tcuTestLog.hpp"
+#include "deUniquePtr.hpp"
+#include "deStringUtil.hpp"
+
+#include <string>
+
+namespace vkt
+{
+namespace modifiers
+{
+namespace
+{
+using namespace vk;
+using tcu::UVec2;
+using tcu::TestLog;
+
+void checkModifiersSupported (Context& context, VkFormat)
+{
+	if (!context.isDeviceFunctionalitySupported("VK_EXT_image_drm_format_modifier"))
+		TCU_THROW(NotSupportedError, "VK_EXT_image_drm_format_modifier is not supported");
+
+	if (!context.isInstanceFunctionalitySupported("VK_KHR_get_physical_device_properties2"))
+		TCU_THROW(TestError, "VK_KHR_get_physical_device_properties2 not supported");
+
+	if (!context.isDeviceFunctionalitySupported("VK_KHR_bind_memory2"))
+		TCU_THROW(TestError, "VK_KHR_bind_memory2 not supported");
+
+	if (!context.isDeviceFunctionalitySupported("VK_KHR_image_format_list"))
+		TCU_THROW(TestError, "VK_KHR_image_format_list not supported");
+}
+
+std::string getFormatCaseName (VkFormat format)
+{
+	return de::toLower(de::toString(getFormatStr(format)).substr(10));
+}
+
+std::vector<VkDrmFormatModifierPropertiesEXT> getDrmFormatModifiers (const InstanceInterface&	vki,
+																	 VkPhysicalDevice			physicalDevice,
+																	 VkFormat					format)
+{
+	VkDrmFormatModifierPropertiesListEXT			modifierProperties {};
+	modifierProperties.sType = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT;
+	VkFormatProperties2								formatProperties {};
+	std::vector<VkDrmFormatModifierPropertiesEXT>	drmFormatModifiers;
+	formatProperties.sType = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2;
+	formatProperties.pNext = &modifierProperties;
+
+	vki.getPhysicalDeviceFormatProperties2(physicalDevice, format, &formatProperties);
+
+	drmFormatModifiers.resize(modifierProperties.drmFormatModifierCount);
+	modifierProperties.pDrmFormatModifierProperties = drmFormatModifiers.data();
+
+	vki.getPhysicalDeviceFormatProperties2(physicalDevice, format, &formatProperties);
+
+	return drmFormatModifiers;
+}
+
+VkImageFormatProperties2 getImageFormatPropertiesForModifier (const InstanceInterface&	vki,
+															  VkPhysicalDevice			physicalDevice,
+															  const VkFormat*			formats,
+															  const deUint32			nFormats,
+															  const VkImageType			imageType,
+															  const VkImageUsageFlags	imageUsages,
+															  const deUint64			drmFormatModifier)
+{
+	const VkPhysicalDeviceImageDrmFormatModifierInfoEXT	imageFormatModifierInfo	=
+	{
+		VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT,
+		DE_NULL,
+		drmFormatModifier,
+		VK_SHARING_MODE_EXCLUSIVE,
+		0,
+		DE_NULL,
+	};
+	const VkImageFormatListCreateInfoKHR				imageFormatListInfo		=
+	{
+		VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR,
+		&imageFormatModifierInfo,
+		nFormats,
+		formats,
+	};
+	const VkPhysicalDeviceImageFormatInfo2				imageFormatInfo			=
+	{
+		VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
+		&imageFormatListInfo,
+		formats[0],
+		imageType,
+		VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT,
+		imageUsages,
+		0,
+	};
+	VkImageFormatProperties2							imageProperties {};
+	imageProperties.sType = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2;
+
+	if (vki.getPhysicalDeviceImageFormatProperties2(physicalDevice, &imageFormatInfo, &imageProperties) == VK_ERROR_FORMAT_NOT_SUPPORTED)
+	{
+		TCU_THROW(NotSupportedError, de::toString(formats[0]) + " does not support any DRM modifiers");
+	};
+
+	return imageProperties;
+}
+
+tcu::TestStatus listModifiersCase (Context& context, VkFormat format)
+{
+	TestLog&										log					= context.getTestContext().getLog();
+	const InstanceInterface&						vki					= context.getInstanceInterface();
+	std::vector<VkDrmFormatModifierPropertiesEXT>	drmFormatModifiers	= getDrmFormatModifiers(vki, context.getPhysicalDevice(), format);
+
+	if (drmFormatModifiers.size() < 1)
+		TCU_THROW(NotSupportedError, de::toString(format) + " does not support any DRM modifiers");
+
+	for (deUint32 m = 0; m < drmFormatModifiers.size(); m++) {
+		VkImageFormatProperties2					imageProperties		= getImageFormatPropertiesForModifier(vki, context.getPhysicalDevice(),
+																											  &format, 1u, VK_IMAGE_TYPE_2D,
+																											  VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT,
+																											  drmFormatModifiers[m].drmFormatModifier);
+
+		TCU_CHECK(imageProperties.imageFormatProperties.maxExtent.width >= 1 && imageProperties.imageFormatProperties.maxExtent.height >= 1);
+		TCU_CHECK(imageProperties.imageFormatProperties.maxArrayLayers >= 1);
+
+		log << TestLog::Message
+			<< "format modifier " << m << ":\n"
+			<< drmFormatModifiers[m] << "\n"
+			<< imageProperties
+			<< TestLog::EndMessage;
+	}
+
+	return tcu::TestStatus::pass("OK");
+}
+
+Move<VkImage> createImageWithDrmFormatModifiers (const DeviceInterface&			vkd,
+												 const VkDevice					device,
+												 const VkImageType				imageType,
+												 const VkImageUsageFlags		imageUsages,
+												 const std::vector<VkFormat>					formats,
+												 const UVec2&					size,
+												 const std::vector<deUint64>&	drmFormatModifiers)
+{
+	const VkImageDrmFormatModifierListCreateInfoEXT	modifierListCreateInfo =
+	{
+		VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT,
+		DE_NULL,
+		(deUint32)drmFormatModifiers.size(),
+		drmFormatModifiers.data(),
+	};
+	const VkImageFormatListCreateInfoKHR			imageFormatListInfo			=
+	{
+		VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR,
+		&modifierListCreateInfo,
+		static_cast<deUint32>(formats.size()),
+		formats.data(),
+	};
+
+	const VkImageCreateInfo							createInfo	=
+	{
+		VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
+		&imageFormatListInfo,
+		0,
+		imageType,
+		formats.front(),
+		makeExtent3D(size.x(), size.y(), 1u),
+		1u,		// mipLevels
+		1u,		// arrayLayers
+		VK_SAMPLE_COUNT_1_BIT,
+		VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT,
+		imageUsages,
+		VK_SHARING_MODE_EXCLUSIVE,
+		0u,
+		(const deUint32*)DE_NULL,
+		VK_IMAGE_LAYOUT_UNDEFINED,
+	};
+
+	return createImage(vkd, device, &createInfo);
+}
+
+tcu::TestStatus createImageListModifiersCase (Context& context, const VkFormat format)
+{
+	const InstanceInterface&						vki					= context.getInstanceInterface();
+	const DeviceInterface&							vkd					= context.getDeviceInterface();
+	const VkDevice									device				= context.getDevice();
+	std::vector<VkDrmFormatModifierPropertiesEXT>	drmFormatModifiers	= getDrmFormatModifiers(vki, context.getPhysicalDevice(), format);
+
+	if (drmFormatModifiers.size() < 1)
+		TCU_THROW(NotSupportedError, de::toString(format) + " does not support any DRM modifiers");
+
+	for (deUint32 modifierNdx = 0; modifierNdx < drmFormatModifiers.size(); modifierNdx++) {
+		VkImageDrmFormatModifierPropertiesEXT	properties;
+		std::vector<deUint64>					modifiers;
+		bool									found		= false;
+
+		deMemset(&properties, 0, sizeof(properties));
+		properties.sType = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT;
+
+		for (deUint32 m = 0; m <= modifierNdx; m++)
+			modifiers.push_back(drmFormatModifiers[m].drmFormatModifier);
+
+		{
+			Move<VkImage>						image		(createImageWithDrmFormatModifiers(vkd, device, VK_IMAGE_TYPE_2D,
+																								 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT |
+																								 VK_IMAGE_USAGE_SAMPLED_BIT,
+																								 {format}, UVec2(64, 64), modifiers));
+
+
+			VK_CHECK(vkd.getImageDrmFormatModifierPropertiesEXT(device, *image, &properties));
+		}
+
+		for (deUint32 m = 0; m < modifiers.size(); m++)
+		{
+			if (properties.drmFormatModifier == modifiers[m]) {
+				found = true;
+				break;
+			}
+		}
+
+		if (!found)
+			return tcu::TestStatus::fail("Image created with modifier not specified in the create list");
+	}
+
+	return tcu::TestStatus::pass("OK");
+}
+
+} // anonymous
+
+tcu::TestCaseGroup* createTests (tcu::TestContext& testCtx)
+{
+	de::MovePtr<tcu::TestCaseGroup>	drmFormatModifiersGroup	(new tcu::TestCaseGroup(testCtx, "drm_format_modifiers", "DRM format modifiers tests"));
+	const VkFormat					formats[]				=
+	{
+		VK_FORMAT_R4G4_UNORM_PACK8,
+		VK_FORMAT_R4G4B4A4_UNORM_PACK16,
+		VK_FORMAT_B4G4R4A4_UNORM_PACK16,
+		VK_FORMAT_R5G6B5_UNORM_PACK16,
+		VK_FORMAT_B5G6R5_UNORM_PACK16,
+		VK_FORMAT_R5G5B5A1_UNORM_PACK16,
+		VK_FORMAT_B5G5R5A1_UNORM_PACK16,
+		VK_FORMAT_A1R5G5B5_UNORM_PACK16,
+		VK_FORMAT_R8_UNORM,
+		VK_FORMAT_R8_SNORM,
+		VK_FORMAT_R8_USCALED,
+		VK_FORMAT_R8_SSCALED,
+		VK_FORMAT_R8_UINT,
+		VK_FORMAT_R8_SINT,
+		VK_FORMAT_R8_SRGB,
+		VK_FORMAT_R8G8_UNORM,
+		VK_FORMAT_R8G8_SNORM,
+		VK_FORMAT_R8G8_USCALED,
+		VK_FORMAT_R8G8_SSCALED,
+		VK_FORMAT_R8G8_UINT,
+		VK_FORMAT_R8G8_SINT,
+		VK_FORMAT_R8G8_SRGB,
+		VK_FORMAT_R8G8B8_UNORM,
+		VK_FORMAT_R8G8B8_SNORM,
+		VK_FORMAT_R8G8B8_USCALED,
+		VK_FORMAT_R8G8B8_SSCALED,
+		VK_FORMAT_R8G8B8_UINT,
+		VK_FORMAT_R8G8B8_SINT,
+		VK_FORMAT_R8G8B8_SRGB,
+		VK_FORMAT_B8G8R8_UNORM,
+		VK_FORMAT_B8G8R8_SNORM,
+		VK_FORMAT_B8G8R8_USCALED,
+		VK_FORMAT_B8G8R8_SSCALED,
+		VK_FORMAT_B8G8R8_UINT,
+		VK_FORMAT_B8G8R8_SINT,
+		VK_FORMAT_B8G8R8_SRGB,
+		VK_FORMAT_R8G8B8A8_UNORM,
+		VK_FORMAT_R8G8B8A8_SNORM,
+		VK_FORMAT_R8G8B8A8_USCALED,
+		VK_FORMAT_R8G8B8A8_SSCALED,
+		VK_FORMAT_R8G8B8A8_UINT,
+		VK_FORMAT_R8G8B8A8_SINT,
+		VK_FORMAT_R8G8B8A8_SRGB,
+		VK_FORMAT_B8G8R8A8_UNORM,
+		VK_FORMAT_B8G8R8A8_SNORM,
+		VK_FORMAT_B8G8R8A8_USCALED,
+		VK_FORMAT_B8G8R8A8_SSCALED,
+		VK_FORMAT_B8G8R8A8_UINT,
+		VK_FORMAT_B8G8R8A8_SINT,
+		VK_FORMAT_B8G8R8A8_SRGB,
+		VK_FORMAT_A8B8G8R8_UNORM_PACK32,
+		VK_FORMAT_A8B8G8R8_SNORM_PACK32,
+		VK_FORMAT_A8B8G8R8_USCALED_PACK32,
+		VK_FORMAT_A8B8G8R8_SSCALED_PACK32,
+		VK_FORMAT_A8B8G8R8_UINT_PACK32,
+		VK_FORMAT_A8B8G8R8_SINT_PACK32,
+		VK_FORMAT_A8B8G8R8_SRGB_PACK32,
+		VK_FORMAT_A2R10G10B10_UNORM_PACK32,
+		VK_FORMAT_A2R10G10B10_SNORM_PACK32,
+		VK_FORMAT_A2R10G10B10_USCALED_PACK32,
+		VK_FORMAT_A2R10G10B10_SSCALED_PACK32,
+		VK_FORMAT_A2R10G10B10_UINT_PACK32,
+		VK_FORMAT_A2R10G10B10_SINT_PACK32,
+		VK_FORMAT_A2B10G10R10_UNORM_PACK32,
+		VK_FORMAT_A2B10G10R10_SNORM_PACK32,
+		VK_FORMAT_A2B10G10R10_USCALED_PACK32,
+		VK_FORMAT_A2B10G10R10_SSCALED_PACK32,
+		VK_FORMAT_A2B10G10R10_UINT_PACK32,
+		VK_FORMAT_A2B10G10R10_SINT_PACK32,
+		VK_FORMAT_R16_UNORM,
+		VK_FORMAT_R16_SNORM,
+		VK_FORMAT_R16_USCALED,
+		VK_FORMAT_R16_SSCALED,
+		VK_FORMAT_R16_UINT,
+		VK_FORMAT_R16_SINT,
+		VK_FORMAT_R16_SFLOAT,
+		VK_FORMAT_R16G16_UNORM,
+		VK_FORMAT_R16G16_SNORM,
+		VK_FORMAT_R16G16_USCALED,
+		VK_FORMAT_R16G16_SSCALED,
+		VK_FORMAT_R16G16_UINT,
+		VK_FORMAT_R16G16_SINT,
+		VK_FORMAT_R16G16_SFLOAT,
+		VK_FORMAT_R16G16B16_UNORM,
+		VK_FORMAT_R16G16B16_SNORM,
+		VK_FORMAT_R16G16B16_USCALED,
+		VK_FORMAT_R16G16B16_SSCALED,
+		VK_FORMAT_R16G16B16_UINT,
+		VK_FORMAT_R16G16B16_SINT,
+		VK_FORMAT_R16G16B16_SFLOAT,
+		VK_FORMAT_R16G16B16A16_UNORM,
+		VK_FORMAT_R16G16B16A16_SNORM,
+		VK_FORMAT_R16G16B16A16_USCALED,
+		VK_FORMAT_R16G16B16A16_SSCALED,
+		VK_FORMAT_R16G16B16A16_UINT,
+		VK_FORMAT_R16G16B16A16_SINT,
+		VK_FORMAT_R16G16B16A16_SFLOAT,
+		VK_FORMAT_R32_UINT,
+		VK_FORMAT_R32_SINT,
+		VK_FORMAT_R32_SFLOAT,
+		VK_FORMAT_R32G32_UINT,
+		VK_FORMAT_R32G32_SINT,
+		VK_FORMAT_R32G32_SFLOAT,
+		VK_FORMAT_R32G32B32_UINT,
+		VK_FORMAT_R32G32B32_SINT,
+		VK_FORMAT_R32G32B32_SFLOAT,
+		VK_FORMAT_R32G32B32A32_UINT,
+		VK_FORMAT_R32G32B32A32_SINT,
+		VK_FORMAT_R32G32B32A32_SFLOAT,
+		VK_FORMAT_R64_UINT,
+		VK_FORMAT_R64_SINT,
+		VK_FORMAT_R64_SFLOAT,
+		VK_FORMAT_R64G64_UINT,
+		VK_FORMAT_R64G64_SINT,
+		VK_FORMAT_R64G64_SFLOAT,
+		VK_FORMAT_R64G64B64_UINT,
+		VK_FORMAT_R64G64B64_SINT,
+		VK_FORMAT_R64G64B64_SFLOAT,
+		VK_FORMAT_R64G64B64A64_UINT,
+		VK_FORMAT_R64G64B64A64_SINT,
+		VK_FORMAT_R64G64B64A64_SFLOAT,
+		VK_FORMAT_B10G11R11_UFLOAT_PACK32,
+		VK_FORMAT_E5B9G9R9_UFLOAT_PACK32,
+	};
+
+	{
+		de::MovePtr<tcu::TestCaseGroup> group(new tcu::TestCaseGroup(testCtx, "list_modifiers", "Check that listing supported modifiers is functional"));
+
+		for (int formatNdx = 0; formatNdx < DE_LENGTH_OF_ARRAY(formats); formatNdx++)
+			addFunctionCase(group.get(), getFormatCaseName(formats[formatNdx]), "Check that listing supported modifiers is functional", checkModifiersSupported, listModifiersCase, formats[formatNdx]);
+
+		drmFormatModifiersGroup->addChild(group.release());
+	}
+
+	{
+		de::MovePtr<tcu::TestCaseGroup> group(new tcu::TestCaseGroup(testCtx, "create_list_modifiers", "Check that creating images with modifier list is functional"));
+
+		for (int formatNdx = 0; formatNdx < DE_LENGTH_OF_ARRAY(formats); formatNdx++)
+			addFunctionCase(group.get(), getFormatCaseName(formats[formatNdx]), "Check that creating images with modifier list is functional", checkModifiersSupported, createImageListModifiersCase, formats[formatNdx]);
+
+		drmFormatModifiersGroup->addChild(group.release());
+	}
+
+	return drmFormatModifiersGroup.release();
+}
+
+} // modifiers
+} // vkt
diff --git a/external/vulkancts/modules/vulkan/modifiers/vktModifiersTests.hpp b/external/vulkancts/modules/vulkan/modifiers/vktModifiersTests.hpp
new file mode 100644
index 0000000..98bffe3
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/modifiers/vktModifiersTests.hpp
@@ -0,0 +1,39 @@
+#ifndef _VKTMODIFIERSTESTS_HPP
+#define _VKTMODIFIERSTESTS_HPP
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2020 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Modifiers tests
+ *//*--------------------------------------------------------------------*/
+
+#include "tcuDefs.hpp"
+#include "tcuTestCase.hpp"
+
+namespace vkt
+{
+namespace modifiers
+{
+
+tcu::TestCaseGroup* createTests (tcu::TestContext& testCtx);
+
+} // modifiers
+} // vkt
+
+#endif // _VKTMODIFIERSTESTS_HPP
diff --git a/external/vulkancts/modules/vulkan/multiview/vktMultiViewRenderTests.cpp b/external/vulkancts/modules/vulkan/multiview/vktMultiViewRenderTests.cpp
index 09d3c86..e8e5a27 100644
--- a/external/vulkancts/modules/vulkan/multiview/vktMultiViewRenderTests.cpp
+++ b/external/vulkancts/modules/vulkan/multiview/vktMultiViewRenderTests.cpp
@@ -582,7 +582,7 @@
 
 		VK_CHECK(m_device->bindBufferMemory(*m_logicalDevice, *m_vertexCoordBuffer, m_vertexCoordAlloc->getMemory(), m_vertexCoordAlloc->getOffset()));
 		deMemcpy(m_vertexCoordAlloc->getHostPtr(), m_vertexCoord.data(), static_cast<size_t>(dataSize));
-		flushMappedMemoryRange(*m_device, *m_logicalDevice, m_vertexCoordAlloc->getMemory(), m_vertexCoordAlloc->getOffset(), static_cast<size_t>(bufferDataSize));
+		flushAlloc(*m_device, *m_logicalDevice, *m_vertexCoordAlloc);
 	}
 
 	// Upload vertex colors
@@ -596,7 +596,7 @@
 
 		VK_CHECK(m_device->bindBufferMemory(*m_logicalDevice, *m_vertexColorBuffer, m_vertexColorAlloc->getMemory(), m_vertexColorAlloc->getOffset()));
 		deMemcpy(m_vertexColorAlloc->getHostPtr(), m_vertexColor.data(), static_cast<size_t>(dataSize));
-		flushMappedMemoryRange(*m_device, *m_logicalDevice, m_vertexColorAlloc->getMemory(), m_vertexColorAlloc->getOffset(), static_cast<size_t>(bufferDataSize));
+		flushAlloc(*m_device, *m_logicalDevice, *m_vertexColorAlloc);
 	}
 
 	// Upload vertex indices
@@ -614,7 +614,7 @@
 		// Init host buffer data
 		VK_CHECK(m_device->bindBufferMemory(*m_logicalDevice, *m_vertexIndicesBuffer, m_vertexIndicesAllocation->getMemory(), m_vertexIndicesAllocation->getOffset()));
 		deMemcpy(m_vertexIndicesAllocation->getHostPtr(), m_vertexIndices.data(), static_cast<size_t>(dataSize));
-		flushMappedMemoryRange(*m_device, *m_logicalDevice, m_vertexIndicesAllocation->getMemory(), m_vertexIndicesAllocation->getOffset(), static_cast<size_t>(bufferDataSize));
+		flushAlloc(*m_device, *m_logicalDevice, *m_vertexIndicesAllocation);
 	}
 	else
 		DE_ASSERT(m_vertexIndices.empty());
@@ -1048,7 +1048,7 @@
 		VK_CHECK(m_device->bindBufferMemory(*m_logicalDevice, *buffer, bufferAlloc->getMemory(), bufferAlloc->getOffset()));
 
 		deMemset(bufferAlloc->getHostPtr(), 0, static_cast<size_t>(pixelDataSize));
-		flushMappedMemoryRange(*m_device, *m_logicalDevice, bufferAlloc->getMemory(), bufferAlloc->getOffset(), pixelDataSize);
+		flushAlloc(*m_device, *m_logicalDevice, *bufferAlloc);
 	}
 
 	const VkBufferMemoryBarrier	bufferBarrier	=
@@ -1104,7 +1104,7 @@
 	submitCommandsAndWait(*m_device, *m_logicalDevice, m_queue, *m_cmdBuffer);
 
 	// Read buffer data
-	invalidateMappedMemoryRange(*m_device, *m_logicalDevice, bufferAlloc->getMemory(), bufferAlloc->getOffset(), pixelDataSize);
+	invalidateAlloc(*m_device, *m_logicalDevice, *bufferAlloc);
 	tcu::copy(dst, tcu::ConstPixelBufferAccess(dst.getFormat(), dst.getSize(), bufferAlloc->getHostPtr()));
 }
 
@@ -1668,7 +1668,7 @@
 
 	// Write buffer data
 	deMemcpy(bufferAlloc->getHostPtr(), data->getLevel(0).getDataPtr(), bufferSize);
-	flushMappedMemoryRange(*m_device, *m_logicalDevice, bufferAlloc->getMemory(), bufferAlloc->getOffset(), bufferSize);
+	flushAlloc(*m_device, *m_logicalDevice, *bufferAlloc);
 
 	beginCommandBuffer(*m_device, *m_cmdBuffer);
 
@@ -1915,7 +1915,7 @@
 
 		deMemcpy(allocationBuffer->getHostPtr(), drawCommandsDataPtr, static_cast<size_t>(dataSize));
 
-		flushMappedMemoryRange(*m_device, *m_logicalDevice, allocationBuffer->getMemory(), allocationBuffer->getOffset(), static_cast<size_t>(bufferDataSize));
+		flushAlloc(*m_device, *m_logicalDevice, *allocationBuffer);
 		indirectBuffers[subpassNdx] = (BufferSP(new Unique<VkBuffer>(indirectBuffer)));
 		indirectAllocations[subpassNdx] = (AllocationSP(new UniquePtr<Allocation>(allocationBuffer)));
 	}
@@ -2990,7 +2990,7 @@
 		VK_CHECK(m_device->bindBufferMemory(*m_logicalDevice, *buffer, bufferAlloc->getMemory(), bufferAlloc->getOffset()));
 
 		deMemset(bufferAlloc->getHostPtr(), 0xCC, static_cast<size_t>(pixelDataSize));
-		flushMappedMemoryRange(*m_device, *m_logicalDevice, bufferAlloc->getMemory(), bufferAlloc->getOffset(), pixelDataSize);
+		flushAlloc(*m_device, *m_logicalDevice, *bufferAlloc);
 	}
 
 	const VkBufferMemoryBarrier	bufferBarrier	=
@@ -3038,7 +3038,7 @@
 	submitCommandsAndWait(*m_device, *m_logicalDevice, m_queue, *m_cmdBuffer);
 
 	// Read buffer data
-	invalidateMappedMemoryRange(*m_device, *m_logicalDevice, bufferAlloc->getMemory(), bufferAlloc->getOffset(), pixelDataSize);
+	invalidateAlloc(*m_device, *m_logicalDevice, *bufferAlloc);
 
 	if (m_depthTest)
 	{
diff --git a/external/vulkancts/modules/vulkan/pipeline/CMakeLists.txt b/external/vulkancts/modules/vulkan/pipeline/CMakeLists.txt
index 2a396a8..2df5782 100644
--- a/external/vulkancts/modules/vulkan/pipeline/CMakeLists.txt
+++ b/external/vulkancts/modules/vulkan/pipeline/CMakeLists.txt
@@ -99,6 +99,8 @@
 	vktPipelineMaxVaryingsTests.hpp
 	vktPipelineBlendOperationAdvancedTests.cpp
 	vktPipelineBlendOperationAdvancedTests.hpp
+	vktPipelineExtendedDynamicStateTests.cpp
+	vktPipelineExtendedDynamicStateTests.hpp
 	)
 
 set(DEQP_VK_PIPELINE_LIBS
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineBlendTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineBlendTests.cpp
index 6ef4d3c..1821ed1 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineBlendTests.cpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineBlendTests.cpp
@@ -97,6 +97,28 @@
 	const static deUint32					m_totalBlendStates;
 };
 
+class BlendStateUniqueRandomIteratorDualSource : public UniqueRandomIterator<VkPipelineColorBlendAttachmentState>
+{
+public:
+											BlendStateUniqueRandomIteratorDualSource		(deUint32 numberOfCombinations, int seed);
+	virtual									~BlendStateUniqueRandomIteratorDualSource		(void) {}
+	VkPipelineColorBlendAttachmentState		getIndexedValue	(deUint32 index);
+
+private:
+	const static VkBlendFactor				m_blendFactors[];
+	const static VkBlendOp					m_blendOps[];
+
+	// Pre-calculated constants
+	const static deUint32					m_blendFactorsLength;
+	const static deUint32					m_blendFactorsLength2;
+	const static deUint32					m_blendFactorsLength3;
+	const static deUint32					m_blendFactorsLength4;
+	const static deUint32					m_blendOpsLength;
+
+	// Total number of cross-combinations of (srcBlendColor x destBlendColor x blendOpColor x srcBlendAlpha x destBlendAlpha x blendOpAlpha)
+	const static deUint32					m_totalBlendStates;
+};
+
 class BlendTest : public vkt::TestCase
 {
 public:
@@ -123,6 +145,32 @@
 	VkPipelineColorBlendAttachmentState	m_blendStates[QUAD_COUNT];
 };
 
+class DualSourceBlendTest : public vkt::TestCase
+{
+public:
+	enum
+	{
+		QUAD_COUNT = 4
+	};
+
+	const static VkColorComponentFlags	s_colorWriteMasks[QUAD_COUNT];
+	const static tcu::Vec4				s_blendConst;
+
+										DualSourceBlendTest		(tcu::TestContext&							testContext,
+																 const std::string&							name,
+																 const std::string&							description,
+																 const VkFormat								colorFormat,
+																 const VkPipelineColorBlendAttachmentState	blendStates[QUAD_COUNT]);
+	virtual								~DualSourceBlendTest	(void);
+	virtual void						initPrograms			(SourceCollections& sourceCollections) const;
+	virtual void						checkSupport			(Context& context) const;
+	virtual TestInstance*				createInstance			(Context& context) const;
+
+private:
+	const VkFormat						m_colorFormat;
+	VkPipelineColorBlendAttachmentState	m_blendStates[QUAD_COUNT];
+};
+
 class BlendTestInstance : public vkt::TestInstance
 {
 public:
@@ -159,6 +207,42 @@
 	Move<VkCommandBuffer>				m_cmdBuffer;
 };
 
+// Blend test dual source blending
+class DualSourceBlendTestInstance : public vkt::TestInstance
+{
+public:
+										DualSourceBlendTestInstance		(Context& context, const VkFormat colorFormat, const VkPipelineColorBlendAttachmentState blendStates[DualSourceBlendTest::QUAD_COUNT]);
+	virtual								~DualSourceBlendTestInstance	(void);
+	virtual tcu::TestStatus				iterate					(void);
+
+private:
+	tcu::TestStatus						verifyImage				(void);
+
+	VkPipelineColorBlendAttachmentState	m_blendStates[DualSourceBlendTest::QUAD_COUNT];
+
+	const tcu::UVec2					m_renderSize;
+	const VkFormat						m_colorFormat;
+
+	VkImageCreateInfo					m_colorImageCreateInfo;
+	Move<VkImage>						m_colorImage;
+	de::MovePtr<Allocation>				m_colorImageAlloc;
+	Move<VkImageView>					m_colorAttachmentView;
+	Move<VkRenderPass>					m_renderPass;
+	Move<VkFramebuffer>					m_framebuffer;
+
+	Move<VkShaderModule>				m_vertexShaderModule;
+	Move<VkShaderModule>				m_fragmentShaderModule;
+
+	Move<VkBuffer>						m_vertexBuffer;
+	std::vector<Vertex4RGBARGBA>		m_vertices;
+	de::MovePtr<Allocation>				m_vertexBufferAlloc;
+
+	Move<VkPipelineLayout>				m_pipelineLayout;
+	Move<VkPipeline>					m_graphicsPipelines[DualSourceBlendTest::QUAD_COUNT];
+
+	Move<VkCommandPool>					m_cmdPool;
+	Move<VkCommandBuffer>				m_cmdBuffer;
+};
 
 // BlendStateUniqueRandomIterator
 
@@ -178,7 +262,7 @@
 	VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,
 	VK_BLEND_FACTOR_CONSTANT_ALPHA,
 	VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA,
-	VK_BLEND_FACTOR_SRC_ALPHA_SATURATE
+	VK_BLEND_FACTOR_SRC_ALPHA_SATURATE,
 };
 
 const VkBlendOp BlendStateUniqueRandomIterator::m_blendOps[] =
@@ -238,6 +322,88 @@
 	return blendAttachmentState;
 }
 
+// BlendStateUniqueRandomIteratorDualSource
+
+const VkBlendFactor BlendStateUniqueRandomIteratorDualSource::m_blendFactors[] =
+{
+	VK_BLEND_FACTOR_ZERO,
+	VK_BLEND_FACTOR_ONE,
+	VK_BLEND_FACTOR_SRC_COLOR,
+	VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR,
+	VK_BLEND_FACTOR_DST_COLOR,
+	VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR,
+	VK_BLEND_FACTOR_SRC_ALPHA,
+	VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA,
+	VK_BLEND_FACTOR_DST_ALPHA,
+	VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA,
+	VK_BLEND_FACTOR_CONSTANT_COLOR,
+	VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,
+	VK_BLEND_FACTOR_CONSTANT_ALPHA,
+	VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA,
+	VK_BLEND_FACTOR_SRC_ALPHA_SATURATE,
+	VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR,
+	VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA,
+	VK_BLEND_FACTOR_SRC1_COLOR,
+	VK_BLEND_FACTOR_SRC1_ALPHA
+};
+
+const VkBlendOp BlendStateUniqueRandomIteratorDualSource::m_blendOps[] =
+{
+	VK_BLEND_OP_ADD,
+	VK_BLEND_OP_SUBTRACT,
+	VK_BLEND_OP_REVERSE_SUBTRACT,
+	VK_BLEND_OP_MIN,
+	VK_BLEND_OP_MAX
+};
+
+const deUint32 BlendStateUniqueRandomIteratorDualSource::m_blendFactorsLength	= DE_LENGTH_OF_ARRAY(m_blendFactors);
+const deUint32 BlendStateUniqueRandomIteratorDualSource::m_blendFactorsLength2	= m_blendFactorsLength * m_blendFactorsLength;
+const deUint32 BlendStateUniqueRandomIteratorDualSource::m_blendFactorsLength3	= m_blendFactorsLength2 * m_blendFactorsLength;
+const deUint32 BlendStateUniqueRandomIteratorDualSource::m_blendFactorsLength4	= m_blendFactorsLength3 * m_blendFactorsLength;
+const deUint32 BlendStateUniqueRandomIteratorDualSource::m_blendOpsLength		= DE_LENGTH_OF_ARRAY(m_blendOps);
+const deUint32 BlendStateUniqueRandomIteratorDualSource::m_totalBlendStates		= m_blendFactorsLength4 * m_blendOpsLength * m_blendOpsLength;
+
+
+BlendStateUniqueRandomIteratorDualSource::BlendStateUniqueRandomIteratorDualSource (deUint32 numberOfCombinations, int seed)
+	: UniqueRandomIterator<VkPipelineColorBlendAttachmentState>(numberOfCombinations, m_totalBlendStates, seed)
+{
+}
+
+VkPipelineColorBlendAttachmentState BlendStateUniqueRandomIteratorDualSource::getIndexedValue (deUint32 index)
+{
+	const deUint32		blendOpAlphaIndex			= index / (m_blendFactorsLength4 * m_blendOpsLength);
+	const deUint32		blendOpAlphaSeqIndex		= blendOpAlphaIndex * (m_blendFactorsLength4 * m_blendOpsLength);
+
+	const deUint32		destBlendAlphaIndex			= (index - blendOpAlphaSeqIndex) / (m_blendFactorsLength3 * m_blendOpsLength);
+	const deUint32		destBlendAlphaSeqIndex		= destBlendAlphaIndex * (m_blendFactorsLength3 * m_blendOpsLength);
+
+	const deUint32		srcBlendAlphaIndex			= (index - blendOpAlphaSeqIndex - destBlendAlphaSeqIndex) / (m_blendFactorsLength2 * m_blendOpsLength);
+	const deUint32		srcBlendAlphaSeqIndex		= srcBlendAlphaIndex * (m_blendFactorsLength2 * m_blendOpsLength);
+
+	const deUint32		blendOpColorIndex			= (index - blendOpAlphaSeqIndex - destBlendAlphaSeqIndex - srcBlendAlphaSeqIndex) / m_blendFactorsLength2;
+	const deUint32		blendOpColorSeqIndex		= blendOpColorIndex * m_blendFactorsLength2;
+
+	const deUint32		destBlendColorIndex			= (index - blendOpAlphaSeqIndex - destBlendAlphaSeqIndex - srcBlendAlphaSeqIndex - blendOpColorSeqIndex) / m_blendFactorsLength;
+	const deUint32		destBlendColorSeqIndex		= destBlendColorIndex * m_blendFactorsLength;
+
+	const deUint32		srcBlendColorIndex			= index - blendOpAlphaSeqIndex - destBlendAlphaSeqIndex - srcBlendAlphaSeqIndex - blendOpColorSeqIndex - destBlendColorSeqIndex;
+
+	const VkPipelineColorBlendAttachmentState blendAttachmentState =
+	{
+		true,														// VkBool32					blendEnable;
+		m_blendFactors[srcBlendColorIndex],							// VkBlendFactor			srcColorBlendFactor;
+		m_blendFactors[destBlendColorIndex],						// VkBlendFactor			dstColorBlendFactor;
+		m_blendOps[blendOpColorIndex],								// VkBlendOp				colorBlendOp;
+		m_blendFactors[srcBlendAlphaIndex],							// VkBlendFactor			srcAlphaBlendFactor;
+		m_blendFactors[destBlendAlphaIndex],						// VkBlendFactor			dstAlphaBlendFactor;
+		m_blendOps[blendOpAlphaIndex],								// VkBlendOp				alphaBlendOp;
+		VK_COLOR_COMPONENT_R_BIT | VK_COLOR_COMPONENT_G_BIT |		// VkColorComponentFlags	colorWriteMask;
+			VK_COLOR_COMPONENT_B_BIT | VK_COLOR_COMPONENT_A_BIT
+	};
+
+	return blendAttachmentState;
+}
+
 
 // BlendTest
 
@@ -300,6 +466,102 @@
 	sourceCollections.glslSources.add("color_frag") << glu::FragmentSource(fragmentSource.str());
 }
 
+// DualSourceBlendTest
+
+const VkColorComponentFlags DualSourceBlendTest::s_colorWriteMasks[BlendTest::QUAD_COUNT] = { VK_COLOR_COMPONENT_R_BIT | VK_COLOR_COMPONENT_G_BIT,	// Pair of channels: R & G
+																							  VK_COLOR_COMPONENT_G_BIT | VK_COLOR_COMPONENT_B_BIT,	// Pair of channels: G & B
+																							  VK_COLOR_COMPONENT_B_BIT | VK_COLOR_COMPONENT_A_BIT,	// Pair of channels: B & A
+																							  VK_COLOR_COMPONENT_R_BIT | VK_COLOR_COMPONENT_G_BIT | VK_COLOR_COMPONENT_B_BIT | VK_COLOR_COMPONENT_A_BIT };	// All channels
+
+const tcu::Vec4 DualSourceBlendTest::s_blendConst = tcu::Vec4(0.1f, 0.2f, 0.3f, 0.4f);
+
+DualSourceBlendTest::DualSourceBlendTest (tcu::TestContext&								testContext,
+										  const std::string&							name,
+										  const std::string&							description,
+										  const VkFormat								colorFormat,
+										  const VkPipelineColorBlendAttachmentState		blendStates[QUAD_COUNT])
+	: vkt::TestCase	(testContext, name, description)
+	, m_colorFormat(colorFormat)
+{
+	deMemcpy(m_blendStates, blendStates, sizeof(VkPipelineColorBlendAttachmentState) * QUAD_COUNT);
+}
+
+DualSourceBlendTest::~DualSourceBlendTest (void)
+{
+}
+
+deBool isSrc1BlendFactor(vk::VkBlendFactor blendFactor)
+{
+	switch(blendFactor)
+	{
+		case vk::VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR:
+		case vk::VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA:
+		case vk::VK_BLEND_FACTOR_SRC1_ALPHA:
+		case vk::VK_BLEND_FACTOR_SRC1_COLOR:
+			return DE_TRUE;
+		default:
+			return DE_FALSE;
+	}
+}
+
+TestInstance* DualSourceBlendTest::createInstance(Context& context) const
+{
+	return new DualSourceBlendTestInstance(context, m_colorFormat, m_blendStates);
+}
+
+void DualSourceBlendTest::checkSupport (Context& context) const
+{
+	const vk::VkPhysicalDeviceFeatures features = context.getDeviceFeatures();
+
+	deBool	isDualSourceTest = DE_FALSE;
+	for (int quadNdx = 0; quadNdx < BlendTest::QUAD_COUNT; quadNdx++)
+	{
+		isDualSourceTest =
+			isSrc1BlendFactor(this->m_blendStates[quadNdx].srcColorBlendFactor) ||
+			isSrc1BlendFactor(this->m_blendStates[quadNdx].dstColorBlendFactor) ||
+			isSrc1BlendFactor(this->m_blendStates[quadNdx].srcAlphaBlendFactor) ||
+			isSrc1BlendFactor(this->m_blendStates[quadNdx].dstAlphaBlendFactor);
+		if (isDualSourceTest)
+			break;
+	}
+	if (isDualSourceTest && !features.dualSrcBlend)
+		throw tcu::NotSupportedError("Dual-Source blending not supported");
+
+	if (!isSupportedBlendFormat(context.getInstanceInterface(), context.getPhysicalDevice(), m_colorFormat))
+		throw tcu::NotSupportedError(std::string("Unsupported color blending format: ") + getFormatName(m_colorFormat));
+}
+
+void DualSourceBlendTest::initPrograms (SourceCollections& sourceCollections) const
+{
+	std::ostringstream fragmentSource;
+
+	sourceCollections.glslSources.add("color_vert") << glu::VertexSource(
+		"#version 450\n"
+		"layout(location = 0) in highp vec4 position;\n"
+		"layout(location = 1) in highp vec4 color0;\n"
+		"layout(location = 2) in highp vec4 color1;\n"
+		"layout(location = 0) out highp vec4 vtxColor0;\n"
+		"layout(location = 1) out highp vec4 vtxColor1;\n"
+		"void main (void)\n"
+		"{\n"
+		"	gl_Position = position;\n"
+		"	vtxColor0 = color0;\n"
+		"	vtxColor1 = color1;\n"
+		"}\n");
+
+	fragmentSource << "#version 450\n"
+		"layout(location = 0) in highp vec4 vtxColor0;\n"
+		"layout(location = 1) in highp vec4 vtxColor1;\n"
+		"layout(location = 0, index = 0) out highp vec4 fragColor0;\n"
+		"layout(location = 0, index = 1) out highp vec4 fragColor1;\n"
+		"void main (void)\n"
+		"{\n"
+		"	fragColor0 = vtxColor0;\n"
+		"	fragColor1 = vtxColor1;\n"
+		"}\n";
+
+	sourceCollections.glslSources.add("color_frag") << glu::FragmentSource(fragmentSource.str());
+}
 
 // BlendTestInstance
 
@@ -885,6 +1147,409 @@
 		return tcu::TestStatus::fail("Image mismatch");
 }
 
+// DualSourceBlendTestInstance
+
+DualSourceBlendTestInstance::DualSourceBlendTestInstance (Context&									context,
+														  const VkFormat							colorFormat,
+														  const VkPipelineColorBlendAttachmentState	blendStates[DualSourceBlendTest::QUAD_COUNT])
+	: vkt::TestInstance	(context)
+	, m_renderSize		(32, 32)
+	, m_colorFormat		(colorFormat)
+{
+	const DeviceInterface&		vk					= m_context.getDeviceInterface();
+	const VkDevice				vkDevice			= m_context.getDevice();
+	const deUint32				queueFamilyIndex	= m_context.getUniversalQueueFamilyIndex();
+	SimpleAllocator				memAlloc			(vk, vkDevice, getPhysicalDeviceMemoryProperties(m_context.getInstanceInterface(), m_context.getPhysicalDevice()));
+
+	// Copy depth operators
+	deMemcpy(m_blendStates, blendStates, sizeof(VkPipelineColorBlendAttachmentState) * DualSourceBlendTest::QUAD_COUNT);
+
+	// Create color image
+	{
+		const VkImageCreateInfo	colorImageParams =
+		{
+			VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,										// VkStructureType			sType;
+			DE_NULL,																	// const void*				pNext;
+			0u,																			// VkImageCreateFlags		flags;
+			VK_IMAGE_TYPE_2D,															// VkImageType				imageType;
+			m_colorFormat,																// VkFormat					format;
+			{ m_renderSize.x(), m_renderSize.y(), 1u },									// VkExtent3D				extent;
+			1u,																			// deUint32					mipLevels;
+			1u,																			// deUint32					arrayLayers;
+			VK_SAMPLE_COUNT_1_BIT,														// VkSampleCountFlagBits	samples;
+			VK_IMAGE_TILING_OPTIMAL,													// VkImageTiling			tiling;
+			VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT,		// VkImageUsageFlags		usage;
+			VK_SHARING_MODE_EXCLUSIVE,													// VkSharingMode			sharingMode;
+			1u,																			// deUint32					queueFamilyIndexCount;
+			&queueFamilyIndex,															// const deUint32*			pQueueFamilyIndices;
+			VK_IMAGE_LAYOUT_UNDEFINED													// VkImageLayout			initialLayout;
+		};
+
+		m_colorImageCreateInfo	= colorImageParams;
+		m_colorImage			= createImage(vk, vkDevice, &m_colorImageCreateInfo);
+
+		// Allocate and bind color image memory
+		m_colorImageAlloc		= memAlloc.allocate(getImageMemoryRequirements(vk, vkDevice, *m_colorImage), MemoryRequirement::Any);
+		VK_CHECK(vk.bindImageMemory(vkDevice, *m_colorImage, m_colorImageAlloc->getMemory(), m_colorImageAlloc->getOffset()));
+	}
+
+	// Create color attachment view
+	{
+		const VkImageViewCreateInfo colorAttachmentViewParams =
+		{
+			VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,			// VkStructureType			sType;
+			DE_NULL,											// const void*				pNext;
+			0u,													// VkImageViewCreateFlags	flags;
+			*m_colorImage,										// VkImage					image;
+			VK_IMAGE_VIEW_TYPE_2D,								// VkImageViewType			viewType;
+			m_colorFormat,										// VkFormat					format;
+			{VK_COMPONENT_SWIZZLE_IDENTITY, VK_COMPONENT_SWIZZLE_IDENTITY, VK_COMPONENT_SWIZZLE_IDENTITY, VK_COMPONENT_SWIZZLE_IDENTITY},
+			{ VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u }		// VkImageSubresourceRange	subresourceRange;
+		};
+
+		m_colorAttachmentView = createImageView(vk, vkDevice, &colorAttachmentViewParams);
+	}
+
+	// Create render pass
+	m_renderPass = makeRenderPass(vk, vkDevice, m_colorFormat);
+
+	// Create framebuffer
+	{
+		const VkFramebufferCreateInfo framebufferParams =
+		{
+			VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,			// VkStructureType			sType;
+			DE_NULL,											// const void*				pNext;
+			0u,													// VkFramebufferCreateFlags	flags;
+			*m_renderPass,										// VkRenderPass				renderPass;
+			1u,													// deUint32					attachmentCount;
+			&m_colorAttachmentView.get(),						// const VkImageView*		pAttachments;
+			(deUint32)m_renderSize.x(),							// deUint32					width;
+			(deUint32)m_renderSize.y(),							// deUint32					height;
+			1u													// deUint32					layers;
+		};
+
+		m_framebuffer = createFramebuffer(vk, vkDevice, &framebufferParams);
+	}
+
+	// Create pipeline layout
+	{
+		const VkPipelineLayoutCreateInfo pipelineLayoutParams =
+		{
+			VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,		// VkStructureType					sType;
+			DE_NULL,											// const void*						pNext;
+			0u,													// VkPipelineLayoutCreateFlags		flags;
+			0u,													// deUint32							setLayoutCount;
+			DE_NULL,											// const VkDescriptorSetLayout*		pSetLayouts;
+			0u,													// deUint32							pushConstantRangeCount;
+			DE_NULL												// const VkPushConstantRange*		pPushConstantRanges;
+		};
+
+		m_pipelineLayout = createPipelineLayout(vk, vkDevice, &pipelineLayoutParams);
+	}
+
+	m_vertexShaderModule	= createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("color_vert"), 0);
+	m_fragmentShaderModule	= createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("color_frag"), 0);
+
+	// Create pipeline
+	{
+		const VkVertexInputBindingDescription		vertexInputBindingDescription		=
+		{
+			0u,									// deUint32					binding;
+			sizeof(Vertex4RGBARGBA),			// deUint32					strideInBytes;
+			VK_VERTEX_INPUT_RATE_VERTEX			// VkVertexInputStepRate	inputRate;
+		};
+
+		const VkVertexInputAttributeDescription		vertexInputAttributeDescriptions[3]	=
+		{
+			{
+				0u,								// deUint32	location;
+				0u,								// deUint32	binding;
+				VK_FORMAT_R32G32B32A32_SFLOAT,	// VkFormat	format;
+				0u								// deUint32	offset;
+			},
+			{
+				1u,								// deUint32	location;
+				0u,								// deUint32	binding;
+				VK_FORMAT_R32G32B32A32_SFLOAT,	// VkFormat	format;
+				(deUint32)(sizeof(float) * 4),	// deUint32	offset;
+			},
+			{
+				2u,								// deUint32	location;
+				0u,								// deUint32	binding;
+				VK_FORMAT_R32G32B32A32_SFLOAT,	// VkFormat	format;
+				(deUint32)(sizeof(float) * 8),	// deUint32	offset;
+			}
+		};
+
+		const VkPipelineVertexInputStateCreateInfo	vertexInputStateParams				=
+		{
+			VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,		// VkStructureType							sType;
+			DE_NULL,														// const void*								pNext;
+			0u,																// VkPipelineVertexInputStateCreateFlags	flags;
+			1u,																// deUint32									vertexBindingDescriptionCount;
+			&vertexInputBindingDescription,									// const VkVertexInputBindingDescription*	pVertexBindingDescriptions;
+			3u,																// deUint32									vertexAttributeDescriptionCount;
+			vertexInputAttributeDescriptions								// const VkVertexInputAttributeDescription*	pVertexAttributeDescriptions;
+		};
+
+		const std::vector<VkViewport>				viewports							(1, makeViewport(m_renderSize));
+		const std::vector<VkRect2D>					scissors							(1, makeRect2D(m_renderSize));
+
+		// The color blend attachment will be set up before creating the graphics pipeline.
+		VkPipelineColorBlendStateCreateInfo			colorBlendStateParams				=
+		{
+			VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,	// VkStructureType								sType;
+			DE_NULL,													// const void*									pNext;
+			0u,															// VkPipelineColorBlendStateCreateFlags			flags;
+			false,														// VkBool32										logicOpEnable;
+			VK_LOGIC_OP_COPY,											// VkLogicOp									logicOp;
+			0u,															// deUint32										attachmentCount;
+			DE_NULL,													// const VkPipelineColorBlendAttachmentState*	pAttachments;
+			{															// float										blendConstants[4];
+				DualSourceBlendTest::s_blendConst.x(),
+				DualSourceBlendTest::s_blendConst.y(),
+				DualSourceBlendTest::s_blendConst.z(),
+				DualSourceBlendTest::s_blendConst.w()
+			}
+		};
+
+		for (int quadNdx = 0; quadNdx < DualSourceBlendTest::QUAD_COUNT; quadNdx++)
+		{
+			colorBlendStateParams.attachmentCount	= 1u;
+			colorBlendStateParams.pAttachments		= &m_blendStates[quadNdx];
+			m_graphicsPipelines[quadNdx]			= makeGraphicsPipeline(vk,									// const DeviceInterface&                        vk
+																		   vkDevice,							// const VkDevice                                device
+																		   *m_pipelineLayout,					// const VkPipelineLayout                        pipelineLayout
+																		   *m_vertexShaderModule,				// const VkShaderModule                          vertexShaderModule
+																		   DE_NULL,								// const VkShaderModule                          tessellationControlModule
+																		   DE_NULL,								// const VkShaderModule                          tessellationEvalModule
+																		   DE_NULL,								// const VkShaderModule                          geometryShaderModule
+																		   *m_fragmentShaderModule,				// const VkShaderModule                          fragmentShaderModule
+																		   *m_renderPass,						// const VkRenderPass                            renderPass
+																		   viewports,							// const std::vector<VkViewport>&                viewports
+																		   scissors,							// const std::vector<VkRect2D>&                  scissors
+																		   VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,	// const VkPrimitiveTopology                     topology
+																		   0u,									// const deUint32                                subpass
+																		   0u,									// const deUint32                                patchControlPoints
+																		   &vertexInputStateParams,				// const VkPipelineVertexInputStateCreateInfo*   vertexInputStateCreateInfo
+																		   DE_NULL,								// const VkPipelineRasterizationStateCreateInfo* rasterizationStateCreateInfo
+																		   DE_NULL,								// const VkPipelineMultisampleStateCreateInfo*   multisampleStateCreateInfo
+																		   DE_NULL,								// const VkPipelineDepthStencilStateCreateInfo*  depthStencilStateCreateInfo
+																		   &colorBlendStateParams);				// const VkPipelineColorBlendStateCreateInfo*    colorBlendStateCreateInfo
+		}
+	}
+
+	// Create vertex buffer
+	{
+		const VkBufferCreateInfo vertexBufferParams =
+		{
+			VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,		// VkStructureType		sType;
+			DE_NULL,									// const void*			pNext;
+			0u,											// VkBufferCreateFlags	flags;
+			1152u,										// VkDeviceSize			size;
+			VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,			// VkBufferUsageFlags	usage;
+			VK_SHARING_MODE_EXCLUSIVE,					// VkSharingMode		sharingMode;
+			1u,											// deUint32				queueFamilyIndexCount;
+			&queueFamilyIndex							// const deUint32*		pQueueFamilyIndices;
+		};
+
+		m_vertices			= createOverlappingQuadsDualSource();
+		m_vertexBuffer		= createBuffer(vk, vkDevice, &vertexBufferParams);
+		m_vertexBufferAlloc	= memAlloc.allocate(getBufferMemoryRequirements(vk, vkDevice, *m_vertexBuffer), MemoryRequirement::HostVisible);
+
+		VK_CHECK(vk.bindBufferMemory(vkDevice, *m_vertexBuffer, m_vertexBufferAlloc->getMemory(), m_vertexBufferAlloc->getOffset()));
+
+		// Adjust vertex colors
+		if (!isFloatFormat(m_colorFormat))
+		{
+			const tcu::TextureFormatInfo formatInfo = tcu::getTextureFormatInfo(mapVkFormat(m_colorFormat));
+			for (size_t vertexNdx = 0; vertexNdx < m_vertices.size(); vertexNdx++)
+			{
+				m_vertices[vertexNdx].color0 = (m_vertices[vertexNdx].color0 - formatInfo.lookupBias) / formatInfo.lookupScale;
+				m_vertices[vertexNdx].color1 = (m_vertices[vertexNdx].color1 - formatInfo.lookupBias) / formatInfo.lookupScale;
+			}
+		}
+
+		// Upload vertex data
+		deMemcpy(m_vertexBufferAlloc->getHostPtr(), m_vertices.data(), m_vertices.size() * sizeof(Vertex4RGBARGBA));
+
+		flushAlloc(vk, vkDevice, *m_vertexBufferAlloc);
+	}
+
+	// Create command pool
+	m_cmdPool = createCommandPool(vk, vkDevice, VK_COMMAND_POOL_CREATE_TRANSIENT_BIT, queueFamilyIndex);
+
+	// Create command buffer
+	{
+		const VkClearValue attachmentClearValue = defaultClearValue(m_colorFormat);
+
+		// Color image layout transition
+		const VkImageMemoryBarrier imageLayoutBarrier =
+		{
+			VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,									// VkStructureType            sType;
+			DE_NULL,																// const void*                pNext;
+			(VkAccessFlags)0,														// VkAccessFlags              srcAccessMask;
+			VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,									// VkAccessFlags              dstAccessMask;
+			VK_IMAGE_LAYOUT_UNDEFINED,												// VkImageLayout              oldLayout;
+			VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,								// VkImageLayout              newLayout;
+			VK_QUEUE_FAMILY_IGNORED,												// uint32_t                   srcQueueFamilyIndex;
+			VK_QUEUE_FAMILY_IGNORED,												// uint32_t                   dstQueueFamilyIndex;
+			*m_colorImage,															// VkImage                    image;
+			{ VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u }							// VkImageSubresourceRange    subresourceRange;
+		};
+
+		m_cmdBuffer = allocateCommandBuffer(vk, vkDevice, *m_cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY);
+
+		beginCommandBuffer(vk, *m_cmdBuffer, 0u);
+
+		vk.cmdPipelineBarrier(*m_cmdBuffer, VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, (VkDependencyFlags)0,
+			0u, DE_NULL, 0u, DE_NULL, 1u, &imageLayoutBarrier);
+
+		beginRenderPass(vk, *m_cmdBuffer, *m_renderPass, *m_framebuffer, makeRect2D(0, 0, m_renderSize.x(), m_renderSize.y()), attachmentClearValue);
+
+		const VkDeviceSize quadOffset = (m_vertices.size() / DualSourceBlendTest::QUAD_COUNT) * sizeof(Vertex4RGBARGBA);
+
+		for (int quadNdx = 0; quadNdx < DualSourceBlendTest::QUAD_COUNT; quadNdx++)
+		{
+			VkDeviceSize vertexBufferOffset = quadOffset * quadNdx;
+
+			vk.cmdBindPipeline(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_graphicsPipelines[quadNdx]);
+			vk.cmdBindVertexBuffers(*m_cmdBuffer, 0, 1, &m_vertexBuffer.get(), &vertexBufferOffset);
+			vk.cmdDraw(*m_cmdBuffer, (deUint32)(m_vertices.size() / DualSourceBlendTest::QUAD_COUNT), 1, 0, 0);
+		}
+
+		endRenderPass(vk, *m_cmdBuffer);
+		endCommandBuffer(vk, *m_cmdBuffer);
+	}
+}
+
+DualSourceBlendTestInstance::~DualSourceBlendTestInstance (void)
+{
+}
+
+tcu::TestStatus DualSourceBlendTestInstance::iterate (void)
+{
+	const DeviceInterface&		vk			= m_context.getDeviceInterface();
+	const VkDevice				vkDevice	= m_context.getDevice();
+	const VkQueue				queue		= m_context.getUniversalQueue();
+
+	submitCommandsAndWait(vk, vkDevice, queue, m_cmdBuffer.get());
+
+	return verifyImage();
+}
+
+tcu::TestStatus DualSourceBlendTestInstance::verifyImage (void)
+{
+	const tcu::TextureFormat			tcuColorFormat		= mapVkFormat(m_colorFormat);
+	const tcu::TextureFormat			tcuColorFormat64	= mapVkFormat(VK_FORMAT_R64G64B64A64_SFLOAT);
+	const tcu::TextureFormat			tcuColorFormat8		= mapVkFormat(VK_FORMAT_R8G8B8A8_UNORM);
+	const tcu::TextureFormat			tcuDepthFormat		= tcu::TextureFormat(); // Undefined depth/stencil format
+	const ColorVertexShaderDualSource	vertexShader;
+	const ColorFragmentShaderDualSource	fragmentShader		(tcuColorFormat, tcuDepthFormat);
+	const rr::Program					program				(&vertexShader, &fragmentShader);
+	ReferenceRenderer					refRenderer			(m_renderSize.x(), m_renderSize.y(), 1, tcuColorFormat, tcuDepthFormat, &program);
+	ReferenceRenderer					refRenderer64		(m_renderSize.x(), m_renderSize.y(), 1, tcuColorFormat64, tcuDepthFormat, &program);
+	ReferenceRenderer					refRenderer8		(m_renderSize.x(), m_renderSize.y(), 1, tcuColorFormat8, tcuDepthFormat, &program);
+	bool								compareOk			= false;
+
+	// Render reference image
+	{
+		for (int quadNdx = 0; quadNdx < BlendTest::QUAD_COUNT; quadNdx++)
+		{
+			const VkPipelineColorBlendAttachmentState& blendState = m_blendStates[quadNdx];
+
+			// Set blend state
+			rr::RenderState renderState					(refRenderer.getViewportState(), m_context.getDeviceProperties().limits.subPixelPrecisionBits);
+			renderState.fragOps.blendMode				= rr::BLENDMODE_STANDARD;
+			renderState.fragOps.blendRGBState.srcFunc	= mapVkBlendFactor(blendState.srcColorBlendFactor);
+			renderState.fragOps.blendRGBState.dstFunc	= mapVkBlendFactor(blendState.dstColorBlendFactor);
+			renderState.fragOps.blendRGBState.equation	= mapVkBlendOp(blendState.colorBlendOp);
+			renderState.fragOps.blendAState.srcFunc		= mapVkBlendFactor(blendState.srcAlphaBlendFactor);
+			renderState.fragOps.blendAState.dstFunc		= mapVkBlendFactor(blendState.dstAlphaBlendFactor);
+			renderState.fragOps.blendAState.equation	= mapVkBlendOp(blendState.alphaBlendOp);
+			renderState.fragOps.blendColor				= DualSourceBlendTest::s_blendConst;
+			renderState.fragOps.colorMask				= mapVkColorComponentFlags(DualSourceBlendTest::s_colorWriteMasks[quadNdx]);
+
+			refRenderer.draw(renderState,
+							rr::PRIMITIVETYPE_TRIANGLES,
+							std::vector<Vertex4RGBARGBA>(m_vertices.begin() + quadNdx * 6,
+													 m_vertices.begin() + (quadNdx + 1) * 6));
+
+			if (isLegalExpandableFormat(tcuColorFormat.type))
+			{
+				refRenderer64.draw(renderState,
+								   rr::PRIMITIVETYPE_TRIANGLES,
+								   std::vector<Vertex4RGBARGBA>(m_vertices.begin() + quadNdx * 6,
+								   m_vertices.begin() + (quadNdx + 1) * 6));
+
+				if (isSmallerThan8BitFormat(tcuColorFormat.type))
+					refRenderer8.draw(renderState,
+									  rr::PRIMITIVETYPE_TRIANGLES,
+									  std::vector<Vertex4RGBARGBA>(m_vertices.begin() + quadNdx * 6,
+									  m_vertices.begin() + (quadNdx + 1) * 6));
+			}
+		}
+	}
+
+	// Compare result with reference image
+	{
+		const DeviceInterface&				vk							= m_context.getDeviceInterface();
+		const VkDevice						vkDevice					= m_context.getDevice();
+		const VkQueue						queue						= m_context.getUniversalQueue();
+		const deUint32						queueFamilyIndex			= m_context.getUniversalQueueFamilyIndex();
+		SimpleAllocator						allocator					(vk, vkDevice, getPhysicalDeviceMemoryProperties(m_context.getInstanceInterface(), m_context.getPhysicalDevice()));
+		de::UniquePtr<tcu::TextureLevel>	result						(readColorAttachment(vk, vkDevice, queue, queueFamilyIndex, allocator, *m_colorImage, m_colorFormat, m_renderSize).release());
+		const tcu::Vec4						threshold					(getFormatThreshold(tcuColorFormat));
+		tcu::TextureLevel					refLevel;
+
+		refLevel.setStorage(tcuColorFormat, m_renderSize.x(), m_renderSize.y(), 1);
+
+		compareOk = tcu::floatThresholdCompare(m_context.getTestContext().getLog(),
+											   "FloatImageCompare",
+											   "Image comparison",
+											   refRenderer.getAccess(),
+											   result->getAccess(),
+											   threshold,
+											   tcu::COMPARE_LOG_RESULT);
+
+		if (isLegalExpandableFormat(tcuColorFormat.type))
+		{
+			if (!compareOk && isSmallerThan8BitFormat(tcuColorFormat.type))
+			{
+				// Convert to target format
+				tcu::copy(refLevel.getAccess(), refRenderer8.getAccess());
+
+				compareOk = tcu::floatThresholdCompare(m_context.getTestContext().getLog(),
+													   "FloatImageCompare",
+													   "Image comparison, 8 bit intermediate format",
+													   refLevel.getAccess(),
+													   result->getAccess(),
+													   threshold,
+													   tcu::COMPARE_LOG_RESULT);
+			}
+
+			if (!compareOk)
+			{
+				// Convert to target format
+				tcu::copy(refLevel.getAccess(), refRenderer64.getAccess());
+
+				compareOk = tcu::floatThresholdCompare(m_context.getTestContext().getLog(),
+													   "FloatImageCompare",
+													   "Image comparison, 64 bit intermediate format",
+													   refLevel.getAccess(),
+													   result->getAccess(),
+													   threshold,
+													   tcu::COMPARE_LOG_RESULT);
+			}
+		}
+	}
+
+	if (compareOk)
+		return tcu::TestStatus::pass("Result image matches reference");
+	else
+		return tcu::TestStatus::fail("Image mismatch");
+}
+
 // Clamping tests for colors and constants.
 
 struct ClampTestParams
@@ -1272,7 +1937,11 @@
 		"1mcc",		// VK_BLEND_ONE_MINUS_CONSTANT_COLOR
 		"ca",		// VK_BLEND_CONSTANT_ALPHA
 		"1mca",		// VK_BLEND_ONE_MINUS_CONSTANT_ALPHA
-		"sas"		// VK_BLEND_SRC_ALPHA_SATURATE
+		"sas",		// VK_BLEND_SRC_ALPHA_SATURATE
+		"1ms1c",	// VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR
+		"1ms1a",	// VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA
+		"s1c",		// VK_BLEND_FACTOR_SRC1_COLOR
+		"s1a"		// VK_BLEND_FACTOR_SRC1_ALPHA
 	};
 
 	const char* blendOpNames[] =
@@ -1376,44 +2045,97 @@
 		VK_FORMAT_B5G5R5A1_UNORM_PACK16,
 	};
 
-	de::MovePtr<tcu::TestCaseGroup>		blendTests		(new tcu::TestCaseGroup(testCtx, "blend", "Blend tests"));
-	de::MovePtr<tcu::TestCaseGroup>		formatTests		(new tcu::TestCaseGroup(testCtx, "format", "Uses different blend formats"));
-	de::MovePtr<tcu::TestCaseGroup>		clampTests		(new tcu::TestCaseGroup(testCtx, "clamp", "Verifies clamping for normalized formats"));
-	BlendStateUniqueRandomIterator		blendStateItr	(blendStatesPerFormat, 123);
+	de::MovePtr<tcu::TestCaseGroup>				blendTests				(new tcu::TestCaseGroup(testCtx, "blend", "Blend tests"));
+	de::MovePtr<tcu::TestCaseGroup>				formatTests				(new tcu::TestCaseGroup(testCtx, "format", "Uses different blend formats"));
+	de::MovePtr<tcu::TestCaseGroup>				clampTests				(new tcu::TestCaseGroup(testCtx, "clamp", "Verifies clamping for normalized formats"));
+	de::MovePtr<tcu::TestCaseGroup>				dualSourceBlendTests	(new tcu::TestCaseGroup(testCtx, "dual_source", "Blend tests taking into account dual-source blend factors"));
+	de::MovePtr<tcu::TestCaseGroup>				dualSourceFormatTests	(new tcu::TestCaseGroup(testCtx, "format", "Uses different blend formats"));
+
+
+	BlendStateUniqueRandomIterator				blendStateItr			(blendStatesPerFormat, 123);
+	BlendStateUniqueRandomIteratorDualSource	dualSourceBlendStateItr	(blendStatesPerFormat, 123);
 
 	for (size_t formatNdx = 0; formatNdx < DE_LENGTH_OF_ARRAY(blendFormats); formatNdx++)
 	{
 		const VkFormat					format			= blendFormats[formatNdx];
-		de::MovePtr<tcu::TestCaseGroup>	formatTest		(new tcu::TestCaseGroup(testCtx,
-																				getFormatCaseName(format).c_str(),
-																				(std::string("Uses format ") + getFormatName(format)).c_str()));
-		de::MovePtr<tcu::TestCaseGroup>	blendStateTests;
+
+		// Blend tests
 		{
-			std::ostringstream blendStateDescription;
-			blendStateDescription << "Combines blend factors, operators and channel write masks. The constant color used in all tests is " << BlendTest::s_blendConst;
-			blendStateTests = de::MovePtr<tcu::TestCaseGroup>(new tcu::TestCaseGroup(testCtx, "states", blendStateDescription.str().c_str()));
-		}
-
-		blendStateItr.reset();
-
-		while (blendStateItr.hasNext())
-		{
-			VkPipelineColorBlendAttachmentState quadBlendConfigs[BlendTest::QUAD_COUNT];
-
-			for (int quadNdx = 0; quadNdx < BlendTest::QUAD_COUNT; quadNdx++)
+			de::MovePtr<tcu::TestCaseGroup>	formatTest		(new tcu::TestCaseGroup(testCtx,
+																					getFormatCaseName(format).c_str(),
+																					(std::string("Uses format ") + getFormatName(format)).c_str()));
+			de::MovePtr<tcu::TestCaseGroup>	blendStateTests;
 			{
-				quadBlendConfigs[quadNdx]					= blendStateItr.next();
-				quadBlendConfigs[quadNdx].colorWriteMask	= BlendTest::s_colorWriteMasks[quadNdx];
+				std::ostringstream blendStateDescription;
+				blendStateDescription << "Combines blend factors, operators and channel write masks. The constant color used in all tests is " << BlendTest::s_blendConst;
+				blendStateTests = de::MovePtr<tcu::TestCaseGroup>(new tcu::TestCaseGroup(testCtx, "states", blendStateDescription.str().c_str()));
 			}
 
-			blendStateTests->addChild(new BlendTest(testCtx,
-													getBlendStateSetName(quadBlendConfigs),
-													getBlendStateSetDescription(quadBlendConfigs),
-													format,
-													quadBlendConfigs));
+			blendStateItr.reset();
+
+			while (blendStateItr.hasNext())
+			{
+				VkPipelineColorBlendAttachmentState quadBlendConfigs[BlendTest::QUAD_COUNT];
+
+				for (int quadNdx = 0; quadNdx < BlendTest::QUAD_COUNT; quadNdx++)
+				{
+					quadBlendConfigs[quadNdx]					= blendStateItr.next();
+					quadBlendConfigs[quadNdx].colorWriteMask	= BlendTest::s_colorWriteMasks[quadNdx];
+				}
+
+				blendStateTests->addChild(new BlendTest(testCtx,
+														getBlendStateSetName(quadBlendConfigs),
+														getBlendStateSetDescription(quadBlendConfigs),
+														format,
+														quadBlendConfigs));
+			}
+			formatTest->addChild(blendStateTests.release());
+			formatTests->addChild(formatTest.release());
 		}
-		formatTest->addChild(blendStateTests.release());
-		formatTests->addChild(formatTest.release());
+
+		// Dual-Source blending tests
+		{
+			de::MovePtr<tcu::TestCaseGroup>	formatTest		(new tcu::TestCaseGroup(testCtx,
+																					getFormatCaseName(format).c_str(),
+																					(std::string("Uses format ") + getFormatName(format)).c_str()));
+			de::MovePtr<tcu::TestCaseGroup>	blendStateTests;
+			{
+				std::ostringstream blendStateDescription;
+				blendStateDescription << "Combines blend factors, operators and channel write masks. The constant color used in all tests is " << BlendTest::s_blendConst;
+				blendStateTests = de::MovePtr<tcu::TestCaseGroup>(new tcu::TestCaseGroup(testCtx, "states", blendStateDescription.str().c_str()));
+			}
+
+			dualSourceBlendStateItr.reset();
+
+			while (dualSourceBlendStateItr.hasNext())
+			{
+				VkPipelineColorBlendAttachmentState quadBlendConfigs[BlendTest::QUAD_COUNT];
+				deBool isDualSourceBlendTest = DE_FALSE;
+				for (int quadNdx = 0; quadNdx < BlendTest::QUAD_COUNT; quadNdx++)
+				{
+					quadBlendConfigs[quadNdx]					= dualSourceBlendStateItr.next();
+					quadBlendConfigs[quadNdx].colorWriteMask	= BlendTest::s_colorWriteMasks[quadNdx];
+					isDualSourceBlendTest =
+						isDualSourceBlendTest ||
+						isSrc1BlendFactor(quadBlendConfigs[quadNdx].srcColorBlendFactor) ||
+						isSrc1BlendFactor(quadBlendConfigs[quadNdx].dstColorBlendFactor) ||
+						isSrc1BlendFactor(quadBlendConfigs[quadNdx].srcAlphaBlendFactor) ||
+						isSrc1BlendFactor(quadBlendConfigs[quadNdx].dstAlphaBlendFactor);
+				}
+
+				// Skip tests that don't have dual-source blend factors as they are already tested.
+				if (!isDualSourceBlendTest)
+					continue;
+
+				blendStateTests->addChild(new DualSourceBlendTest(testCtx,
+																  getBlendStateSetName(quadBlendConfigs),
+																  getBlendStateSetDescription(quadBlendConfigs),
+																  format,
+																  quadBlendConfigs));
+			}
+			formatTest->addChild(blendStateTests.release());
+			dualSourceFormatTests->addChild(formatTest.release());
+		}
 	}
 
 	// Subselection of formats that are easy to test for clamping.
@@ -1465,6 +2187,9 @@
 	blendTests->addChild(formatTests.release());
 	blendTests->addChild(clampTests.release());
 
+	dualSourceBlendTests->addChild(dualSourceFormatTests.release());
+	blendTests->addChild(dualSourceBlendTests.release());
+
 	return blendTests.release();
 }
 
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineDepthRangeUnrestrictedTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineDepthRangeUnrestrictedTests.cpp
index fc22f93..1d02c9b 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineDepthRangeUnrestrictedTests.cpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineDepthRangeUnrestrictedTests.cpp
@@ -1309,7 +1309,7 @@
 			if (isFloatingPointDepthFormat(m_param.depthFormat) == VK_FALSE)
 				depth = de::min(de::max(depth, 0.0f), 1.0f);
 
-			long i = vertex - m_vertices.begin();
+			auto i = vertex - m_vertices.begin();
 
 			// Depending if the first draw call succeed, we need to know if the second draw call will render the points because the depth buffer content
 			// will determine if it passes the depth test and the depth bounds test.
@@ -1379,7 +1379,7 @@
 			float scaling = (vertex->position.z() / vertex->position.w()) * (m_param.viewportMaxDepth - m_param.viewportMinDepth) + m_param.viewportMinDepth;
 			float expectedDepth = de::min(de::max(scaling, m_param.viewportMinDepth), m_param.viewportMaxDepth);
 
-			long i = vertex - m_vertices.begin();
+			auto i = vertex - m_vertices.begin();
 
 			// Depending if the first draw call succeed, we need to know if the second draw call will render the points because the depth buffer content
 			// will determine if it passes the depth test and the depth bounds test.
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineDepthTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineDepthTests.cpp
index 20c3d4d..c715290 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineDepthTests.cpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineDepthTests.cpp
@@ -287,12 +287,6 @@
 			"{\n"
 			"	gl_Position = position;\n"
 			"}\n");
-
-		programCollection.glslSources.add("color_frag") << glu::FragmentSource(
-			"#version 310 es\n"
-			"void main (void)\n"
-			"{\n"
-			"}\n");
 	}
 
 }
@@ -470,8 +464,9 @@
 	}
 
 	// Shader modules
-	m_vertexShaderModule	= createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("color_vert"), 0);
-	m_fragmentShaderModule	= createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("color_frag"), 0);
+	m_vertexShaderModule		= createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("color_vert"), 0);
+	if (m_colorAttachmentEnable)
+		m_fragmentShaderModule	= createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("color_frag"), 0);
 
 	// Create pipeline
 	{
@@ -546,6 +541,24 @@
 			m_depthBoundsMax,			// float			maxDepthBounds;
 		};
 
+		// Make sure rasterization is not disabled when the fragment shader is missing.
+		const vk::VkPipelineRasterizationStateCreateInfo rasterizationStateParams =
+		{
+			vk::VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,	//	VkStructureType							sType;
+			nullptr,														//	const void*								pNext;
+			0u,																//	VkPipelineRasterizationStateCreateFlags	flags;
+			VK_FALSE,														//	VkBool32								depthClampEnable;
+			VK_FALSE,														//	VkBool32								rasterizerDiscardEnable;
+			vk::VK_POLYGON_MODE_FILL,										//	VkPolygonMode							polygonMode;
+			vk::VK_CULL_MODE_NONE,											//	VkCullModeFlags							cullMode;
+			vk::VK_FRONT_FACE_COUNTER_CLOCKWISE,							//	VkFrontFace								frontFace;
+			VK_FALSE,														//	VkBool32								depthBiasEnable;
+			0.0f,															//	float									depthBiasConstantFactor;
+			0.0f,															//	float									depthBiasClamp;
+			0.0f,															//	float									depthBiasSlopeFactor;
+			1.0f,															//	float									lineWidth;
+		};
+
 		for (int quadNdx = 0; quadNdx < DepthTest::QUAD_COUNT; quadNdx++)
 		{
 			depthStencilStateParams.depthCompareOp	= depthCompareOps[quadNdx];
@@ -564,7 +577,7 @@
 																		   0u,									// const deUint32                                subpass
 																		   0u,									// const deUint32                                patchControlPoints
 																		   &vertexInputStateParams,				// const VkPipelineVertexInputStateCreateInfo*   vertexInputStateCreateInfo
-																		   DE_NULL,								// const VkPipelineRasterizationStateCreateInfo* rasterizationStateCreateInfo
+																		   &rasterizationStateParams,			// const VkPipelineRasterizationStateCreateInfo* rasterizationStateCreateInfo
 																		   DE_NULL,								// const VkPipelineMultisampleStateCreateInfo*   multisampleStateCreateInfo
 																		   &depthStencilStateParams);			// const VkPipelineDepthStencilStateCreateInfo*  depthStencilStateCreateInfo
 		}
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineDynamicOffsetTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineDynamicOffsetTests.cpp
index 43bb72b..4151bf7 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineDynamicOffsetTests.cpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineDynamicOffsetTests.cpp
@@ -45,6 +45,7 @@
 #include "deUniquePtr.hpp"
 #include "tcuTestLog.hpp"
 #include <vector>
+#include <sstream>
 
 namespace vkt
 {
@@ -63,6 +64,13 @@
 typedef de::SharedPtr<Unique<VkFramebuffer> >	VkFramebufferSp;
 typedef de::SharedPtr<Unique<VkPipeline> >		VkPipelineSp;
 
+enum class GroupingStrategy
+{
+	SINGLE_SET	= 0,
+	MULTISET	= 1,
+	ARRAYS		= 2,
+};
+
 struct TestParams
 {
 	VkDescriptorType	descriptorType;
@@ -71,6 +79,7 @@
 	deUint32			numDescriptorSetBindings;
 	deUint32			numDynamicBindings;
 	deUint32			numNonDynamicBindings;
+	GroupingStrategy	groupingStrategy;
 };
 
 vector<Vertex4RGBA> createQuads (deUint32 numQuads, float size)
@@ -133,28 +142,28 @@
 	tcu::TestStatus				verifyImage							(void);
 
 private:
-	const tcu::UVec2			m_renderSize;
-	const VkFormat				m_colorFormat;
-	VkImageCreateInfo			m_colorImageCreateInfo;
-	Move<VkImage>				m_colorImage;
-	de::MovePtr<Allocation>		m_colorImageAlloc;
-	Move<VkImageView>			m_colorAttachmentView;
-	vector<VkRenderPassSp>		m_renderPasses;
-	vector<VkFramebufferSp>		m_framebuffers;
-	Move<VkShaderModule>		m_vertexShaderModule;
-	Move<VkShaderModule>		m_fragmentShaderModule;
-	Move<VkBuffer>				m_vertexBuffer;
-	de::MovePtr<Allocation>		m_vertexBufferAlloc;
-	Move<VkBuffer>				m_buffer;
-	de::MovePtr<Allocation>		m_bufferAlloc;
-	Move<VkDescriptorSetLayout>	m_descriptorSetLayout;
-	Move<VkDescriptorPool>		m_descriptorPool;
-	Move<VkDescriptorSet>		m_descriptorSet;
-	Move<VkPipelineLayout>		m_pipelineLayout;
-	vector<VkPipelineSp>		m_graphicsPipelines;
-	Move<VkCommandPool>			m_cmdPool;
-	vector<VkCommandBufferSp>	m_cmdBuffers;
-	vector<Vertex4RGBA>			m_vertices;
+	const tcu::UVec2					m_renderSize;
+	const VkFormat						m_colorFormat;
+	VkImageCreateInfo					m_colorImageCreateInfo;
+	Move<VkImage>						m_colorImage;
+	de::MovePtr<Allocation>				m_colorImageAlloc;
+	Move<VkImageView>					m_colorAttachmentView;
+	vector<VkRenderPassSp>				m_renderPasses;
+	vector<VkFramebufferSp>				m_framebuffers;
+	Move<VkShaderModule>				m_vertexShaderModule;
+	Move<VkShaderModule>				m_fragmentShaderModule;
+	Move<VkBuffer>						m_vertexBuffer;
+	de::MovePtr<Allocation>				m_vertexBufferAlloc;
+	Move<VkBuffer>						m_buffer;
+	de::MovePtr<Allocation>				m_bufferAlloc;
+	vector<Move<VkDescriptorSetLayout>>	m_descriptorSetLayouts;
+	Move<VkDescriptorPool>				m_descriptorPool;
+	vector<Move<VkDescriptorSet>>		m_descriptorSets;
+	Move<VkPipelineLayout>				m_pipelineLayout;
+	vector<VkPipelineSp>				m_graphicsPipelines;
+	Move<VkCommandPool>					m_cmdPool;
+	vector<VkCommandBufferSp>			m_cmdBuffers;
+	vector<Vertex4RGBA>					m_vertices;
 };
 
 DynamicOffsetGraphicsTestInstance::DynamicOffsetGraphicsTestInstance (Context& context, const TestParams& params)
@@ -175,11 +184,16 @@
 	deUint32						offset						= 0;
 	deUint32						quadNdx						= 0;
 	const VkPhysicalDeviceLimits	deviceLimits				= getPhysicalDeviceProperties(m_context.getInstanceInterface(), m_context.getPhysicalDevice()).limits;
-	const VkDeviceSize				colorBlockInputSize			= de::max(kColorSize, m_params.descriptorType == VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC ? deviceLimits.minUniformBufferOffsetAlignment : deviceLimits.minStorageBufferOffsetAlignment);
+	const VkDeviceSize				alignment					= ((m_params.descriptorType == VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC) ? deviceLimits.minUniformBufferOffsetAlignment : deviceLimits.minStorageBufferOffsetAlignment);
+	const VkDeviceSize				extraBytes					= kColorSize % alignment;
+	const VkDeviceSize				colorBlockInputSize			= ((extraBytes == 0ull) ? kColorSize : (kColorSize + alignment - extraBytes));
 	const VkDeviceSize				bufferSize					= colorBlockInputSize * kNumTestColors;
 	const VkDeviceSize				bindingOffset				= bufferSize / numBindings;
 	const VkDescriptorType			nonDynamicDescriptorType	= m_params.descriptorType == VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC ? VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER;
 
+	vector<VkDescriptorSetLayout>	descriptorSetLayoutsPlain;
+	vector<VkDescriptorSet>			descriptorSetsPlain;
+
 	// Create color image
 	{
 
@@ -228,7 +242,7 @@
 	}
 
 	// Create render passes
-	for (deUint32 renderPassIdx = 0; renderPassIdx < 2; renderPassIdx++)
+	for (deUint32 renderPassIdx = 0; renderPassIdx < m_params.numCmdBuffers; renderPassIdx++)
 	{
 		// The first pass clears the output image, and the second one draws on top of the first pass.
 		const VkAttachmentLoadOp		loadOps[]				=
@@ -293,7 +307,7 @@
 	}
 
 	// Create framebuffers
-	for (deUint32 framebufferIdx = 0; framebufferIdx < 2; framebufferIdx++)
+	for (deUint32 framebufferIdx = 0; framebufferIdx < m_params.numCmdBuffers; framebufferIdx++)
 	{
 		const VkImageView				attachmentBindInfos[]	=
 		{
@@ -318,45 +332,77 @@
 
 	// Create pipeline layout
 	{
-		// Create descriptor set layout
+		// Create descriptor set layouts
 		vector<VkDescriptorSetLayoutBinding>	descriptorSetLayoutBindings;
 
 		for (deUint32 binding = 0; binding < numBindings; binding++)
 		{
-			const VkDescriptorType					descriptorType					= binding >= m_params.numDynamicBindings ? nonDynamicDescriptorType : m_params.descriptorType;
+			const bool								dynamicDesc						= (binding < m_params.numDynamicBindings);
+			const VkDescriptorType					descriptorType					= (dynamicDesc ? m_params.descriptorType : nonDynamicDescriptorType);
+			const deUint32							bindingNumber					= (m_params.groupingStrategy == GroupingStrategy::SINGLE_SET ? binding : 0u);
+			const deUint32							descriptorCount					= ((m_params.groupingStrategy == GroupingStrategy::ARRAYS) ? (dynamicDesc ? m_params.numDynamicBindings : m_params.numNonDynamicBindings) : 1u);
 			const VkDescriptorSetLayoutBinding		descriptorSetLayoutBinding		=
 			{
-				binding,					// uint32_t				binding;
+				bindingNumber,				// uint32_t				binding;
 				descriptorType,				// VkDescriptorType		descriptorType;
-				1u,							// uint32_t				descriptorCount;
+				descriptorCount,			// uint32_t				descriptorCount;
 				VK_SHADER_STAGE_VERTEX_BIT,	// VkShaderStageFlags	stageFlags;
 				DE_NULL						// const VkSampler*		pImmutableSamplers;
 			};
 
+			// Skip used descriptors in array mode.
+			if (m_params.groupingStrategy == GroupingStrategy::ARRAYS)
+				binding = (dynamicDesc ? m_params.numDynamicBindings - 1 : numBindings);
+
 			descriptorSetLayoutBindings.push_back(descriptorSetLayoutBinding);
 		}
 
-		const VkDescriptorSetLayoutCreateInfo	descriptorSetLayoutCreateInfo	=
-		{
-			VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,	// VkStructureType						sType;
-			DE_NULL,												// const void*							pNext;
-			0u,														// VkDescriptorSetLayoutCreateFlags		flags;
-			numBindings,											// uint32_t								bindingCount;
-			descriptorSetLayoutBindings.data()						// const VkDescriptorSetLayoutBinding*	pBindings;
-		};
+		vector<VkDescriptorSetLayoutCreateInfo> descriptorSetLayoutCreateInfos;
 
-		m_descriptorSetLayout = createDescriptorSetLayout(vk, vkDevice, &descriptorSetLayoutCreateInfo, DE_NULL);
+		if (m_params.groupingStrategy == GroupingStrategy::SINGLE_SET)
+		{
+			const VkDescriptorSetLayoutCreateInfo	descriptorSetLayoutCreateInfo	=
+			{
+				VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,	// VkStructureType						sType;
+				DE_NULL,												// const void*							pNext;
+				0u,														// VkDescriptorSetLayoutCreateFlags		flags;
+				numBindings,											// uint32_t								bindingCount;
+				descriptorSetLayoutBindings.data()						// const VkDescriptorSetLayoutBinding*	pBindings;
+			};
+
+			m_descriptorSetLayouts.push_back(createDescriptorSetLayout(vk, vkDevice, &descriptorSetLayoutCreateInfo));
+		}
+		else
+		{
+			for (size_t i = 0; i < descriptorSetLayoutBindings.size(); ++i)
+			{
+				const VkDescriptorSetLayoutCreateInfo	descriptorSetLayoutCreateInfo	=
+				{
+					VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,	// VkStructureType						sType;
+					DE_NULL,												// const void*							pNext;
+					0u,														// VkDescriptorSetLayoutCreateFlags		flags;
+					1u,														// uint32_t								bindingCount;
+					&descriptorSetLayoutBindings[i]							// const VkDescriptorSetLayoutBinding*	pBindings;
+				};
+
+				m_descriptorSetLayouts.push_back(createDescriptorSetLayout(vk, vkDevice, &descriptorSetLayoutCreateInfo));
+			}
+		}
 
 		// Create pipeline layout
+		descriptorSetLayoutsPlain.resize(m_descriptorSetLayouts.size());
+		for (size_t i = 0; i < descriptorSetLayoutsPlain.size(); ++i)
+			descriptorSetLayoutsPlain[i] = m_descriptorSetLayouts[i].get();
+
 		const VkPipelineLayoutCreateInfo		pipelineLayoutParams			=
 		{
-			VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,	// VkStructureType				sType;
-			DE_NULL,										// const void*					pNext;
-			0u,												// VkPipelineLayoutCreateFlags	flags;
-			1u,												// deUint32						descriptorSetCount;
-			&(*m_descriptorSetLayout),						// const VkDescriptorSetLayout*	pSetLayouts;
-			0u,												// deUint32						pushConstantRangeCount;
-			DE_NULL											// const VkPushDescriptorRange*	pPushDescriptorRanges;
+			VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,				// VkStructureType				sType;
+			DE_NULL,													// const void*					pNext;
+			0u,															// VkPipelineLayoutCreateFlags	flags;
+			static_cast<deUint32>(descriptorSetLayoutsPlain.size()),	// deUint32						descriptorSetCount;
+			descriptorSetLayoutsPlain.data(),							// const VkDescriptorSetLayout*	pSetLayouts;
+			0u,															// deUint32						pushConstantRangeCount;
+			DE_NULL														// const VkPushDescriptorRange*	pPushDescriptorRanges;
 		};
 
 		m_pipelineLayout = createPipelineLayout(vk, vkDevice, &pipelineLayoutParams);
@@ -395,26 +441,34 @@
 		DescriptorPoolBuilder	poolBuilder;
 		poolBuilder.addType(m_params.descriptorType, m_params.numDynamicBindings);
 		poolBuilder.addType(nonDynamicDescriptorType, m_params.numNonDynamicBindings);
-		m_descriptorPool = poolBuilder.build(vk, vkDevice, VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, 1u);
+		m_descriptorPool = poolBuilder.build(vk, vkDevice, VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, static_cast<deUint32>(m_descriptorSetLayouts.size()));
 	}
 
-	// Create descriptor set
+	// Create descriptor sets
 	{
-		const VkDescriptorSetAllocateInfo allocInfo =
+		for (size_t i = 0; i < m_descriptorSetLayouts.size(); ++i)
 		{
-			VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO,	// VkStructureType					sType;
-			DE_NULL,										// const void*						pNext;
-			*m_descriptorPool,								// VkDescriptorPool					descriptorPool;
-			1u,												// deUint32							setLayoutCount;
-			&(*m_descriptorSetLayout),						// const VkDescriptorSetLayout*		pSetLayouts;
-		};
-		m_descriptorSet	= allocateDescriptorSet(vk, vkDevice, &allocInfo);
+			const VkDescriptorSetAllocateInfo allocInfo =
+			{
+				VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO,	// VkStructureType					sType;
+				DE_NULL,										// const void*						pNext;
+				*m_descriptorPool,								// VkDescriptorPool					descriptorPool;
+				1u,												// deUint32							setLayoutCount;
+				&(m_descriptorSetLayouts[i].get()),				// const VkDescriptorSetLayout*		pSetLayouts;
+			};
+			m_descriptorSets.push_back(allocateDescriptorSet(vk, vkDevice, &allocInfo));
+		}
 	}
 
-	// Update descriptor set
+	descriptorSetsPlain.resize(m_descriptorSets.size());
+	for (size_t i = 0; i < descriptorSetsPlain.size(); ++i)
+		descriptorSetsPlain[i] = m_descriptorSets[i].get();
+
+	// Update descriptor sets
 	for (deUint32 binding = 0; binding < numBindings; ++binding)
 	{
-		const VkDescriptorType			descriptorType			= binding >= m_params.numDynamicBindings ? nonDynamicDescriptorType : m_params.descriptorType;
+		const bool						dynamicDesc				= (binding < m_params.numDynamicBindings);
+		const VkDescriptorType			descriptorType			= (dynamicDesc ? m_params.descriptorType : nonDynamicDescriptorType);
 		const VkDescriptorBufferInfo	descriptorBufferInfo	=
 		{
 			*m_buffer,					// VkBuffer			buffer;
@@ -422,13 +476,36 @@
 			kColorSize					// VkDeviceSize		range;
 		};
 
+		VkDescriptorSet	bindingSet;
+		deUint32		bindingNumber;
+		deUint32		dstArrayElement;
+
+		if (m_params.groupingStrategy == GroupingStrategy::SINGLE_SET)
+		{
+			bindingSet		= m_descriptorSets[0].get();
+			bindingNumber	= binding;
+			dstArrayElement	= 0u;
+		}
+		else if (m_params.groupingStrategy == GroupingStrategy::MULTISET)
+		{
+			bindingSet		= m_descriptorSets[binding].get();
+			bindingNumber	= 0u;
+			dstArrayElement	= 0u;
+		}
+		else // GroupingStrategy::ARRAYS
+		{
+			bindingSet		= (dynamicDesc ? m_descriptorSets[0].get() : m_descriptorSets[1].get());
+			bindingNumber	= 0u;
+			dstArrayElement	= (dynamicDesc ? binding : (binding - m_params.numDynamicBindings));
+		}
+
 		const VkWriteDescriptorSet		writeDescriptorSet		=
 		{
 			VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,	// VkStructureType					sType;
 			DE_NULL,								// const void*						pNext;
-			*m_descriptorSet,						// VkDescriptorSet					dstSet;
-			binding,								// uint32_t							dstBinding;
-			0u,										// uint32_t							dstArrayElement;
+			bindingSet,								// VkDescriptorSet					dstSet;
+			bindingNumber,							// uint32_t							dstBinding;
+			dstArrayElement,						// uint32_t							dstArrayElement;
 			1u,										// uint32_t							descriptorCount;
 			descriptorType,							// VkDescriptorType					descriptorType;
 			DE_NULL,								// const VkDescriptorImageInfo*		pImageInfo;
@@ -446,7 +523,7 @@
 	}
 
 	// Create pipelines
-	for (deUint32 pipelineIdx = 0; pipelineIdx < 2; pipelineIdx++)
+	for (deUint32 pipelineIdx = 0; pipelineIdx < m_params.numCmdBuffers; pipelineIdx++)
 	{
 		const VkVertexInputBindingDescription		vertexInputBindingDescription		=
 		{
@@ -552,7 +629,7 @@
 			for (deUint32 dynamicBindingIdx = 0; dynamicBindingIdx < m_params.numDynamicBindings; dynamicBindingIdx++)
 				offsets.push_back(offset + (deUint32)colorBlockInputSize * dynamicBindingIdx);
 
-			vk.cmdBindDescriptorSets(**m_cmdBuffers[idx], VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipelineLayout, 0u, 1u, &m_descriptorSet.get(), m_params.numDynamicBindings, offsets.data());
+			vk.cmdBindDescriptorSets(**m_cmdBuffers[idx], VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipelineLayout, 0u, static_cast<deUint32>(descriptorSetsPlain.size()), descriptorSetsPlain.data(), m_params.numDynamicBindings, offsets.data());
 			offset += (deUint32)colorBlockInputSize;
 
 			// Draw quad
@@ -670,18 +747,57 @@
 
 void DynamicOffsetGraphicsTest::initPrograms (SourceCollections& sourceCollections) const
 {
-	const deUint32	numBindings	= m_params.numDynamicBindings + m_params.numNonDynamicBindings;
-	const string	bufferType	= m_params.descriptorType == VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC ? "uniform" : "readonly buffer";
-	string			inputBlocks;
-	string			inputSum;
+	const deUint32	numBindings		= m_params.numDynamicBindings + m_params.numNonDynamicBindings;
+	const string	bufferType		= m_params.descriptorType == VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC ? "uniform" : "readonly buffer";
+	ostringstream	inputBlocks;
+	ostringstream	inputSum;
+	string			setAndBinding;
+	string			blockSuffix;
+	string			accessSuffix;
+	bool			dynArrayDecl	= false;	// Dynamic descriptor block array declared?
+	bool			nonDynArrayDecl	= false;	// Nondynamic descriptor block array declared?
 
-	for (deUint32 binding = 0; binding < numBindings; binding++)
+	for (deUint32 b = 0; b < numBindings; b++)
 	{
-		const string b = de::toString(binding);
-		inputBlocks +=
-			string("layout(set = 0, binding = ") + b + ") " + bufferType + " Block" + b + "\n"
-			+ "{\n" + "    vec4 color;\n" + "} inputData" + b + ";\n";
-		inputSum += string("    vtxColor.rgb += inputData") + b + ".color.rgb;\n";
+		const bool		dynBind	= (b < m_params.numDynamicBindings);
+		const string	bStr	= de::toString(b);
+
+		if (m_params.groupingStrategy == GroupingStrategy::SINGLE_SET)
+		{
+			setAndBinding	= "set = 0, binding = " + bStr;
+			blockSuffix		= bStr;
+			accessSuffix	= bStr;
+		}
+		else if (m_params.groupingStrategy == GroupingStrategy::MULTISET)
+		{
+			setAndBinding	= "set = " + bStr + ", binding = 0";
+			blockSuffix		= bStr;
+			accessSuffix	= bStr;
+		}
+		else // GroupingStrategy::ARRAYS
+		{
+			// In array mode, only two sets are declared, one with an array of dynamic descriptors and another one with an array of
+			// nondynamic descriptors.
+			setAndBinding	= "set = " + string(dynBind ? "0" : "1") + ", binding = 0";
+			blockSuffix		= string(dynBind ? "Dyn" : "NonDyn") + "[" + (dynBind ? de::toString(m_params.numDynamicBindings) : de::toString(m_params.numNonDynamicBindings)) + "]";
+			accessSuffix	= string(dynBind ? "Dyn" : "NonDyn") + "[" + (dynBind ? de::toString(b) : de::toString(b - m_params.numDynamicBindings)) + "]";
+		}
+
+		// In array mode, declare the input block only once per descriptor type.
+		bool& arrayDeclFlag = (dynBind ? dynArrayDecl : nonDynArrayDecl);
+		if (m_params.groupingStrategy != GroupingStrategy::ARRAYS || !arrayDeclFlag)
+		{
+			inputBlocks
+				<< "layout(" << setAndBinding << ") " << bufferType << " Block" << bStr << "\n"
+				<< "{\n"
+				<< "    vec4 color;\n"
+				<< "} inputData" << blockSuffix << ";\n"
+				;
+			arrayDeclFlag = true;
+		}
+
+		// But the sum always needs to be added once per descriptor.
+		inputSum << "    vtxColor.rgb += inputData" << accessSuffix << ".color.rgb;\n";
 	}
 
 	const string	vertexSrc	=
@@ -689,7 +805,7 @@
 		"layout(location = 0) in highp vec4 position;\n"
 		"layout(location = 1) in highp vec4 color;\n"
 		"layout(location = 0) out highp vec4 vtxColor;\n"
-		+ inputBlocks +
+		+ inputBlocks.str() +
 		"\n"
 		"out gl_PerVertex { vec4 gl_Position; };\n"
 		"\n"
@@ -697,7 +813,7 @@
 		"{\n"
 		"    gl_Position = position;\n"
 		"    vtxColor = vec4(0, 0, 0, 1);\n"
-		+ inputSum +
+		+ inputSum.str() +
 		"}\n";
 
 	const string	fragmentSrc	=
@@ -724,21 +840,21 @@
 	tcu::TestStatus				verifyOutput						(void);
 
 private:
-	const deUint32					m_numBindings;
-	const deUint32					m_numOutputColors;
-	const VkPhysicalDeviceLimits	m_deviceLimits;
-	Move<VkShaderModule>			m_computeShaderModule;
-	Move<VkBuffer>					m_buffer;
-	de::MovePtr<Allocation>			m_bufferAlloc;
-	Move<VkDescriptorSetLayout>		m_descriptorSetLayout;
-	Move<VkDescriptorPool>			m_descriptorPool;
-	Move<VkDescriptorSet>			m_descriptorSet;
-	Move<VkPipelineLayout>			m_pipelineLayout;
-	Move<VkPipeline>				m_computePipeline;
-	Move<VkBuffer>					m_outputBuffer;
-	de::MovePtr<Allocation>			m_outputBufferAlloc;
-	Move<VkCommandPool>				m_cmdPool;
-	vector<VkCommandBufferSp>		m_cmdBuffers;
+	const deUint32						m_numBindings;
+	const deUint32						m_numOutputColors;
+	const VkPhysicalDeviceLimits		m_deviceLimits;
+	Move<VkShaderModule>				m_computeShaderModule;
+	Move<VkBuffer>						m_buffer;
+	de::MovePtr<Allocation>				m_bufferAlloc;
+	vector<Move<VkDescriptorSetLayout>>	m_descriptorSetLayouts;
+	Move<VkDescriptorPool>				m_descriptorPool;
+	vector<Move<VkDescriptorSet>>		m_descriptorSets;
+	Move<VkPipelineLayout>				m_pipelineLayout;
+	Move<VkPipeline>					m_computePipeline;
+	Move<VkBuffer>						m_outputBuffer;
+	de::MovePtr<Allocation>				m_outputBufferAlloc;
+	Move<VkCommandPool>					m_cmdPool;
+	vector<VkCommandBufferSp>			m_cmdBuffers;
 };
 
 DynamicOffsetComputeTestInstance::DynamicOffsetComputeTestInstance (Context& context, const TestParams& params)
@@ -751,41 +867,55 @@
 
 void DynamicOffsetComputeTestInstance::init (void)
 {
-	const DeviceInterface&		vk							= m_context.getDeviceInterface();
-	const VkDevice				vkDevice					= m_context.getDevice();
-	const deUint32				queueFamilyIndex			= m_context.getUniversalQueueFamilyIndex();
-	const VkDeviceSize			colorBlockInputSize			= de::max(kColorSize, m_params.descriptorType == VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC ? m_deviceLimits.minUniformBufferOffsetAlignment : m_deviceLimits.minStorageBufferOffsetAlignment);
-	const deUint32				colorBlockInputSizeU32		= static_cast<deUint32>(colorBlockInputSize);
-	const VkDeviceSize			colorBlockOutputSize		= de::max(kColorSize, m_deviceLimits.minStorageBufferOffsetAlignment);
-	const deUint32				colorBlockOutputSizeU32		= static_cast<deUint32>(colorBlockOutputSize);
-	const VkDeviceSize			bufferSize					= colorBlockInputSize * kNumTestColors;
-	const VkDeviceSize			bindingOffset				= bufferSize / m_numBindings;
-	const VkDescriptorType		nonDynamicDescriptorType	= m_params.descriptorType == VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC ? VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER;
-	const VkDeviceSize			outputBufferSize			= colorBlockOutputSize * m_numOutputColors;
+	const DeviceInterface&			vk							= m_context.getDeviceInterface();
+	const VkDevice					vkDevice					= m_context.getDevice();
+	const deUint32					queueFamilyIndex			= m_context.getUniversalQueueFamilyIndex();
+	const VkDeviceSize				inputAlignment				= ((m_params.descriptorType == VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC) ? m_deviceLimits.minUniformBufferOffsetAlignment : m_deviceLimits.minStorageBufferOffsetAlignment);
+	const VkDeviceSize				inputExtraBytes				= kColorSize % inputAlignment;
+	const VkDeviceSize				colorBlockInputSize			= ((inputExtraBytes == 0ull) ? kColorSize : (kColorSize + inputAlignment - inputExtraBytes));
+	const deUint32					colorBlockInputSizeU32		= static_cast<deUint32>(colorBlockInputSize);
+	const VkDeviceSize				outputExtraBytes			= kColorSize % m_deviceLimits.minStorageBufferOffsetAlignment;
+	const VkDeviceSize				colorBlockOutputSize		= ((outputExtraBytes == 0ull) ? kColorSize : (kColorSize + m_deviceLimits.minStorageBufferOffsetAlignment - outputExtraBytes));
+	const deUint32					colorBlockOutputSizeU32		= static_cast<deUint32>(colorBlockOutputSize);
+	const VkDeviceSize				bufferSize					= colorBlockInputSize * kNumTestColors;
+	const VkDeviceSize				bindingOffset				= bufferSize / m_numBindings;
+	const VkDescriptorType			nonDynamicDescriptorType	= m_params.descriptorType == VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC ? VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER : VK_DESCRIPTOR_TYPE_STORAGE_BUFFER;
+	const VkDeviceSize				outputBufferSize			= colorBlockOutputSize * m_numOutputColors;
+
+	vector<VkDescriptorSetLayout>	descriptorSetLayoutsPlain;
+	vector<VkDescriptorSet>			descriptorSetsPlain;
 
 	// Create pipeline layout
 	{
-		// Create descriptor set layout
+		// Create descriptor set layouts
 		vector<VkDescriptorSetLayoutBinding>	descriptorSetLayoutBindings;
 
 		for (deUint32 binding = 0; binding < m_numBindings; binding++)
 		{
-			const VkDescriptorType					descriptorType				= binding >= m_params.numDynamicBindings ? nonDynamicDescriptorType : m_params.descriptorType;
+			const bool								dynamicDesc					= (binding < m_params.numDynamicBindings);
+			const VkDescriptorType					descriptorType				= (dynamicDesc ? m_params.descriptorType : nonDynamicDescriptorType);
+			const deUint32							bindingNumber				= (m_params.groupingStrategy == GroupingStrategy::SINGLE_SET ? binding : 0u);
+			const deUint32							descriptorCount				= ((m_params.groupingStrategy == GroupingStrategy::ARRAYS) ? (dynamicDesc ? m_params.numDynamicBindings : m_params.numNonDynamicBindings) : 1u);
 			const VkDescriptorSetLayoutBinding		descriptorSetLayoutBinding	=
 			{
-				binding,						// uint32_t				binding;
+				bindingNumber,					// uint32_t				binding;
 				descriptorType,					// VkDescriptorType		descriptorType;
-				1u,								// uint32_t				descriptorCount;
+				descriptorCount,				// uint32_t				descriptorCount;
 				VK_SHADER_STAGE_COMPUTE_BIT,	// VkShaderStageFlags	stageFlags;
 				DE_NULL							// const VkSampler*		pImmutableSamplers;
 			};
 
+			// Skip used descriptors in array mode.
+			if (m_params.groupingStrategy == GroupingStrategy::ARRAYS)
+				binding = (dynamicDesc ? m_params.numDynamicBindings - 1 : m_numBindings);
+
 			descriptorSetLayoutBindings.push_back(descriptorSetLayoutBinding);
 		}
 
+		const deUint32							bindingNumberOutput					= (m_params.groupingStrategy == GroupingStrategy::SINGLE_SET ? m_numBindings : 0u);
 		const VkDescriptorSetLayoutBinding		descriptorSetLayoutBindingOutput	=
 		{
-			m_numBindings,								// uint32_t				binding;
+			bindingNumberOutput,						// uint32_t				binding;
 			VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC,	// VkDescriptorType		descriptorType;
 			1u,											// uint32_t				descriptorCount;
 			VK_SHADER_STAGE_COMPUTE_BIT,				// VkShaderStageFlags	stageFlags;
@@ -794,27 +924,50 @@
 
 		descriptorSetLayoutBindings.push_back(descriptorSetLayoutBindingOutput);
 
-		const VkDescriptorSetLayoutCreateInfo	descriptorSetLayoutCreateInfo	=
+		if (m_params.groupingStrategy == GroupingStrategy::SINGLE_SET)
 		{
-			VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,	// VkStructureType						sType;
-			DE_NULL,												// const void*							pNext;
-			0u,														// VkDescriptorSetLayoutCreateFlags		flags;
-			m_numBindings + 1,										// uint32_t								bindingCount;
-			descriptorSetLayoutBindings.data()						// const VkDescriptorSetLayoutBinding*	pBindings;
-		};
+			const VkDescriptorSetLayoutCreateInfo	descriptorSetLayoutCreateInfo	=
+			{
+				VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,	// VkStructureType						sType;
+				DE_NULL,												// const void*							pNext;
+				0u,														// VkDescriptorSetLayoutCreateFlags		flags;
+				m_numBindings + 1,										// uint32_t								bindingCount;
+				descriptorSetLayoutBindings.data()						// const VkDescriptorSetLayoutBinding*	pBindings;
+			};
 
-		m_descriptorSetLayout = createDescriptorSetLayout(vk, vkDevice, &descriptorSetLayoutCreateInfo, DE_NULL);
+			m_descriptorSetLayouts.push_back(createDescriptorSetLayout(vk, vkDevice, &descriptorSetLayoutCreateInfo, DE_NULL));
+		}
+		else
+		{
+			for (size_t i = 0; i < descriptorSetLayoutBindings.size(); ++i)
+			{
+				const VkDescriptorSetLayoutCreateInfo	descriptorSetLayoutCreateInfo	=
+				{
+					VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,	// VkStructureType						sType;
+					DE_NULL,												// const void*							pNext;
+					0u,														// VkDescriptorSetLayoutCreateFlags		flags;
+					1u,														// uint32_t								bindingCount;
+					&descriptorSetLayoutBindings[i]							// const VkDescriptorSetLayoutBinding*	pBindings;
+				};
+
+				m_descriptorSetLayouts.push_back(createDescriptorSetLayout(vk, vkDevice, &descriptorSetLayoutCreateInfo, DE_NULL));
+			}
+		}
 
 		// Create pipeline layout
+		descriptorSetLayoutsPlain.resize(m_descriptorSetLayouts.size());
+		for (size_t i = 0; i < descriptorSetLayoutsPlain.size(); ++i)
+			descriptorSetLayoutsPlain[i] = m_descriptorSetLayouts[i].get();
+
 		const VkPipelineLayoutCreateInfo		pipelineLayoutParams			=
 		{
-			VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,	// VkStructureType				sType;
-			DE_NULL,										// const void*					pNext;
-			0u,												// VkPipelineLayoutCreateFlags	flags;
-			1u,												// deUint32						descriptorSetCount;
-			&(*m_descriptorSetLayout),						// const VkDescriptorSetLayout*	pSetLayouts;
-			0u,												// deUint32						pushConstantRangeCount;
-			DE_NULL											// const VkPushDescriptorRange*	pPushDescriptorRanges;
+			VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,				// VkStructureType				sType;
+			DE_NULL,													// const void*					pNext;
+			0u,															// VkPipelineLayoutCreateFlags	flags;
+			static_cast<deUint32>(descriptorSetLayoutsPlain.size()),	// deUint32						descriptorSetCount;
+			descriptorSetLayoutsPlain.data(),							// const VkDescriptorSetLayout*	pSetLayouts;
+			0u,															// deUint32						pushConstantRangeCount;
+			DE_NULL														// const VkPushDescriptorRange*	pPushDescriptorRanges;
 		};
 
 		m_pipelineLayout = createPipelineLayout(vk, vkDevice, &pipelineLayoutParams);
@@ -873,26 +1026,34 @@
 		poolBuilder.addType(m_params.descriptorType, m_params.numDynamicBindings);
 		poolBuilder.addType(nonDynamicDescriptorType, m_params.numNonDynamicBindings);
 		poolBuilder.addType(VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, 1u);
-		m_descriptorPool = poolBuilder.build(vk, vkDevice, VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, 1u);
+		m_descriptorPool = poolBuilder.build(vk, vkDevice, VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, static_cast<deUint32>(m_descriptorSetLayouts.size()));
 	}
 
-	// Create descriptor set
+	// Create descriptor sets
 	{
-		const VkDescriptorSetAllocateInfo allocInfo =
+		for (size_t i = 0; i < m_descriptorSetLayouts.size(); ++i)
 		{
-			VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO,	// VkStructureType				sType;
-			DE_NULL,										// const void*					pNext;
-			*m_descriptorPool,								// VkDescriptorPool				descriptorPool;
-			1u,												// deUint32						setLayoutCount;
-			&(*m_descriptorSetLayout),						// const VkDescriptorSetLayout*	pSetLayouts;
-		};
-		m_descriptorSet	= allocateDescriptorSet(vk, vkDevice, &allocInfo);
+			const VkDescriptorSetAllocateInfo allocInfo =
+			{
+				VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO,	// VkStructureType				sType;
+				DE_NULL,										// const void*					pNext;
+				*m_descriptorPool,								// VkDescriptorPool				descriptorPool;
+				1u,												// deUint32						setLayoutCount;
+				&(m_descriptorSetLayouts[i].get()),				// const VkDescriptorSetLayout*	pSetLayouts;
+			};
+			m_descriptorSets.push_back(allocateDescriptorSet(vk, vkDevice, &allocInfo));
+		}
 	}
 
+	descriptorSetsPlain.resize(m_descriptorSets.size());
+	for (size_t i = 0; i < descriptorSetsPlain.size(); ++i)
+		descriptorSetsPlain[i] = m_descriptorSets[i].get();
+
 	// Update input buffer descriptors
 	for (deUint32 binding = 0; binding < m_numBindings; ++binding)
 	{
-		const VkDescriptorType			descriptorType			= binding >= m_params.numDynamicBindings ? nonDynamicDescriptorType : m_params.descriptorType;
+		const bool						dynamicDesc				= (binding < m_params.numDynamicBindings);
+		const VkDescriptorType			descriptorType			= dynamicDesc ? m_params.descriptorType : nonDynamicDescriptorType;
 		const VkDescriptorBufferInfo	descriptorBufferInfo	=
 		{
 			*m_buffer,					// VkBuffer			buffer;
@@ -900,13 +1061,36 @@
 			kColorSize					// VkDeviceSize		range;
 		};
 
+		VkDescriptorSet	bindingSet;
+		deUint32		bindingNumber;
+		deUint32		dstArrayElement;
+
+		if (m_params.groupingStrategy == GroupingStrategy::SINGLE_SET)
+		{
+			bindingSet		= m_descriptorSets[0].get();
+			bindingNumber	= binding;
+			dstArrayElement	= 0u;
+		}
+		else if (m_params.groupingStrategy == GroupingStrategy::MULTISET)
+		{
+			bindingSet		= m_descriptorSets[binding].get();
+			bindingNumber	= 0u;
+			dstArrayElement	= 0u;
+		}
+		else // GroupingStrategy::ARRAYS
+		{
+			bindingSet		= (dynamicDesc ? m_descriptorSets[0].get() : m_descriptorSets[1].get());
+			bindingNumber	= 0u;
+			dstArrayElement	= (dynamicDesc ? binding : (binding - m_params.numDynamicBindings));
+		}
+
 		const VkWriteDescriptorSet		writeDescriptorSet		=
 		{
 			VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,	// VkStructureType					sType;
 			DE_NULL,								// const void*						pNext;
-			*m_descriptorSet,						// VkDescriptorSet					dstSet;
-			binding,								// uint32_t							dstBinding;
-			0u,										// uint32_t							dstArrayElement;
+			bindingSet,								// VkDescriptorSet					dstSet;
+			bindingNumber,							// uint32_t							dstBinding;
+			dstArrayElement,						// uint32_t							dstArrayElement;
 			1u,										// uint32_t							descriptorCount;
 			descriptorType,							// VkDescriptorType					descriptorType;
 			DE_NULL,								// const VkDescriptorImageInfo*		pImageInfo;
@@ -926,12 +1110,31 @@
 			kColorSize			// VkDeviceSize		range;
 		};
 
+		VkDescriptorSet	bindingSet;
+		deUint32		bindingNumber;
+
+		if (m_params.groupingStrategy == GroupingStrategy::SINGLE_SET)
+		{
+			bindingSet		= m_descriptorSets[0].get();
+			bindingNumber	= m_numBindings;
+		}
+		else if (m_params.groupingStrategy == GroupingStrategy::MULTISET)
+		{
+			bindingSet		= m_descriptorSets.back().get();
+			bindingNumber	= 0u;
+		}
+		else // GroupingStrategy::ARRAYS
+		{
+			bindingSet		= m_descriptorSets.back().get();
+			bindingNumber	= 0u;
+		}
+
 		const VkWriteDescriptorSet		writeDescriptorSet		=
 		{
 			VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,		// VkStructureType					sType;
 			DE_NULL,									// const void*						pNext;
-			*m_descriptorSet,							// VkDescriptorSet					dstSet;
-			m_numBindings,								// uint32_t							dstBinding;
+			bindingSet,									// VkDescriptorSet					dstSet;
+			bindingNumber,								// uint32_t							dstBinding;
 			0u,											// uint32_t							dstArrayElement;
 			1u,											// uint32_t							descriptorCount;
 			VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC,	// VkDescriptorType					descriptorType;
@@ -1005,7 +1208,7 @@
 			offsets.push_back(outputOffset);
 			outputOffset += colorBlockOutputSizeU32;
 
-			vk.cmdBindDescriptorSets(**m_cmdBuffers[idx], VK_PIPELINE_BIND_POINT_COMPUTE, *m_pipelineLayout, 0u, 1u, &m_descriptorSet.get(), (deUint32)offsets.size(), offsets.data());
+			vk.cmdBindDescriptorSets(**m_cmdBuffers[idx], VK_PIPELINE_BIND_POINT_COMPUTE, *m_pipelineLayout, 0u, static_cast<deUint32>(descriptorSetsPlain.size()), descriptorSetsPlain.data(), (deUint32)offsets.size(), offsets.data());
 
 			// Dispatch
 			vk.cmdDispatch(**m_cmdBuffers[idx], 1, 1, 1);
@@ -1098,24 +1301,83 @@
 
 void DynamicOffsetComputeTest::initPrograms (SourceCollections& sourceCollections) const
 {
-	const deUint32	numBindings	= m_params.numDynamicBindings + m_params.numNonDynamicBindings;
-	const string	bufferType	= m_params.descriptorType == VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC ? "uniform" : "buffer";
-	string			inputBlocks;
-	string			inputSum;
+	const deUint32	numBindings		= m_params.numDynamicBindings + m_params.numNonDynamicBindings;
+	const string	bufferType		= m_params.descriptorType == VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC ? "uniform" : "buffer";
+	ostringstream	inputBlocks;
+	ostringstream	inputSum;
+	string			setAndBinding;
+	string			blockSuffix;
+	string			accessSuffix;
+	bool			dynArrayDecl	= false;	// Dynamic descriptor block array declared?
+	bool			nonDynArrayDecl	= false;	// Nondynamic descriptor block array declared?
+	string			bStr;
 
-	for (deUint32 binding = 0; binding < numBindings; binding++)
+	for (deUint32 b = 0; b < numBindings; b++)
 	{
-		const string b = de::toString(binding);
-		inputBlocks +=
-			string("layout(set = 0, binding = ") + b + ") " + bufferType + " Block" + b + "\n"
-			+ "{\n" + "    vec4 color;\n" + "} inputData" + b + ";\n";
-		inputSum += string("    outData.color.rgb += inputData") + b + ".color.rgb;\n";
+		const bool dynBind	= (b < m_params.numDynamicBindings);
+		bStr				= de::toString(b);
+
+		if (m_params.groupingStrategy == GroupingStrategy::SINGLE_SET)
+		{
+			setAndBinding = "set = 0, binding = " + bStr;
+			blockSuffix		= bStr;
+			accessSuffix	= bStr;
+		}
+		else if (m_params.groupingStrategy == GroupingStrategy::MULTISET)
+		{
+			setAndBinding = "set = " + bStr + ", binding = 0";
+			blockSuffix		= bStr;
+			accessSuffix	= bStr;
+		}
+		else // GroupingStrategy::ARRAYS
+		{
+			// In array mode, only two sets are declared, one with an array of dynamic descriptors and another one with an array of
+			// nondynamic descriptors.
+			setAndBinding	= "set = " + string(dynBind ? "0" : "1") + ", binding = 0";
+			blockSuffix		= string(dynBind ? "Dyn" : "NonDyn") + "[" + (dynBind ? de::toString(m_params.numDynamicBindings) : de::toString(m_params.numNonDynamicBindings)) + "]";
+			accessSuffix	= string(dynBind ? "Dyn" : "NonDyn") + "[" + (dynBind ? de::toString(b) : de::toString(b - m_params.numDynamicBindings)) + "]";
+		}
+
+		// In array mode, declare the input block only once per descriptor type.
+		bool& arrayDeclFlag = (dynBind ? dynArrayDecl : nonDynArrayDecl);
+		if (m_params.groupingStrategy != GroupingStrategy::ARRAYS || !arrayDeclFlag)
+		{
+			inputBlocks
+				<< "layout(" << setAndBinding << ") " << bufferType << " Block" << bStr << "\n"
+				<< "{\n"
+				<< "    vec4 color;\n"
+				<< "} inputData" << blockSuffix << ";\n"
+				;
+			arrayDeclFlag = true;
+		}
+
+		// But the sum always needs to be added once per descriptor.
+		inputSum << "    outData.color.rgb += inputData" << accessSuffix << ".color.rgb;\n";
+	}
+
+	bStr = de::toString(numBindings);
+	if (m_params.groupingStrategy == GroupingStrategy::SINGLE_SET)
+	{
+		setAndBinding = "set = 0, binding = " + bStr;
+	}
+	else if (m_params.groupingStrategy == GroupingStrategy::MULTISET)
+	{
+		setAndBinding = "set = " + bStr + ", binding = 0";
+	}
+	else // GroupingStrategy::ARRAYS
+	{
+		// The output buffer goes to a separate set.
+		deUint32 usedSets = 0u;
+		if (dynArrayDecl)		++usedSets;
+		if (nonDynArrayDecl)	++usedSets;
+
+		setAndBinding = "set = " + de::toString(usedSets) + ", binding = 0";
 	}
 
 	const string	computeSrc	=
 		"#version 450\n"
-		+ inputBlocks +
-		"layout(set = 0, binding = " + de::toString(numBindings) + ") writeonly buffer Output\n"
+		+ inputBlocks.str() +
+		"layout(" + setAndBinding + ") writeonly buffer Output\n"
 		"{\n"
 		"	vec4 color;\n"
 		"} outData;\n"
@@ -1123,7 +1385,7 @@
 		"void main()\n"
 		"{\n"
 		"    outData.color = vec4(0, 0, 0, 1);\n"
-		+ inputSum +
+		+ inputSum.str() +
 		"}\n";
 
 	sourceCollections.glslSources.add("compute") << glu::ComputeSource(computeSrc);
@@ -1137,6 +1399,18 @@
 
 	struct
 	{
+		const char*				name;
+		const GroupingStrategy	strategy;
+	}
+	const groupingTypes[]				=
+	{
+		{ "single_set",		GroupingStrategy::SINGLE_SET	},
+		{ "multiset",		GroupingStrategy::MULTISET		},
+		{ "arrays",			GroupingStrategy::ARRAYS		},
+	};
+
+	struct
+	{
 		const char*			name;
 		VkDescriptorType	type;
 	}
@@ -1202,67 +1476,75 @@
 	};
 
 	de::MovePtr<tcu::TestCaseGroup>	dynamicOffsetTests	(new tcu::TestCaseGroup(testCtx, "dynamic_offset", "Dynamic offset tests"));
-	de::MovePtr<tcu::TestCaseGroup>	graphicsTests		(new tcu::TestCaseGroup(testCtx, "graphics", "graphics pipeline"));
 
 	for (deUint32 pipelineTypeIdx = 0; pipelineTypeIdx < DE_LENGTH_OF_ARRAY(pipelineTypes); pipelineTypeIdx++)
 	{
 		de::MovePtr<tcu::TestCaseGroup>	pipelineTypeGroup	(new tcu::TestCaseGroup(testCtx, pipelineTypes[pipelineTypeIdx], ""));
 
-		for (deUint32 descriptorTypeIdx = 0; descriptorTypeIdx < DE_LENGTH_OF_ARRAY(descriptorTypes); descriptorTypeIdx++)
+		for (deUint32 groupingTypeIdx = 0; groupingTypeIdx < DE_LENGTH_OF_ARRAY(groupingTypes); ++groupingTypeIdx)
 		{
-			de::MovePtr<tcu::TestCaseGroup>	descriptorTypeGroup	(new tcu::TestCaseGroup(testCtx, descriptorTypes[descriptorTypeIdx].name, ""));
+			de::MovePtr<tcu::TestCaseGroup> groupingTypeGroup (new tcu::TestCaseGroup(testCtx, groupingTypes[groupingTypeIdx].name, ""));
 
-			for (deUint32 numCmdBuffersIdx = 0; numCmdBuffersIdx < DE_LENGTH_OF_ARRAY(numCmdBuffers); numCmdBuffersIdx++)
+			for (deUint32 descriptorTypeIdx = 0; descriptorTypeIdx < DE_LENGTH_OF_ARRAY(descriptorTypes); descriptorTypeIdx++)
 			{
-				de::MovePtr<tcu::TestCaseGroup>	numCmdBuffersGroup	(new tcu::TestCaseGroup(testCtx, numCmdBuffers[numCmdBuffersIdx].name, ""));
+				de::MovePtr<tcu::TestCaseGroup>	descriptorTypeGroup	(new tcu::TestCaseGroup(testCtx, descriptorTypes[descriptorTypeIdx].name, ""));
 
-				for (deUint32 reverseOrderIdx = 0; reverseOrderIdx < DE_LENGTH_OF_ARRAY(reverseOrders); reverseOrderIdx++)
+				for (deUint32 numCmdBuffersIdx = 0; numCmdBuffersIdx < DE_LENGTH_OF_ARRAY(numCmdBuffers); numCmdBuffersIdx++)
 				{
-					if (numCmdBuffers[numCmdBuffersIdx].num < 2 && reverseOrders[reverseOrderIdx].reverse)
-						continue;
+					de::MovePtr<tcu::TestCaseGroup>	numCmdBuffersGroup	(new tcu::TestCaseGroup(testCtx, numCmdBuffers[numCmdBuffersIdx].name, ""));
 
-					de::MovePtr<tcu::TestCaseGroup>	reverseOrderGroup	(new tcu::TestCaseGroup(testCtx, reverseOrders[reverseOrderIdx].name, ""));
-
-					for (deUint32 numDescriptorSetBindingsIdx = 0; numDescriptorSetBindingsIdx < DE_LENGTH_OF_ARRAY(numDescriptorSetBindings); numDescriptorSetBindingsIdx++)
+					for (deUint32 reverseOrderIdx = 0; reverseOrderIdx < DE_LENGTH_OF_ARRAY(reverseOrders); reverseOrderIdx++)
 					{
-						if (numCmdBuffers[numCmdBuffersIdx].num > 1 && numDescriptorSetBindings[numDescriptorSetBindingsIdx].num > 1)
+						if (numCmdBuffers[numCmdBuffersIdx].num < 2 && reverseOrders[reverseOrderIdx].reverse)
 							continue;
 
-						de::MovePtr<tcu::TestCaseGroup>	numDescriptorSetBindingsGroup	(new tcu::TestCaseGroup(testCtx, numDescriptorSetBindings[numDescriptorSetBindingsIdx].name, ""));
-						for (deUint32 numDynamicBindingsIdx = 0; numDynamicBindingsIdx < DE_LENGTH_OF_ARRAY(numDynamicBindings); numDynamicBindingsIdx++)
+						de::MovePtr<tcu::TestCaseGroup>	reverseOrderGroup	(new tcu::TestCaseGroup(testCtx, reverseOrders[reverseOrderIdx].name, ""));
+
+						for (deUint32 numDescriptorSetBindingsIdx = 0; numDescriptorSetBindingsIdx < DE_LENGTH_OF_ARRAY(numDescriptorSetBindings); numDescriptorSetBindingsIdx++)
 						{
-							de::MovePtr<tcu::TestCaseGroup>	numDynamicBindingsGroup	(new tcu::TestCaseGroup(testCtx, numDynamicBindings[numDynamicBindingsIdx].name, ""));
+							if (numCmdBuffers[numCmdBuffersIdx].num > 1 && numDescriptorSetBindings[numDescriptorSetBindingsIdx].num > 1)
+								continue;
 
-							for (deUint32 numNonDynamicBindingsIdx = 0; numNonDynamicBindingsIdx < DE_LENGTH_OF_ARRAY(numNonDynamicBindings); numNonDynamicBindingsIdx++)
+							de::MovePtr<tcu::TestCaseGroup>	numDescriptorSetBindingsGroup	(new tcu::TestCaseGroup(testCtx, numDescriptorSetBindings[numDescriptorSetBindingsIdx].name, ""));
+							for (deUint32 numDynamicBindingsIdx = 0; numDynamicBindingsIdx < DE_LENGTH_OF_ARRAY(numDynamicBindings); numDynamicBindingsIdx++)
 							{
-								TestParams params;
-								params.descriptorType			= descriptorTypes[descriptorTypeIdx].type;
-								params.numCmdBuffers			= numCmdBuffers[numCmdBuffersIdx].num;
-								params.reverseOrder				= reverseOrders[reverseOrderIdx].reverse;
-								params.numDescriptorSetBindings	= numDescriptorSetBindings[numDescriptorSetBindingsIdx].num;
-								params.numDynamicBindings		= numDynamicBindings[numDynamicBindingsIdx].num;
-								params.numNonDynamicBindings	= numNonDynamicBindings[numNonDynamicBindingsIdx].num;
+								de::MovePtr<tcu::TestCaseGroup>	numDynamicBindingsGroup	(new tcu::TestCaseGroup(testCtx, numDynamicBindings[numDynamicBindingsIdx].name, ""));
 
-								if (strcmp(pipelineTypes[pipelineTypeIdx], "graphics") == 0)
-									numDynamicBindingsGroup->addChild(new DynamicOffsetGraphicsTest(testCtx, numNonDynamicBindings[numNonDynamicBindingsIdx].name, "", params));
-								else
-									numDynamicBindingsGroup->addChild(new DynamicOffsetComputeTest(testCtx, numNonDynamicBindings[numNonDynamicBindingsIdx].name, "", params));
+								for (deUint32 numNonDynamicBindingsIdx = 0; numNonDynamicBindingsIdx < DE_LENGTH_OF_ARRAY(numNonDynamicBindings); numNonDynamicBindingsIdx++)
+								{
+									TestParams params;
+									params.descriptorType			= descriptorTypes[descriptorTypeIdx].type;
+									params.numCmdBuffers			= numCmdBuffers[numCmdBuffersIdx].num;
+									params.reverseOrder				= reverseOrders[reverseOrderIdx].reverse;
+									params.numDescriptorSetBindings	= numDescriptorSetBindings[numDescriptorSetBindingsIdx].num;
+									params.numDynamicBindings		= numDynamicBindings[numDynamicBindingsIdx].num;
+									params.numNonDynamicBindings	= numNonDynamicBindings[numNonDynamicBindingsIdx].num;
+									params.groupingStrategy			= groupingTypes[groupingTypeIdx].strategy;
+
+									if (strcmp(pipelineTypes[pipelineTypeIdx], "graphics") == 0)
+										numDynamicBindingsGroup->addChild(new DynamicOffsetGraphicsTest(testCtx, numNonDynamicBindings[numNonDynamicBindingsIdx].name, "", params));
+									else
+										numDynamicBindingsGroup->addChild(new DynamicOffsetComputeTest(testCtx, numNonDynamicBindings[numNonDynamicBindingsIdx].name, "", params));
+								}
+
+								numDescriptorSetBindingsGroup->addChild(numDynamicBindingsGroup.release());
 							}
 
-							numDescriptorSetBindingsGroup->addChild(numDynamicBindingsGroup.release());
+							reverseOrderGroup->addChild(numDescriptorSetBindingsGroup.release());
 						}
 
-						reverseOrderGroup->addChild(numDescriptorSetBindingsGroup.release());
+						numCmdBuffersGroup->addChild(reverseOrderGroup.release());
 					}
 
-					numCmdBuffersGroup->addChild(reverseOrderGroup.release());
+					descriptorTypeGroup->addChild(numCmdBuffersGroup.release());
 				}
 
-				descriptorTypeGroup->addChild(numCmdBuffersGroup.release());
+				groupingTypeGroup->addChild(descriptorTypeGroup.release());
 			}
 
-			pipelineTypeGroup->addChild(descriptorTypeGroup.release());
+			pipelineTypeGroup->addChild(groupingTypeGroup.release());
 		}
+
 		dynamicOffsetTests->addChild(pipelineTypeGroup.release());
 	}
 
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineExtendedDynamicStateTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineExtendedDynamicStateTests.cpp
new file mode 100644
index 0000000..0eaa045
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineExtendedDynamicStateTests.cpp
@@ -0,0 +1,2003 @@
+/*------------------------------------------------------------------------
+* Vulkan Conformance Tests
+* ------------------------
+*
+* Copyright (c) 2020 The Khronos Group Inc.
+* Copyright (c) 2020 Valve Corporation.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*      http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+*//*
+ * \file
+ * \brief Extended dynamic state tests
+*//*--------------------------------------------------------------------*/
+
+#include "vktPipelineExtendedDynamicStateTests.hpp"
+#include "vktPipelineImageUtil.hpp"
+#include "vktTestCase.hpp"
+
+#include "vkDefs.hpp"
+#include "vkTypeUtil.hpp"
+#include "vkQueryUtil.hpp"
+#include "vkObjUtil.hpp"
+#include "vkBufferWithMemory.hpp"
+#include "vkImageWithMemory.hpp"
+#include "vkBuilderUtil.hpp"
+#include "vkCmdUtil.hpp"
+
+#include "tcuVector.hpp"
+#include "tcuMaybe.hpp"
+#include "tcuTestLog.hpp"
+#include "tcuVectorUtil.hpp"
+
+#include "deUniquePtr.hpp"
+#include "deStringUtil.hpp"
+
+#include <vector>
+#include <sstream>
+#include <algorithm>
+#include <iterator>
+#include <string>
+#include <limits>
+
+namespace vkt
+{
+namespace pipeline
+{
+
+namespace
+{
+
+inline vk::VkBool32 makeVkBool32(bool value)
+{
+	return (value ? VK_TRUE : VK_FALSE);
+}
+
+// Framebuffer size.
+constexpr deUint32	kFramebufferWidth	= 64u;
+constexpr deUint32	kFramebufferHeight	= 64u;
+
+// Image formats.
+constexpr	vk::VkFormat	kColorFormat		= vk::VK_FORMAT_R8G8B8A8_UNORM;
+constexpr	vk::VkFormat	kDepthStencilFormat	= vk::VK_FORMAT_D32_SFLOAT_S8_UINT;
+const		tcu::Vec4		kColorThreshold		(0.005f); // 1/255 < 0.005 < 2/255.
+
+// Vertices in buffers will have 2 components and a padding to properly test the stride.
+struct GeometryVertex
+{
+	tcu::Vec2 coords;
+	tcu::Vec2 padding;
+
+	GeometryVertex (const tcu::Vec2& coords_)
+		: coords	(coords_)
+		, padding	(0.0f)
+	{
+	}
+};
+
+constexpr auto kVertexStride	= static_cast<vk::VkDeviceSize>(sizeof(GeometryVertex));
+constexpr auto kCoordsSize		= static_cast<vk::VkDeviceSize>(sizeof(GeometryVertex::coords));
+
+// Stencil Operation parameters, as used in vkCmdSetStencilOpEXT().
+struct StencilOpParams
+{
+	vk::VkStencilFaceFlags  faceMask;
+	vk::VkStencilOp         failOp;
+	vk::VkStencilOp         passOp;
+	vk::VkStencilOp         depthFailOp;
+	vk::VkCompareOp         compareOp;
+};
+
+const StencilOpParams kDefaultStencilOpParams =
+{
+	vk::VK_STENCIL_FACE_FRONT_AND_BACK,
+	vk::VK_STENCIL_OP_KEEP,
+	vk::VK_STENCIL_OP_KEEP,
+	vk::VK_STENCIL_OP_KEEP,
+	vk::VK_COMPARE_OP_ALWAYS
+};
+
+using ViewportVec	= std::vector<vk::VkViewport>;
+using ScissorVec	= std::vector<vk::VkRect2D>;
+using StencilOpVec	= std::vector<StencilOpParams>;
+
+// Generic, to be used with any state than can be set statically and, as an option, dynamically.
+template<typename T>
+struct StaticAndDynamicPair
+{
+	T				staticValue;
+	tcu::Maybe<T>	dynamicValue;
+
+	// Helper constructor to set a static value and no dynamic value.
+	StaticAndDynamicPair (const T& value)
+		: staticValue	(value)
+		, dynamicValue	(tcu::nothing<T>())
+	{
+	}
+
+	// Helper constructor to set both.
+	StaticAndDynamicPair (const T& sVal, const T& dVal)
+		: staticValue	(sVal)
+		, dynamicValue	(tcu::just<T>(dVal))
+	{
+	}
+};
+
+// For anything boolean, see below.
+using BooleanFlagConfig = StaticAndDynamicPair<bool>;
+
+// Configuration for every aspect of the extended dynamic state.
+using CullModeConfig				= StaticAndDynamicPair<vk::VkCullModeFlags>;
+using FrontFaceConfig				= StaticAndDynamicPair<vk::VkFrontFace>;
+using TopologyConfig				= StaticAndDynamicPair<vk::VkPrimitiveTopology>;
+using ViewportConfig				= StaticAndDynamicPair<ViewportVec>;	// At least one element.
+using ScissorConfig					= StaticAndDynamicPair<ScissorVec>;		// At least one element.
+using StrideConfig					= StaticAndDynamicPair<vk::VkDeviceSize>;
+using DepthTestEnableConfig			= BooleanFlagConfig;
+using DepthWriteEnableConfig		= BooleanFlagConfig;
+using DepthCompareOpConfig			= StaticAndDynamicPair<vk::VkCompareOp>;
+using DepthBoundsTestEnableConfig	= BooleanFlagConfig;
+using StencilTestEnableConfig		= BooleanFlagConfig;
+using StencilOpConfig				= StaticAndDynamicPair<StencilOpVec>;	// At least one element.
+
+const tcu::Vec4	kDefaultTriangleColor	(0.0f, 0.0f, 1.0f, 1.0f);	// Opaque blue.
+const tcu::Vec4	kDefaultClearColor		(0.0f, 0.0f, 0.0f, 1.0f);	// Opaque black.
+
+struct MeshParams
+{
+	tcu::Vec4	color;
+	float		depth;
+	bool		reversed;
+	float		scaleX;
+	float		scaleY;
+	float		offsetX;
+	float		offsetY;
+
+	MeshParams (const tcu::Vec4&	color_		= kDefaultTriangleColor,
+				float				depth_		= 0.0f,
+				bool				reversed_	= false,
+				float				scaleX_		= 1.0f,
+				float				scaleY_		= 1.0f,
+				float				offsetX_	= 0.0f,
+				float				offsetY_	= 0.0f)
+		: color		(color_)
+		, depth		(depth_)
+		, reversed	(reversed_)
+		, scaleX	(scaleX_)
+		, scaleY	(scaleY_)
+		, offsetX	(offsetX_)
+		, offsetY	(offsetY_)
+	{}
+};
+
+enum class SequenceOrdering
+{
+	CMD_BUFFER_START	= 0,	// Set state at the start of the command buffer.
+	BEFORE_DRAW			= 1,	// After binding dynamic pipeline and just before drawing.
+	BETWEEN_PIPELINES	= 2,	// After a static state pipeline has been bound but before the dynamic state pipeline has been bound.
+	AFTER_PIPELINES		= 3,	// After a static state pipeline and a second dynamic state pipeline have been bound.
+};
+
+struct TestConfig
+{
+	// Main sequence ordering.
+	SequenceOrdering			sequenceOrdering;
+
+	// Drawing parameters: tests will draw one or more flat meshes of triangles covering the whole "screen".
+	std::vector<MeshParams>		meshParams;			// Mesh parameters for each full-screen layer of geometry.
+	deUint32					referenceStencil;	// Reference stencil value.
+
+	// Clearing parameters for the framebuffer.
+	tcu::Vec4					clearColorValue;
+	float						clearDepthValue;
+	deUint32					clearStencilValue;
+
+	// Expected output in the attachments.
+	tcu::Vec4					expectedColor;
+	float						expectedDepth;
+	deUint32					expectedStencil;
+
+	// Depth bounds parameters for the pipeline.
+	float						minDepthBounds;
+	float						maxDepthBounds;
+
+	// Force inclusion of passthrough geometry shader or not.
+	bool						forceGeometryShader;
+
+	// Static and dynamic pipeline configuration.
+	CullModeConfig				cullModeConfig;
+	FrontFaceConfig				frontFaceConfig;
+	TopologyConfig				topologyConfig;
+	ViewportConfig				viewportConfig;
+	ScissorConfig				scissorConfig;
+	StrideConfig				strideConfig;
+	DepthTestEnableConfig		depthTestEnableConfig;
+	DepthWriteEnableConfig		depthWriteEnableConfig;
+	DepthCompareOpConfig		depthCompareOpConfig;
+	DepthBoundsTestEnableConfig	depthBoundsTestEnableConfig;
+	StencilTestEnableConfig		stencilTestEnableConfig;
+	StencilOpConfig				stencilOpConfig;
+
+	// Sane defaults.
+	TestConfig (SequenceOrdering ordering)
+		: sequenceOrdering				(ordering)
+		, meshParams					(1u, MeshParams())
+		, referenceStencil				(0u)
+		, clearColorValue				(kDefaultClearColor)
+		, clearDepthValue				(1.0f)
+		, clearStencilValue				(0u)
+		, expectedColor					(kDefaultTriangleColor)
+		, expectedDepth					(1.0f)
+		, expectedStencil				(0u)
+		, minDepthBounds				(0.0f)
+		, maxDepthBounds				(1.0f)
+		, forceGeometryShader			(false)
+		, cullModeConfig				(static_cast<vk::VkCullModeFlags>(vk::VK_CULL_MODE_NONE))
+		, frontFaceConfig				(vk::VK_FRONT_FACE_COUNTER_CLOCKWISE)
+		// By default we will use a triangle fan with 6 vertices that could be wrongly interpreted as a triangle list with 2 triangles.
+		, topologyConfig				(vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN)
+		, viewportConfig				(ViewportVec(1u, vk::makeViewport(kFramebufferWidth, kFramebufferHeight)))
+		, scissorConfig					(ScissorVec(1u, vk::makeRect2D(kFramebufferWidth, kFramebufferHeight)))
+		, strideConfig					(kVertexStride)
+		, depthTestEnableConfig			(false)
+		, depthWriteEnableConfig		(false)
+		, depthCompareOpConfig			(vk::VK_COMPARE_OP_NEVER)
+		, depthBoundsTestEnableConfig	(false)
+		, stencilTestEnableConfig		(false)
+		, stencilOpConfig				(StencilOpVec(1u, kDefaultStencilOpParams))
+	{
+	}
+
+	// Get the proper viewport vector according to the test config.
+	const ViewportVec& getActiveViewportVec () const
+	{
+		return (viewportConfig.dynamicValue ? viewportConfig.dynamicValue.get() : viewportConfig.staticValue);
+	}
+
+	// Returns true if there is more than one viewport.
+	bool isMultiViewport () const
+	{
+		return (getActiveViewportVec().size() > 1);
+	}
+
+	// Returns true if the case needs a geometry shader.
+	bool needsGeometryShader () const
+	{
+		// Writing to gl_ViewportIndex from vertex or tesselation shaders needs the shaderOutputViewportIndex feature, which is less
+		// commonly supported than geometry shaders, so we will use a geometry shader if we need to write to it.
+		return (isMultiViewport() || forceGeometryShader);
+	}
+};
+
+struct PushConstants
+{
+	tcu::Vec4	triangleColor;
+	float		meshDepth;
+	deInt32		viewPortIndex;
+	float		scaleX;
+	float		scaleY;
+	float		offsetX;
+	float		offsetY;
+};
+
+void copy(vk::VkStencilOpState& dst, const StencilOpParams& src)
+{
+	dst.failOp		= src.failOp;
+	dst.passOp		= src.passOp;
+	dst.depthFailOp	= src.depthFailOp;
+	dst.compareOp	= src.compareOp;
+}
+
+enum class TopologyClass
+{
+	POINT,
+	LINE,
+	TRIANGLE,
+	PATCH,
+	INVALID,
+};
+
+std::string topologyClassName (TopologyClass tclass)
+{
+	switch (tclass)
+	{
+	case TopologyClass::POINT:		return "point";
+	case TopologyClass::LINE:		return "line";
+	case TopologyClass::TRIANGLE:	return "triangle";
+	case TopologyClass::PATCH:		return "patch";
+	default:
+		break;
+	}
+
+	DE_ASSERT(false);
+	return "";
+}
+
+TopologyClass getTopologyClass (vk::VkPrimitiveTopology topology)
+{
+	switch (topology)
+	{
+	case vk::VK_PRIMITIVE_TOPOLOGY_POINT_LIST:
+		return TopologyClass::POINT;
+	case vk::VK_PRIMITIVE_TOPOLOGY_LINE_LIST:
+	case vk::VK_PRIMITIVE_TOPOLOGY_LINE_STRIP:
+	case vk::VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY:
+	case vk::VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY:
+		return TopologyClass::LINE;
+	case vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST:
+	case vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP:
+	case vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN:
+	case vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY:
+	case vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY:
+		return TopologyClass::TRIANGLE;
+	case vk::VK_PRIMITIVE_TOPOLOGY_PATCH_LIST:
+		return TopologyClass::PATCH;
+	default:
+		break;
+	}
+
+	DE_ASSERT(false);
+	return TopologyClass::INVALID;
+}
+
+class ExtendedDynamicStateTest : public vkt::TestCase
+{
+public:
+							ExtendedDynamicStateTest		(tcu::TestContext& testCtx, const std::string& name, const std::string& description, const TestConfig& testConfig);
+	virtual					~ExtendedDynamicStateTest		(void) {}
+
+	virtual void			checkSupport					(Context& context) const;
+	virtual void			initPrograms					(vk::SourceCollections& programCollection) const;
+	virtual TestInstance*	createInstance					(Context& context) const;
+
+private:
+	TestConfig				m_testConfig;
+};
+
+class ExtendedDynamicStateInstance : public vkt::TestInstance
+{
+public:
+								ExtendedDynamicStateInstance	(Context& context, const TestConfig& testConfig);
+	virtual						~ExtendedDynamicStateInstance	(void) {}
+
+	virtual tcu::TestStatus		iterate							(void);
+
+private:
+	TestConfig					m_testConfig;
+};
+
+ExtendedDynamicStateTest::ExtendedDynamicStateTest (tcu::TestContext& testCtx, const std::string& name, const std::string& description, const TestConfig& testConfig)
+	: vkt::TestCase	(testCtx, name, description)
+	, m_testConfig	(testConfig)
+{
+	const auto staticTopologyClass = getTopologyClass(testConfig.topologyConfig.staticValue);
+	DE_UNREF(staticTopologyClass); // For release builds.
+
+	// Matching topology classes.
+	DE_ASSERT(!testConfig.topologyConfig.dynamicValue ||
+			  staticTopologyClass == getTopologyClass(testConfig.topologyConfig.dynamicValue.get()));
+
+	// Supported topology classes for these tests.
+	DE_ASSERT(staticTopologyClass == TopologyClass::LINE || staticTopologyClass == TopologyClass::TRIANGLE);
+}
+
+void ExtendedDynamicStateTest::checkSupport (Context& context) const
+{
+	const auto&	vki				= context.getInstanceInterface();
+	const auto	physicalDevice	= context.getPhysicalDevice();
+
+	// This is always required.
+	context.requireDeviceFunctionality("VK_EXT_extended_dynamic_state");
+
+	// Check the number of viewports needed and the corresponding limits.
+	const auto&	viewportConfig	= m_testConfig.viewportConfig;
+	auto		numViews		= viewportConfig.staticValue.size();
+
+	if (viewportConfig.dynamicValue)
+		numViews = std::max(numViews, viewportConfig.dynamicValue.get().size());
+
+	if (numViews > 1)
+	{
+		context.requireDeviceFunctionality("VK_KHR_multiview");
+		const auto properties = vk::getPhysicalDeviceProperties(vki, physicalDevice);
+		if (numViews > static_cast<decltype(numViews)>(properties.limits.maxViewports))
+			TCU_THROW(NotSupportedError, "Number of viewports not supported (" + de::toString(numViews) + ")");
+	}
+
+	const auto&	dbTestEnable	= m_testConfig.depthBoundsTestEnableConfig;
+	const bool	useDepthBounds	= (dbTestEnable.staticValue || (dbTestEnable.dynamicValue && dbTestEnable.dynamicValue.get()));
+	if (useDepthBounds || m_testConfig.needsGeometryShader())
+	{
+		const auto features = vk::getPhysicalDeviceFeatures(vki, physicalDevice);
+
+		// Check depth bounds test support.
+		if (useDepthBounds && !features.depthBounds)
+			TCU_THROW(NotSupportedError, "Depth bounds feature not supported");
+
+		// Check geometry shader support.
+		if (m_testConfig.needsGeometryShader() && !features.geometryShader)
+			TCU_THROW(NotSupportedError, "Geometry shader not supported");
+	}
+
+	// Check image format support.
+	const vk::VkFormatFeatureFlags kColorFeatures	= (vk::VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT | vk::VK_FORMAT_FEATURE_TRANSFER_SRC_BIT);
+	const vk::VkFormatFeatureFlags kDSFeatures		= (vk::VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT | vk::VK_FORMAT_FEATURE_TRANSFER_SRC_BIT);
+
+	const auto colorProperties = vk::getPhysicalDeviceFormatProperties(vki, physicalDevice, kColorFormat);
+	if ((colorProperties.optimalTilingFeatures & kColorFeatures) != kColorFeatures)
+		TCU_THROW(NotSupportedError, "Required color image features not supported");
+
+	const auto dsProperties = vk::getPhysicalDeviceFormatProperties(vki, physicalDevice, kDepthStencilFormat);
+	if ((dsProperties.optimalTilingFeatures & kDSFeatures) != kDSFeatures)
+		TCU_THROW(NotSupportedError, "Required depth/stencil image features not supported");
+}
+
+void ExtendedDynamicStateTest::initPrograms (vk::SourceCollections& programCollection) const
+{
+	std::ostringstream pushSource;
+	std::ostringstream vertSource;
+	std::ostringstream fragSource;
+	std::ostringstream geomSource;
+
+	pushSource
+		<< "layout(push_constant, std430) uniform PushConstantsBlock {\n"
+		<< "    vec4  triangleColor;\n"
+		<< "    float depthValue;\n"
+		<< "    int   viewPortIndex;\n"
+		<< "    float scaleX;\n"
+		<< "    float scaleY;\n"
+		<< "    float offsetX;\n"
+		<< "    float offsetY;\n"
+		<< "} pushConstants;\n"
+		;
+	const auto pushConstants = pushSource.str();
+
+	vertSource
+		<< "#version 450\n"
+		<< pushConstants
+		<< "layout(location=0) in vec2 position;\n"
+		<< "out gl_PerVertex\n"
+		<< "{\n"
+		<< "    vec4 gl_Position;\n"
+		<< "};\n"
+		<< "void main() {\n"
+		<< "    gl_Position = vec4(position.x * pushConstants.scaleX + pushConstants.offsetX, position.y * pushConstants.scaleY + pushConstants.offsetY, pushConstants.depthValue, 1.0);\n"
+		<< "}\n"
+		;
+
+	fragSource
+		<< "#version 450\n"
+		<< pushConstants
+		<< "layout(location=0) out vec4 color;\n"
+		<< "void main() {\n"
+		<< "    color = pushConstants.triangleColor;\n"
+		<< "}\n"
+		;
+
+	if (m_testConfig.needsGeometryShader())
+	{
+		const auto			topologyClass	= getTopologyClass(m_testConfig.topologyConfig.staticValue);
+		const std::string	inputPrimitive	= ((topologyClass == TopologyClass::LINE) ? "lines" : "triangles");
+		const deUint32		vertexCount		= ((topologyClass == TopologyClass::LINE) ? 2u : 3u);
+		const std::string	outputPrimitive	= ((topologyClass == TopologyClass::LINE) ? "line_strip" : "triangle_strip");
+
+		geomSource
+			<< "#version 450\n"
+			<< "layout (" << inputPrimitive << ") in;\n"
+			<< "layout (" << outputPrimitive << ", max_vertices=" << vertexCount << ") out;\n"
+			<< (m_testConfig.isMultiViewport() ? pushConstants : "")
+			<< "in gl_PerVertex\n"
+			<< "{\n"
+			<< "    vec4 gl_Position;\n"
+			<< "} gl_in[" << vertexCount << "];\n"
+			<< "out gl_PerVertex\n"
+			<< "{\n"
+			<< "    vec4 gl_Position;\n"
+			<< "};\n"
+			<< "void main() {\n"
+			<< (m_testConfig.isMultiViewport() ? "    gl_ViewportIndex = pushConstants.viewPortIndex;\n" : "")
+			;
+
+		for (deUint32 i = 0; i < vertexCount; ++i)
+		{
+			geomSource
+				<< "    gl_Position = gl_in[" << i << "].gl_Position;\n"
+				<< "    EmitVertex();\n"
+				;
+		}
+
+		geomSource
+			<< "}\n"
+			;
+	}
+
+	programCollection.glslSources.add("vert") << glu::VertexSource(vertSource.str());
+	programCollection.glslSources.add("frag") << glu::FragmentSource(fragSource.str());
+	if (m_testConfig.needsGeometryShader())
+		programCollection.glslSources.add("geom") << glu::GeometrySource(geomSource.str());
+}
+
+TestInstance* ExtendedDynamicStateTest::createInstance (Context& context) const
+{
+	return new ExtendedDynamicStateInstance(context, m_testConfig);
+}
+
+ExtendedDynamicStateInstance::ExtendedDynamicStateInstance(Context& context, const TestConfig& testConfig)
+	: vkt::TestInstance	(context)
+	, m_testConfig		(testConfig)
+{
+}
+
+void logErrors(tcu::TestLog& log, const std::string& setName, const std::string& setDesc, const tcu::ConstPixelBufferAccess& result, const tcu::ConstPixelBufferAccess& errorMask)
+{
+	log << tcu::TestLog::ImageSet(setName, setDesc)
+		<< tcu::TestLog::Image(setName + "Result", "Result image", result)
+		<< tcu::TestLog::Image(setName + "ErrorMask", "Error mask with errors marked in red", errorMask)
+		<< tcu::TestLog::EndImageSet;
+}
+
+void copyAndFlush(const vk::DeviceInterface& vkd, vk::VkDevice device, vk::BufferWithMemory& buffer, const void* src, size_t size)
+{
+	auto& alloc	= buffer.getAllocation();
+	void* dst	= alloc.getHostPtr();
+
+	deMemcpy(dst, src, size);
+	vk::flushAlloc(vkd, device, alloc);
+}
+
+// Sets values for dynamic states if needed according to the test configuration.
+void setDynamicStates(const TestConfig& testConfig, const vk::DeviceInterface& vkd, vk::VkCommandBuffer cmdBuffer)
+{
+	if (testConfig.cullModeConfig.dynamicValue)
+		vkd.cmdSetCullModeEXT(cmdBuffer, testConfig.cullModeConfig.dynamicValue.get());
+
+	if (testConfig.frontFaceConfig.dynamicValue)
+		vkd.cmdSetFrontFaceEXT(cmdBuffer, testConfig.frontFaceConfig.dynamicValue.get());
+
+	if (testConfig.topologyConfig.dynamicValue)
+		vkd.cmdSetPrimitiveTopologyEXT(cmdBuffer, testConfig.topologyConfig.dynamicValue.get());
+
+	if (testConfig.viewportConfig.dynamicValue)
+	{
+		const auto& viewports = testConfig.viewportConfig.dynamicValue.get();
+		vkd.cmdSetViewportWithCountEXT(cmdBuffer, static_cast<deUint32>(viewports.size()), viewports.data());
+	}
+
+	if (testConfig.scissorConfig.dynamicValue)
+	{
+		const auto& scissors = testConfig.scissorConfig.dynamicValue.get();
+		vkd.cmdSetScissorWithCountEXT(cmdBuffer, static_cast<deUint32>(scissors.size()), scissors.data());
+	}
+
+	if (testConfig.depthTestEnableConfig.dynamicValue)
+		vkd.cmdSetDepthTestEnableEXT(cmdBuffer, makeVkBool32(testConfig.depthTestEnableConfig.dynamicValue.get()));
+
+	if (testConfig.depthWriteEnableConfig.dynamicValue)
+		vkd.cmdSetDepthWriteEnableEXT(cmdBuffer, makeVkBool32(testConfig.depthWriteEnableConfig.dynamicValue.get()));
+
+	if (testConfig.depthCompareOpConfig.dynamicValue)
+		vkd.cmdSetDepthCompareOpEXT(cmdBuffer, testConfig.depthCompareOpConfig.dynamicValue.get());
+
+	if (testConfig.depthBoundsTestEnableConfig.dynamicValue)
+		vkd.cmdSetDepthBoundsTestEnableEXT(cmdBuffer, makeVkBool32(testConfig.depthBoundsTestEnableConfig.dynamicValue.get()));
+
+	if (testConfig.stencilTestEnableConfig.dynamicValue)
+		vkd.cmdSetStencilTestEnableEXT(cmdBuffer, makeVkBool32(testConfig.stencilTestEnableConfig.dynamicValue.get()));
+
+	if (testConfig.stencilOpConfig.dynamicValue)
+	{
+		for (const auto& params : testConfig.stencilOpConfig.dynamicValue.get())
+			vkd.cmdSetStencilOpEXT(cmdBuffer, params.faceMask, params.failOp, params.passOp, params.depthFailOp, params.compareOp);
+	}
+}
+
+// Bind the appropriate vertex buffer with a dynamic stride if the test configuration needs a dynamic stride.
+// Return true if the vertex buffer was bound.
+bool maybeBindVertexBufferDynStride(const TestConfig& testConfig, const vk::DeviceInterface& vkd, vk::VkCommandBuffer cmdBuffer, size_t meshIdx, vk::VkBuffer vertBuffer, vk::VkBuffer rvertBuffer, vk::VkDeviceSize vertBufferSize, vk::VkDeviceSize vertBufferOffset)
+{
+	if (testConfig.strideConfig.dynamicValue)
+	{
+		const auto& viewportVec = testConfig.getActiveViewportVec();
+		DE_UNREF(viewportVec); // For release builds.
+
+		// When dynamically setting the vertex buffer stride, we cannot bind the vertex buffer in advance for some sequence
+		// orderings when we have several viewports or meshes.
+		DE_ASSERT((viewportVec.size() == 1u && testConfig.meshParams.size() == 1u)
+					|| testConfig.sequenceOrdering == SequenceOrdering::BEFORE_DRAW
+					|| testConfig.sequenceOrdering == SequenceOrdering::AFTER_PIPELINES);
+
+		vkd.cmdBindVertexBuffers2EXT(cmdBuffer, 0u, 1u, (testConfig.meshParams[meshIdx].reversed ? &rvertBuffer : &vertBuffer), &vertBufferOffset, &vertBufferSize, &testConfig.strideConfig.dynamicValue.get());
+		return true;
+	}
+
+	return false;
+}
+
+tcu::TestStatus ExtendedDynamicStateInstance::iterate (void)
+{
+	const auto&	vkd					= m_context.getDeviceInterface();
+	const auto	device				= m_context.getDevice();
+	auto&		allocator			= m_context.getDefaultAllocator();
+	const auto	queue				= m_context.getUniversalQueue();
+	const auto	queueIndex			= m_context.getUniversalQueueFamilyIndex();
+
+	const auto					kFramebufferExtent	= vk::makeExtent3D(kFramebufferWidth, kFramebufferHeight, 1u);
+	const vk::VkImageUsageFlags kColorUsage			= (vk::VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | vk::VK_IMAGE_USAGE_TRANSFER_SRC_BIT);
+	const vk::VkImageUsageFlags kDSUsage			= (vk::VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | vk::VK_IMAGE_USAGE_TRANSFER_SRC_BIT);
+
+	// Create color and depth/stencil images.
+	const vk::VkImageCreateInfo colorImageInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,	//	VkStructureType			sType;
+		nullptr,									//	const void*				pNext;
+		0u,											//	VkImageCreateFlags		flags;
+		vk::VK_IMAGE_TYPE_2D,						//	VkImageType				imageType;
+		kColorFormat,								//	VkFormat				format;
+		kFramebufferExtent,							//	VkExtent3D				extent;
+		1u,											//	deUint32				mipLevels;
+		1u,											//	deUint32				arrayLayers;
+		vk::VK_SAMPLE_COUNT_1_BIT,					//	VkSampleCountFlagBits	samples;
+		vk::VK_IMAGE_TILING_OPTIMAL,				//	VkImageTiling			tiling;
+		kColorUsage,								//	VkImageUsageFlags		usage;
+		vk::VK_SHARING_MODE_EXCLUSIVE,				//	VkSharingMode			sharingMode;
+		1u,											//	deUint32				queueFamilyIndexCount;
+		&queueIndex,								//	const deUint32*			pQueueFamilyIndices;
+		vk::VK_IMAGE_LAYOUT_UNDEFINED,				//	VkImageLayout			initialLayout;
+	};
+	vk::ImageWithMemory colorImage(vkd, device, allocator, colorImageInfo, vk::MemoryRequirement::Any);
+
+	const vk::VkImageCreateInfo dsImageInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,	//	VkStructureType			sType;
+		nullptr,									//	const void*				pNext;
+		0u,											//	VkImageCreateFlags		flags;
+		vk::VK_IMAGE_TYPE_2D,						//	VkImageType				imageType;
+		kDepthStencilFormat,						//	VkFormat				format;
+		kFramebufferExtent,							//	VkExtent3D				extent;
+		1u,											//	deUint32				mipLevels;
+		1u,											//	deUint32				arrayLayers;
+		vk::VK_SAMPLE_COUNT_1_BIT,					//	VkSampleCountFlagBits	samples;
+		vk::VK_IMAGE_TILING_OPTIMAL,				//	VkImageTiling			tiling;
+		kDSUsage,									//	VkImageUsageFlags		usage;
+		vk::VK_SHARING_MODE_EXCLUSIVE,				//	VkSharingMode			sharingMode;
+		1u,											//	deUint32				queueFamilyIndexCount;
+		&queueIndex,								//	const deUint32*			pQueueFamilyIndices;
+		vk::VK_IMAGE_LAYOUT_UNDEFINED,				//	VkImageLayout			initialLayout;
+	};
+	vk::ImageWithMemory dsImage(vkd, device, allocator, dsImageInfo, vk::MemoryRequirement::Any);
+
+	const auto colorSubresourceRange	= vk::makeImageSubresourceRange(vk::VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u);
+	const auto colorImageView			= vk::makeImageView(vkd, device, colorImage.get(), vk::VK_IMAGE_VIEW_TYPE_2D, kColorFormat, colorSubresourceRange);
+	const auto dsSubresourceRange		= vk::makeImageSubresourceRange((vk::VK_IMAGE_ASPECT_DEPTH_BIT | vk::VK_IMAGE_ASPECT_STENCIL_BIT), 0u, 1u, 0u, 1u);
+	const auto dsImageView				= vk::makeImageView(vkd, device, dsImage.get(), vk::VK_IMAGE_VIEW_TYPE_2D, kDepthStencilFormat, dsSubresourceRange);
+
+	// Vertex buffer.
+	const auto					topologyClass = getTopologyClass(m_testConfig.topologyConfig.staticValue);
+	std::vector<GeometryVertex>	vertices;
+
+	if (topologyClass == TopologyClass::TRIANGLE)
+	{
+		// Full-scren triangle fan with 6 vertices.
+		//
+		// 4        3        2
+		//  +-------+-------+
+		//  |X      X      X|
+		//  | X     X     X |
+		//  |  X    X    X  |
+		//  |   X   X   X   |
+		//  |    X  X  X    |
+		//  |     X X X     |
+		//  |      XXX      |
+		//  +-------+-------+
+		// 5        0        1
+		vertices.push_back(GeometryVertex(tcu::Vec2( 0.0f,  1.0f)));
+		vertices.push_back(GeometryVertex(tcu::Vec2( 1.0f,  1.0f)));
+		vertices.push_back(GeometryVertex(tcu::Vec2( 1.0f, -1.0f)));
+		vertices.push_back(GeometryVertex(tcu::Vec2( 0.0f, -1.0f)));
+		vertices.push_back(GeometryVertex(tcu::Vec2(-1.0f, -1.0f)));
+		vertices.push_back(GeometryVertex(tcu::Vec2(-1.0f,  1.0f)));
+	}
+	else // TopologyClass::LINE
+	{
+		// Draw one segmented line per output row of pixels that could be wrongly interpreted as a list of lines that would not cover the whole screen.
+		const float lineHeight = 2.0f / static_cast<float>(kFramebufferHeight);
+		for (deUint32 rowIdx = 0; rowIdx < kFramebufferHeight; ++rowIdx)
+		{
+			// Offset of 0.5 pixels + one line per row from -1 to 1.
+			const float yCoord = (lineHeight / 2.0f) + lineHeight * static_cast<float>(rowIdx) - 1.0f;
+			vertices.push_back(GeometryVertex(tcu::Vec2(-1.0f, yCoord)));
+			vertices.push_back(GeometryVertex(tcu::Vec2(-0.5f, yCoord)));
+			vertices.push_back(GeometryVertex(tcu::Vec2( 0.5f, yCoord)));
+			vertices.push_back(GeometryVertex(tcu::Vec2( 1.0f, yCoord)));
+		}
+	}
+
+	// Reversed vertices, except for the first one (0, 5, 4, 3, 2, 1): clockwise mesh for triangles. Not to be used with lines.
+	std::vector<GeometryVertex> reversedVertices(1u, vertices[0]);
+	std::copy_n(vertices.rbegin(), vertices.size() - 1u, std::back_inserter(reversedVertices));
+
+	if (topologyClass == TopologyClass::LINE)
+	{
+		for (const auto& mesh : m_testConfig.meshParams)
+		{
+			DE_UNREF(mesh); // For release builds.
+			DE_ASSERT(!mesh.reversed);
+		}
+	}
+
+	const auto vertBufferSize = static_cast<vk::VkDeviceSize>(vertices.size() * sizeof(decltype(vertices)::value_type));
+	const auto vertBufferInfo = vk::makeBufferCreateInfo(vertBufferSize, vk::VK_BUFFER_USAGE_VERTEX_BUFFER_BIT);
+	vk::BufferWithMemory vertBuffer		(vkd, device, allocator, vertBufferInfo, vk::MemoryRequirement::HostVisible);
+	vk::BufferWithMemory rvertBuffer	(vkd, device, allocator, vertBufferInfo, vk::MemoryRequirement::HostVisible);
+
+	// Copy data to vertex buffers and flush allocations.
+	copyAndFlush(vkd, device, vertBuffer, vertices.data(), static_cast<size_t>(vertBufferSize));
+	copyAndFlush(vkd, device, rvertBuffer, reversedVertices.data(), static_cast<size_t>(vertBufferSize));
+	const vk::VkDeviceSize vertBufferOffset = 0ull;
+
+	// Descriptor set layout.
+	vk::DescriptorSetLayoutBuilder layoutBuilder;
+	const auto descriptorSetLayout = layoutBuilder.build(vkd, device);
+
+	// Pipeline layout.
+	vk::VkShaderStageFlags pushConstantStageFlags = (vk::VK_SHADER_STAGE_VERTEX_BIT | vk::VK_SHADER_STAGE_FRAGMENT_BIT);
+	if (m_testConfig.isMultiViewport())
+		pushConstantStageFlags |= vk::VK_SHADER_STAGE_GEOMETRY_BIT;
+
+	const vk::VkPushConstantRange pushConstantRange =
+	{
+		pushConstantStageFlags,							//	VkShaderStageFlags	stageFlags;
+		0u,												//	deUint32			offset;
+		static_cast<deUint32>(sizeof(PushConstants)),	//	deUint32			size;
+	};
+
+	const vk::VkPipelineLayoutCreateInfo pipelineLayoutCreateInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,	//	VkStructureType					sType;
+		nullptr,											//	const void*						pNext;
+		0u,													//	VkPipelineLayoutCreateFlags		flags;
+		1u,													//	deUint32						setLayoutCount;
+		&descriptorSetLayout.get(),							//	const VkDescriptorSetLayout*	pSetLayouts;
+		1u,													//	deUint32						pushConstantRangeCount;
+		&pushConstantRange,									//	const VkPushConstantRange*		pPushConstantRanges;
+	};
+	const auto pipelineLayout = vk::createPipelineLayout(vkd, device, &pipelineLayoutCreateInfo);
+
+	// Render pass with single subpass.
+	const vk::VkAttachmentReference colorAttachmentReference =
+	{
+		0u,												//	deUint32		attachment;
+		vk::VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,	//	VkImageLayout	layout;
+	};
+
+	const vk::VkAttachmentReference dsAttachmentReference =
+	{
+		1u,														//	deUint32		attachment;
+		vk::VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,	//	VkImageLayout	layout;
+	};
+
+	const vk::VkSubpassDescription subpassDescription =
+	{
+		0u,										//	VkSubpassDescriptionFlags		flags;
+		vk::VK_PIPELINE_BIND_POINT_GRAPHICS,	//	VkPipelineBindPoint				pipelineBindPoint;
+		0u,										//	deUint32						inputAttachmentCount;
+		nullptr,								//	const VkAttachmentReference*	pInputAttachments;
+		1u,										//	deUint32						colorAttachmentCount;
+		&colorAttachmentReference,				//	const VkAttachmentReference*	pColorAttachments;
+		nullptr,								//	const VkAttachmentReference*	pResolveAttachments;
+		&dsAttachmentReference,					//	const VkAttachmentReference*	pDepthStencilAttachment;
+		0u,										//	deUint32						preserveAttachmentCount;
+		nullptr,								//	const deUint32*					pPreserveAttachments;
+	};
+
+	std::vector<vk::VkAttachmentDescription> attachmentDescriptions;
+
+	attachmentDescriptions.push_back(vk::VkAttachmentDescription
+	{
+		0u,												//	VkAttachmentDescriptionFlags	flags;
+		kColorFormat,									//	VkFormat						format;
+		vk::VK_SAMPLE_COUNT_1_BIT,						//	VkSampleCountFlagBits			samples;
+		vk::VK_ATTACHMENT_LOAD_OP_CLEAR,				//	VkAttachmentLoadOp				loadOp;
+		vk::VK_ATTACHMENT_STORE_OP_STORE,				//	VkAttachmentStoreOp				storeOp;
+		vk::VK_ATTACHMENT_LOAD_OP_DONT_CARE,			//	VkAttachmentLoadOp				stencilLoadOp;
+		vk::VK_ATTACHMENT_STORE_OP_DONT_CARE,			//	VkAttachmentStoreOp				stencilStoreOp;
+		vk::VK_IMAGE_LAYOUT_UNDEFINED,					//	VkImageLayout					initialLayout;
+		vk::VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,	//	VkImageLayout					finalLayout;
+	});
+
+	attachmentDescriptions.push_back(vk::VkAttachmentDescription
+	{
+		0u,														//	VkAttachmentDescriptionFlags	flags;
+		kDepthStencilFormat,									//	VkFormat						format;
+		vk::VK_SAMPLE_COUNT_1_BIT,								//	VkSampleCountFlagBits			samples;
+		vk::VK_ATTACHMENT_LOAD_OP_CLEAR,						//	VkAttachmentLoadOp				loadOp;
+		vk::VK_ATTACHMENT_STORE_OP_STORE,						//	VkAttachmentStoreOp				storeOp;
+		vk::VK_ATTACHMENT_LOAD_OP_CLEAR,						//	VkAttachmentLoadOp				stencilLoadOp;
+		vk::VK_ATTACHMENT_STORE_OP_STORE,						//	VkAttachmentStoreOp				stencilStoreOp;
+		vk::VK_IMAGE_LAYOUT_UNDEFINED,							//	VkImageLayout					initialLayout;
+		vk::VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,	//	VkImageLayout					finalLayout;
+	});
+
+	const vk::VkRenderPassCreateInfo renderPassCreateInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,			//	VkStructureType					sType;
+		nullptr,												//	const void*						pNext;
+		0u,														//	VkRenderPassCreateFlags			flags;
+		static_cast<deUint32>(attachmentDescriptions.size()),	//	deUint32						attachmentCount;
+		attachmentDescriptions.data(),							//	const VkAttachmentDescription*	pAttachments;
+		1u,														//	deUint32						subpassCount;
+		&subpassDescription,									//	const VkSubpassDescription*		pSubpasses;
+		0u,														//	deUint32						dependencyCount;
+		nullptr,												//	const VkSubpassDependency*		pDependencies;
+	};
+	const auto renderPass = vk::createRenderPass(vkd, device, &renderPassCreateInfo);
+
+	// Framebuffer.
+	std::vector<vk::VkImageView> attachments;
+	attachments.push_back(colorImageView.get());
+	attachments.push_back(dsImageView.get());
+
+	const vk::VkFramebufferCreateInfo framebufferCreateInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,	//	VkStructureType				sType;
+		nullptr,										//	const void*					pNext;
+		0u,												//	VkFramebufferCreateFlags	flags;
+		renderPass.get(),								//	VkRenderPass				renderPass;
+		static_cast<deUint32>(attachments.size()),		//	deUint32					attachmentCount;
+		attachments.data(),								//	const VkImageView*			pAttachments;
+		kFramebufferWidth,								//	deUint32					width;
+		kFramebufferHeight,								//	deUint32					height;
+		1u,												//	deUint32					layers;
+	};
+	const auto framebuffer = vk::createFramebuffer(vkd, device, &framebufferCreateInfo);
+
+	// Shader modules.
+	const auto						vertModule = vk::createShaderModule(vkd, device, m_context.getBinaryCollection().get("vert"), 0u);
+	const auto						fragModule = vk::createShaderModule(vkd, device, m_context.getBinaryCollection().get("frag"), 0u);
+	vk::Move<vk::VkShaderModule>	geomModule;
+
+	if (m_testConfig.needsGeometryShader())
+		geomModule = vk::createShaderModule(vkd, device, m_context.getBinaryCollection().get("geom"), 0u);
+
+	// Shader stages.
+	std::vector<vk::VkPipelineShaderStageCreateInfo> shaderStages;
+
+	vk::VkPipelineShaderStageCreateInfo shaderStageCreateInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,	//	VkStructureType						sType;
+		nullptr,													//	const void*							pNext;
+		0u,															//	VkPipelineShaderStageCreateFlags	flags;
+		vk::VK_SHADER_STAGE_VERTEX_BIT,								//	VkShaderStageFlagBits				stage;
+		vertModule.get(),											//	VkShaderModule						module;
+		"main",														//	const char*							pName;
+		nullptr,													//	const VkSpecializationInfo*			pSpecializationInfo;
+	};
+
+	shaderStages.push_back(shaderStageCreateInfo);
+	shaderStageCreateInfo.stage = vk::VK_SHADER_STAGE_FRAGMENT_BIT;
+	shaderStageCreateInfo.module = fragModule.get();
+	shaderStages.push_back(shaderStageCreateInfo);
+
+	if (m_testConfig.needsGeometryShader())
+	{
+		shaderStageCreateInfo.stage = vk::VK_SHADER_STAGE_GEOMETRY_BIT;
+		shaderStageCreateInfo.module = geomModule.get();
+		shaderStages.push_back(shaderStageCreateInfo);
+	}
+
+	// Input state.
+	const auto vertexBinding	= vk::makeVertexInputBindingDescription(0u, static_cast<deUint32>(m_testConfig.strideConfig.staticValue), vk::VK_VERTEX_INPUT_RATE_VERTEX);
+	const auto vertexAttribute	= vk::makeVertexInputAttributeDescription(0u, 0u, vk::VK_FORMAT_R32G32_SFLOAT, 0u);
+
+	const vk::VkPipelineVertexInputStateCreateInfo vertexInputStateCreateInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,	//	VkStructureType								sType;
+		nullptr,														//	const void*									pNext;
+		0u,																//	VkPipelineVertexInputStateCreateFlags		flags;
+		1u,																//	deUint32									vertexBindingDescriptionCount;
+		&vertexBinding,													//	const VkVertexInputBindingDescription*		pVertexBindingDescriptions;
+		1u,																//	deUint32									vertexAttributeDescriptionCount;
+		&vertexAttribute,												//	const VkVertexInputAttributeDescription*	pVertexAttributeDescriptions;
+	};
+
+	// Input assembly.
+	const vk::VkPipelineInputAssemblyStateCreateInfo inputAssemblyStateCreateInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO,	//	VkStructureType							sType;
+		nullptr,															//	const void*								pNext;
+		0u,																	//	VkPipelineInputAssemblyStateCreateFlags	flags;
+		m_testConfig.topologyConfig.staticValue,							//	VkPrimitiveTopology						topology;
+		VK_FALSE,															//	VkBool32								primitiveRestartEnable;
+	};
+
+	// Viewport state.
+	if (m_testConfig.viewportConfig.dynamicValue)
+		DE_ASSERT(m_testConfig.viewportConfig.dynamicValue.get().size() > 0u);
+	else
+		DE_ASSERT(m_testConfig.viewportConfig.staticValue.size() > 0u);
+
+	if (m_testConfig.scissorConfig.dynamicValue)
+		DE_ASSERT(m_testConfig.scissorConfig.dynamicValue.get().size() > 0u);
+	else
+		DE_ASSERT(m_testConfig.scissorConfig.staticValue.size() > 0u);
+
+	// The viewport and scissor counts must match in the static part, which will be used by the static pipeline.
+	const auto minCounter = static_cast<deUint32>(std::min(m_testConfig.viewportConfig.staticValue.size(), m_testConfig.scissorConfig.staticValue.size()));
+
+	// For the static pipeline.
+	const vk::VkPipelineViewportStateCreateInfo staticViewportStateCreateInfo =
+	{
+
+		vk::VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO,					//	VkStructureType						sType;
+		nullptr,																	//	const void*							pNext;
+		0u,																			//	VkPipelineViewportStateCreateFlags	flags;
+		minCounter,																	//	deUint32							viewportCount;
+		m_testConfig.viewportConfig.staticValue.data(),								//	const VkViewport*					pViewports;
+		minCounter,																	//	deUint32							scissorCount;
+		m_testConfig.scissorConfig.staticValue.data(),								//	const VkRect2D*						pScissors;
+	};
+
+	// For the dynamic pipeline. The viewport and scissor counts must be zero when a dynamic value will be provided, as per the spec.
+	const vk::VkPipelineViewportStateCreateInfo dynamicViewportStateCreateInfo =
+	{
+
+		vk::VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO,					//	VkStructureType						sType;
+		nullptr,																	//	const void*							pNext;
+		0u,																			//	VkPipelineViewportStateCreateFlags	flags;
+		(m_testConfig.viewportConfig.dynamicValue) ? 0u :
+			static_cast<deUint32>(m_testConfig.viewportConfig.staticValue.size()),	//	deUint32							viewportCount;
+		m_testConfig.viewportConfig.staticValue.data(),								//	const VkViewport*					pViewports;
+		(m_testConfig.scissorConfig.dynamicValue) ? 0u :
+			static_cast<deUint32>(m_testConfig.scissorConfig.staticValue.size()),	//	deUint32							scissorCount;
+		m_testConfig.scissorConfig.staticValue.data(),								//	const VkRect2D*						pScissors;
+	};
+
+	// Rasterization state.
+	const vk::VkPipelineRasterizationStateCreateInfo rasterizationStateCreateInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,	//	VkStructureType							sType;
+		nullptr,														//	const void*								pNext;
+		0u,																//	VkPipelineRasterizationStateCreateFlags	flags;
+		VK_FALSE,														//	VkBool32								depthClampEnable;
+		VK_FALSE,														//	VkBool32								rasterizerDiscardEnable;
+		vk::VK_POLYGON_MODE_FILL,										//	VkPolygonMode							polygonMode;
+		m_testConfig.cullModeConfig.staticValue,						//	VkCullModeFlags							cullMode;
+		m_testConfig.frontFaceConfig.staticValue,						//	VkFrontFace								frontFace;
+		VK_FALSE,														//	VkBool32								depthBiasEnable;
+		0.0f,															//	float									depthBiasConstantFactor;
+		0.0f,															//	float									depthBiasClamp;
+		0.0f,															//	float									depthBiasSlopeFactor;
+		1.0f,															//	float									lineWidth;
+	};
+
+	// Multisample state.
+	const vk::VkPipelineMultisampleStateCreateInfo multisampleStateCreateInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,	//	VkStructureType							sType;
+		nullptr,														//	const void*								pNext;
+		0u,																//	VkPipelineMultisampleStateCreateFlags	flags;
+		vk::VK_SAMPLE_COUNT_1_BIT,										//	VkSampleCountFlagBits					rasterizationSamples;
+		VK_FALSE,														//	VkBool32								sampleShadingEnable;
+		0.0f,															//	float									minSampleShading;
+		nullptr,														//	const VkSampleMask*						pSampleMask;
+		VK_FALSE,														//	VkBool32								alphaToCoverageEnable;
+		VK_FALSE,														//	VkBool32								alphaToOneEnable;
+	};
+
+	// Depth/stencil state.
+	vk::VkStencilOpState	staticFrontStencil;
+	vk::VkStencilOpState	staticBackStencil;
+	bool					staticFrontStencilSet	= false;
+	bool					staticBackStencilSet	= false;
+
+	// Common setup for the front and back operations.
+	staticFrontStencil.compareMask	= 0xFFu;
+	staticFrontStencil.writeMask	= 0xFFu;
+	staticFrontStencil.reference	= m_testConfig.referenceStencil;
+	staticBackStencil				= staticFrontStencil;
+
+	for (const auto& op : m_testConfig.stencilOpConfig.staticValue)
+	{
+		if ((op.faceMask & vk::VK_STENCIL_FACE_FRONT_BIT) != 0u)
+		{
+			copy(staticFrontStencil, op);
+			staticFrontStencilSet = true;
+		}
+		if ((op.faceMask & vk::VK_STENCIL_FACE_BACK_BIT) != 0u)
+		{
+			copy(staticBackStencil, op);
+			staticBackStencilSet = true;
+		}
+	}
+
+	// Default values for the static part.
+	if (!staticFrontStencilSet)
+		copy(staticFrontStencil, kDefaultStencilOpParams);
+	if (!staticBackStencilSet)
+		copy(staticBackStencil, kDefaultStencilOpParams);
+
+	const vk::VkPipelineDepthStencilStateCreateInfo depthStencilStateCreateInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,		//	VkStructureType							sType;
+		nullptr,															//	const void*								pNext;
+		0u,																	//	VkPipelineDepthStencilStateCreateFlags	flags;
+		makeVkBool32(m_testConfig.depthTestEnableConfig.staticValue),		//	VkBool32								depthTestEnable;
+		makeVkBool32(m_testConfig.depthWriteEnableConfig.staticValue),		//	VkBool32								depthWriteEnable;
+		m_testConfig.depthCompareOpConfig.staticValue,						//	VkCompareOp								depthCompareOp;
+		makeVkBool32(m_testConfig.depthBoundsTestEnableConfig.staticValue),	//	VkBool32								depthBoundsTestEnable;
+		makeVkBool32(m_testConfig.stencilTestEnableConfig.staticValue),		//	VkBool32								stencilTestEnable;
+		staticFrontStencil,													//	VkStencilOpState						front;
+		staticBackStencil,													//	VkStencilOpState						back;
+		m_testConfig.minDepthBounds,										//	float									minDepthBounds;
+		m_testConfig.maxDepthBounds,										//	float									maxDepthBounds;
+	};
+
+	// Dynamic state. Here we will set all states which have a dynamic value.
+	std::vector<vk::VkDynamicState> dynamicStates;
+
+	if (m_testConfig.cullModeConfig.dynamicValue)				dynamicStates.push_back(vk::VK_DYNAMIC_STATE_CULL_MODE_EXT);
+	if (m_testConfig.frontFaceConfig.dynamicValue)				dynamicStates.push_back(vk::VK_DYNAMIC_STATE_FRONT_FACE_EXT);
+	if (m_testConfig.topologyConfig.dynamicValue)				dynamicStates.push_back(vk::VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT);
+	if (m_testConfig.viewportConfig.dynamicValue)				dynamicStates.push_back(vk::VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT);
+	if (m_testConfig.scissorConfig.dynamicValue)				dynamicStates.push_back(vk::VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT);
+	if (m_testConfig.strideConfig.dynamicValue)					dynamicStates.push_back(vk::VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT);
+	if (m_testConfig.depthTestEnableConfig.dynamicValue)		dynamicStates.push_back(vk::VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT);
+	if (m_testConfig.depthWriteEnableConfig.dynamicValue)		dynamicStates.push_back(vk::VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT);
+	if (m_testConfig.depthCompareOpConfig.dynamicValue)			dynamicStates.push_back(vk::VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT);
+	if (m_testConfig.depthBoundsTestEnableConfig.dynamicValue)	dynamicStates.push_back(vk::VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT);
+	if (m_testConfig.stencilTestEnableConfig.dynamicValue)		dynamicStates.push_back(vk::VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT);
+	if (m_testConfig.stencilOpConfig.dynamicValue)				dynamicStates.push_back(vk::VK_DYNAMIC_STATE_STENCIL_OP_EXT);
+
+	const vk::VkPipelineDynamicStateCreateInfo dynamicStateCreateInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO,	//	VkStructureType						sType;
+		nullptr,													//	const void*							pNext;
+		0u,															//	VkPipelineDynamicStateCreateFlags	flags;
+		static_cast<deUint32>(dynamicStates.size()),				//	deUint32							dynamicStateCount;
+		dynamicStates.data(),										//	const VkDynamicState*				pDynamicStates;
+	};
+
+	const vk::VkPipelineColorBlendAttachmentState colorBlendAttachmentState =
+	{
+		VK_FALSE,						// VkBool32                 blendEnable
+		vk::VK_BLEND_FACTOR_ZERO,		// VkBlendFactor            srcColorBlendFactor
+		vk::VK_BLEND_FACTOR_ZERO,		// VkBlendFactor            dstColorBlendFactor
+		vk::VK_BLEND_OP_ADD,			// VkBlendOp                colorBlendOp
+		vk::VK_BLEND_FACTOR_ZERO,		// VkBlendFactor            srcAlphaBlendFactor
+		vk::VK_BLEND_FACTOR_ZERO,		// VkBlendFactor            dstAlphaBlendFactor
+		vk::VK_BLEND_OP_ADD,			// VkBlendOp                alphaBlendOp
+		vk::VK_COLOR_COMPONENT_R_BIT	// VkColorComponentFlags    colorWriteMask
+		| vk::VK_COLOR_COMPONENT_G_BIT
+		| vk::VK_COLOR_COMPONENT_B_BIT
+		| vk::VK_COLOR_COMPONENT_A_BIT
+	};
+
+	const vk::VkPipelineColorBlendStateCreateInfo colorBlendStateCreateInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,	// VkStructureType                               sType
+		nullptr,														// const void*                                   pNext
+		0u,																// VkPipelineColorBlendStateCreateFlags          flags
+		VK_FALSE,														// VkBool32                                      logicOpEnable
+		vk::VK_LOGIC_OP_CLEAR,											// VkLogicOp                                     logicOp
+		1u,																// deUint32                                      attachmentCount
+		&colorBlendAttachmentState,										// const VkPipelineColorBlendAttachmentState*    pAttachments
+		{ 0.0f, 0.0f, 0.0f, 0.0f }										// float                                         blendConstants[4]
+	};
+
+	const vk::VkGraphicsPipelineCreateInfo graphicsPipelineCreateInfoTemplate =
+	{
+		vk::VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO,	//	VkStructureType									sType;
+		nullptr,												//	const void*										pNext;
+		0u,														//	VkPipelineCreateFlags							flags;
+		static_cast<deUint32>(shaderStages.size()),				//	deUint32										stageCount;
+		shaderStages.data(),									//	const VkPipelineShaderStageCreateInfo*			pStages;
+		&vertexInputStateCreateInfo,							//	const VkPipelineVertexInputStateCreateInfo*		pVertexInputState;
+		&inputAssemblyStateCreateInfo,							//	const VkPipelineInputAssemblyStateCreateInfo*	pInputAssemblyState;
+		nullptr,												//	const VkPipelineTessellationStateCreateInfo*	pTessellationState;
+		nullptr,												//	const VkPipelineViewportStateCreateInfo*		pViewportState;
+		&rasterizationStateCreateInfo,							//	const VkPipelineRasterizationStateCreateInfo*	pRasterizationState;
+		&multisampleStateCreateInfo,							//	const VkPipelineMultisampleStateCreateInfo*		pMultisampleState;
+		&depthStencilStateCreateInfo,							//	const VkPipelineDepthStencilStateCreateInfo*	pDepthStencilState;
+		&colorBlendStateCreateInfo,								//	const VkPipelineColorBlendStateCreateInfo*		pColorBlendState;
+		nullptr,												//	const VkPipelineDynamicStateCreateInfo*			pDynamicState;
+		pipelineLayout.get(),									//	VkPipelineLayout								layout;
+		renderPass.get(),										//	VkRenderPass									renderPass;
+		0u,														//	deUint32										subpass;
+		DE_NULL,												//	VkPipeline										basePipelineHandle;
+		0,														//	deInt32											basePipelineIndex;
+	};
+
+	vk::Move<vk::VkPipeline>	staticPipeline;
+	const bool					useStaticPipeline	= (m_testConfig.sequenceOrdering == SequenceOrdering::BETWEEN_PIPELINES || m_testConfig.sequenceOrdering == SequenceOrdering::AFTER_PIPELINES);
+
+	// Create static pipeline when needed.
+	if (useStaticPipeline)
+	{
+		auto staticPipelineCreateInfo			= graphicsPipelineCreateInfoTemplate;
+		staticPipelineCreateInfo.pViewportState	= &staticViewportStateCreateInfo;
+		staticPipeline							= vk::createGraphicsPipeline(vkd, device, DE_NULL, &staticPipelineCreateInfo);
+	}
+
+	// Create dynamic pipeline.
+	vk::Move<vk::VkPipeline> graphicsPipeline;
+	{
+		auto dynamicPipelineCreateInfo				= graphicsPipelineCreateInfoTemplate;
+		dynamicPipelineCreateInfo.pDynamicState		= &dynamicStateCreateInfo;
+		dynamicPipelineCreateInfo.pViewportState	= &dynamicViewportStateCreateInfo;
+		graphicsPipeline							= vk::createGraphicsPipeline(vkd, device, DE_NULL, &dynamicPipelineCreateInfo);
+	}
+
+	// Command buffer.
+	const auto cmdPool		= vk::makeCommandPool(vkd, device, queueIndex);
+	const auto cmdBufferPtr	= vk::allocateCommandBuffer(vkd , device, cmdPool.get(), vk::VK_COMMAND_BUFFER_LEVEL_PRIMARY);
+	const auto cmdBuffer	= cmdBufferPtr.get();
+
+	// Clear values.
+	std::vector<vk::VkClearValue> clearValues;
+	clearValues.push_back(vk::makeClearValueColor(m_testConfig.clearColorValue));
+	clearValues.push_back(vk::makeClearValueDepthStencil(m_testConfig.clearDepthValue, m_testConfig.clearStencilValue));
+
+	// Track in-advance vertex buffer binding.
+	bool boundInAdvance = false;
+
+	// Record command buffer.
+	vk::beginCommandBuffer(vkd, cmdBuffer);
+
+		// Maybe set extended dynamic state here.
+		if (m_testConfig.sequenceOrdering == SequenceOrdering::CMD_BUFFER_START)
+		{
+			setDynamicStates(m_testConfig, vkd, cmdBuffer);
+			boundInAdvance = maybeBindVertexBufferDynStride(m_testConfig, vkd, cmdBuffer, 0u, vertBuffer.get(), rvertBuffer.get(), vertBufferSize, vertBufferOffset);
+		}
+
+		// Begin render pass.
+		vk::beginRenderPass(vkd, cmdBuffer, renderPass.get(), framebuffer.get(), vk::makeRect2D(kFramebufferWidth, kFramebufferHeight), static_cast<deUint32>(clearValues.size()), clearValues.data());
+
+			// Bind a static pipeline first if needed.
+			if (useStaticPipeline)
+				vkd.cmdBindPipeline(cmdBuffer, vk::VK_PIPELINE_BIND_POINT_GRAPHICS, staticPipeline.get());
+
+			// Maybe set extended dynamic state here.
+			if (m_testConfig.sequenceOrdering == SequenceOrdering::BETWEEN_PIPELINES)
+			{
+				setDynamicStates(m_testConfig, vkd, cmdBuffer);
+				boundInAdvance = maybeBindVertexBufferDynStride(m_testConfig, vkd, cmdBuffer, 0u, vertBuffer.get(), rvertBuffer.get(), vertBufferSize, vertBufferOffset);
+			}
+
+			// Bind dynamic pipeline.
+			vkd.cmdBindPipeline(cmdBuffer, vk::VK_PIPELINE_BIND_POINT_GRAPHICS, graphicsPipeline.get());
+
+			const auto& viewportVec = m_testConfig.getActiveViewportVec();
+			for (size_t viewportIdx = 0u; viewportIdx < viewportVec.size(); ++viewportIdx)
+			{
+				for (size_t meshIdx = 0u; meshIdx < m_testConfig.meshParams.size(); ++meshIdx)
+				{
+					// Push constants.
+					PushConstants pushConstants =
+					{
+						m_testConfig.meshParams[meshIdx].color,		//	tcu::Vec4	triangleColor;
+						m_testConfig.meshParams[meshIdx].depth,		//	float		meshDepth;
+						static_cast<deInt32>(viewportIdx),			//	deInt32		viewPortIndex;
+						m_testConfig.meshParams[meshIdx].scaleX,	//	float		scaleX;
+						m_testConfig.meshParams[meshIdx].scaleY,	//	float		scaleY;
+						m_testConfig.meshParams[meshIdx].offsetX,	//	float		offsetX;
+						m_testConfig.meshParams[meshIdx].offsetY,	//	float		offsetY;
+					};
+					vkd.cmdPushConstants(cmdBuffer, pipelineLayout.get(), pushConstantStageFlags, 0u, static_cast<deUint32>(sizeof(pushConstants)), &pushConstants);
+
+					// Track vertex bounding state for this mesh.
+					bool boundBeforeDraw = false;
+
+					// Maybe set extended dynamic state here.
+					if (m_testConfig.sequenceOrdering == SequenceOrdering::BEFORE_DRAW || m_testConfig.sequenceOrdering == SequenceOrdering::AFTER_PIPELINES)
+					{
+						setDynamicStates(m_testConfig, vkd, cmdBuffer);
+						boundBeforeDraw = maybeBindVertexBufferDynStride(m_testConfig, vkd, cmdBuffer, meshIdx, vertBuffer.get(), rvertBuffer.get(), vertBufferSize, vertBufferOffset);
+					}
+
+					// Bind vertex buffer with static stride if needed and draw.
+					if (!(boundInAdvance || boundBeforeDraw))
+						vkd.cmdBindVertexBuffers(cmdBuffer, 0u, 1u, (m_testConfig.meshParams[meshIdx].reversed ? &rvertBuffer.get() : &vertBuffer.get()), &vertBufferOffset);
+
+					// Draw mesh.
+					vkd.cmdDraw(cmdBuffer, static_cast<deUint32>(vertices.size()), 1u, 0u, 0u);
+				}
+			}
+
+		vk::endRenderPass(vkd, cmdBuffer);
+	vk::endCommandBuffer(vkd, cmdBuffer);
+
+	// Submit commands.
+	vk::submitCommandsAndWait(vkd, device, queue, cmdBuffer);
+
+	// Read result image aspects.
+	const tcu::UVec2	renderSize		(kFramebufferWidth, kFramebufferHeight);
+	const auto			colorBuffer		= readColorAttachment(vkd, device, queue, queueIndex, allocator, colorImage.get(), kColorFormat, renderSize);
+	const auto			depthBuffer		= readDepthAttachment(vkd, device, queue, queueIndex, allocator, dsImage.get(), kDepthStencilFormat, renderSize);
+	const auto			stencilBuffer	= readStencilAttachment(vkd, device, queue, queueIndex, allocator, dsImage.get(), kDepthStencilFormat, renderSize, vk::VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL);
+	const auto			colorAccess		= colorBuffer->getAccess();
+	const auto			depthAccess		= depthBuffer->getAccess();
+	const auto			stencilAccess	= stencilBuffer->getAccess();
+
+	const int kWidth	= static_cast<int>(kFramebufferWidth);
+	const int kHeight	= static_cast<int>(kFramebufferHeight);
+
+	const tcu::TextureFormat	errorFormat			(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8);
+	tcu::TextureLevel			colorError			(errorFormat, kWidth, kHeight);
+	tcu::TextureLevel			depthError			(errorFormat, kWidth, kHeight);
+	tcu::TextureLevel			stencilError		(errorFormat, kWidth, kHeight);
+	const auto					colorErrorAccess	= colorError.getAccess();
+	const auto					depthErrorAccess	= depthError.getAccess();
+	const auto					stencilErrorAccess	= stencilError.getAccess();
+	const tcu::Vec4				kGood				(0.0f, 1.0f, 0.0f, 1.0f);
+	const tcu::Vec4				kBad				(1.0f, 0.0f, 0.0f, 1.0f);
+
+	// Check expected values.
+	bool colorMatch		= true;
+	bool depthMatch		= true;
+	bool stencilMatch	= true;
+	bool match;
+
+	for (int x = 0; x < kWidth; ++x)
+	for (int y = 0; y < kHeight; ++y)
+	{
+		const auto colorPixel = colorAccess.getPixel(x, y);
+		match = tcu::boolAll(tcu::lessThan(tcu::absDiff(colorPixel, m_testConfig.expectedColor), kColorThreshold));
+		colorErrorAccess.setPixel((match ? kGood : kBad), x, y);
+		if (!match)
+			colorMatch = false;
+
+		const auto depthPixel = depthAccess.getPixDepth(x, y);
+		match = (depthPixel == m_testConfig.expectedDepth);
+		depthErrorAccess.setPixel((match ? kGood : kBad), x, y);
+		if (!match)
+			depthMatch = false;
+
+		const auto stencilPixel = static_cast<deUint32>(stencilAccess.getPixStencil(x, y));
+		match = (stencilPixel == m_testConfig.expectedStencil);
+		stencilErrorAccess.setPixel((match ? kGood : kBad), x, y);
+		if (!match)
+			stencilMatch = false;
+	}
+
+	if (!(colorMatch && depthMatch && stencilMatch))
+	{
+		auto& log = m_context.getTestContext().getLog();
+
+		if (!colorMatch)
+			logErrors(log, "Color", "Result color image and error mask", colorAccess, colorErrorAccess);
+
+		if (!depthMatch)
+			logErrors(log, "Depth", "Result depth image and error mask", depthAccess, depthErrorAccess);
+
+		if (!stencilMatch)
+			logErrors(log, "Stencil", "Result stencil image and error mask", stencilAccess, stencilErrorAccess);
+
+		return tcu::TestStatus::fail("Incorrect value found in attachments; please check logged images");
+	}
+
+	return tcu::TestStatus::pass("Pass");
+}
+
+bool stencilPasses(vk::VkCompareOp op, deUint8 storedValue, deUint8 referenceValue)
+{
+	switch (op)
+	{
+	case vk::VK_COMPARE_OP_NEVER:				return false;
+	case vk::VK_COMPARE_OP_LESS:				return (referenceValue <	storedValue);
+	case vk::VK_COMPARE_OP_EQUAL:				return (referenceValue ==	storedValue);
+	case vk::VK_COMPARE_OP_LESS_OR_EQUAL:		return (referenceValue <=	storedValue);
+	case vk::VK_COMPARE_OP_GREATER:				return (referenceValue >	storedValue);
+	case vk::VK_COMPARE_OP_GREATER_OR_EQUAL:	return (referenceValue >=	storedValue);
+	case vk::VK_COMPARE_OP_ALWAYS:				return true;
+	default: DE_ASSERT(false); return false;
+	}
+
+	return false;	// Unreachable.
+}
+
+deUint8 stencilResult(vk::VkStencilOp op, deUint8 storedValue, deUint8 referenceValue, deUint8 min, deUint8 max)
+{
+	deUint8 result = storedValue;
+
+	switch (op)
+	{
+	case vk::VK_STENCIL_OP_KEEP:					break;
+	case vk::VK_STENCIL_OP_ZERO:					result = 0; break;
+	case vk::VK_STENCIL_OP_REPLACE:					result = referenceValue; break;
+	case vk::VK_STENCIL_OP_INCREMENT_AND_CLAMP:		result = ((result == max) ? result : static_cast<deUint8>(result + 1)); break;
+	case vk::VK_STENCIL_OP_DECREMENT_AND_CLAMP:		result = ((result == min) ? result : static_cast<deUint8>(result - 1)); break;
+	case vk::VK_STENCIL_OP_INVERT:					result = static_cast<deUint8>(~result); break;
+	case vk::VK_STENCIL_OP_INCREMENT_AND_WRAP:		result = ((result == max) ? min : static_cast<deUint8>(result + 1)); break;
+	case vk::VK_STENCIL_OP_DECREMENT_AND_WRAP:		result = ((result == min) ? max : static_cast<deUint8>(result - 1)); break;
+	default: DE_ASSERT(false); break;
+	}
+
+	return result;
+}
+
+} // anonymous namespace
+
+tcu::TestCaseGroup* createExtendedDynamicStateTests (tcu::TestContext& testCtx)
+{
+	de::MovePtr<tcu::TestCaseGroup> extendedDynamicStateGroup(new tcu::TestCaseGroup(testCtx, "extended_dynamic_state", "Tests for VK_EXT_extended_dynamic_state"));
+
+	// Auxiliar constants.
+	const deUint32	kHalfWidthU	= kFramebufferWidth/2u;
+	const deInt32	kHalfWidthI	= static_cast<deInt32>(kHalfWidthU);
+	const float		kHalfWidthF	= static_cast<float>(kHalfWidthU);
+	const float		kHeightF	= static_cast<float>(kFramebufferHeight);
+
+	static const struct
+	{
+		SequenceOrdering	ordering;
+		std::string			name;
+		std::string			desc;
+	} kOrderingCases[] =
+	{
+		{ SequenceOrdering::CMD_BUFFER_START,	"cmd_buffer_start",		"Dynamic state set after command buffer start"																			},
+		{ SequenceOrdering::BEFORE_DRAW,		"before_draw",			"Dynamic state set just before drawing"																					},
+		{ SequenceOrdering::BETWEEN_PIPELINES,	"between_pipelines",	"Dynamic after a pipeline with static states has been bound and before a pipeline with dynamic states has been bound"	},
+		{ SequenceOrdering::AFTER_PIPELINES,	"after_pipelines",		"Dynamic state set after both a static-state pipeline and a second dynamic-state pipeline have been bound"				},
+	};
+
+	for (int orderingIdx = 0; orderingIdx < DE_LENGTH_OF_ARRAY(kOrderingCases); ++orderingIdx)
+	{
+		const auto& kOrderingCase	= kOrderingCases[orderingIdx];
+		const auto& kOrdering		= kOrderingCase.ordering;
+
+		de::MovePtr<tcu::TestCaseGroup> orderingGroup(new tcu::TestCaseGroup(testCtx, kOrderingCase.name.c_str(), kOrderingCase.desc.c_str()));
+
+		// Cull modes.
+		{
+			TestConfig config(kOrdering);
+			config.cullModeConfig.staticValue	= vk::VK_CULL_MODE_FRONT_BIT;
+			config.cullModeConfig.dynamicValue	= tcu::just<vk::VkCullModeFlags>(vk::VK_CULL_MODE_NONE);
+			orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "cull_none", "Dynamically set cull mode to none", config));
+		}
+		{
+			TestConfig config(kOrdering);
+			config.cullModeConfig.staticValue	= vk::VK_CULL_MODE_FRONT_AND_BACK;
+			config.cullModeConfig.dynamicValue	= tcu::just<vk::VkCullModeFlags>(vk::VK_CULL_MODE_BACK_BIT);
+			orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "cull_back", "Dynamically set cull mode to back", config));
+		}
+		{
+			TestConfig config(kOrdering);
+			// Make triangles look back.
+			config.meshParams[0].reversed		= true;
+			config.cullModeConfig.staticValue	= vk::VK_CULL_MODE_BACK_BIT;
+			config.cullModeConfig.dynamicValue	= tcu::just<vk::VkCullModeFlags>(vk::VK_CULL_MODE_FRONT_BIT);
+			orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "cull_front", "Dynamically set cull mode to front", config));
+		}
+		{
+			TestConfig config(kOrdering);
+			config.cullModeConfig.staticValue	= vk::VK_CULL_MODE_NONE;
+			config.cullModeConfig.dynamicValue	= tcu::just<vk::VkCullModeFlags>(vk::VK_CULL_MODE_FRONT_AND_BACK);
+			config.expectedColor				= kDefaultClearColor;
+			orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "cull_front_and_back", "Dynamically set cull mode to front and back", config));
+		}
+
+		// Front face.
+		{
+			TestConfig config(kOrdering);
+			config.cullModeConfig.staticValue	= vk::VK_CULL_MODE_BACK_BIT;
+			config.frontFaceConfig.staticValue	= vk::VK_FRONT_FACE_CLOCKWISE;
+			config.frontFaceConfig.dynamicValue	= tcu::just<vk::VkFrontFace>(vk::VK_FRONT_FACE_COUNTER_CLOCKWISE);
+			orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "front_face_cw", "Dynamically set front face to clockwise", config));
+		}
+		{
+			TestConfig config(kOrdering);
+			// Pass triangles in clockwise order.
+			config.meshParams[0].reversed		= true;
+			config.cullModeConfig.staticValue	= vk::VK_CULL_MODE_BACK_BIT;
+			config.frontFaceConfig.staticValue	= vk::VK_FRONT_FACE_COUNTER_CLOCKWISE;
+			config.frontFaceConfig.dynamicValue	= tcu::just<vk::VkFrontFace>(vk::VK_FRONT_FACE_CLOCKWISE);
+			orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "front_face_ccw", "Dynamically set front face to counter-clockwise", config));
+		}
+		{
+			TestConfig config(kOrdering);
+			config.cullModeConfig.staticValue	= vk::VK_CULL_MODE_BACK_BIT;
+			config.frontFaceConfig.staticValue	= vk::VK_FRONT_FACE_COUNTER_CLOCKWISE;
+			config.frontFaceConfig.dynamicValue	= tcu::just<vk::VkFrontFace>(vk::VK_FRONT_FACE_CLOCKWISE);
+			config.expectedColor				= kDefaultClearColor;
+			orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "front_face_cw_reversed", "Dynamically set front face to clockwise with a counter-clockwise mesh", config));
+		}
+		{
+			TestConfig config(kOrdering);
+			// Pass triangles in clockwise order.
+			config.meshParams[0].reversed		= true;
+			config.cullModeConfig.staticValue	= vk::VK_CULL_MODE_BACK_BIT;
+			config.frontFaceConfig.staticValue	= vk::VK_FRONT_FACE_CLOCKWISE;
+			config.frontFaceConfig.dynamicValue	= tcu::just<vk::VkFrontFace>(vk::VK_FRONT_FACE_COUNTER_CLOCKWISE);
+			config.expectedColor				= kDefaultClearColor;
+			orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "front_face_ccw_reversed", "Dynamically set front face to counter-clockwise with a clockwise mesh", config));
+		}
+
+		// Dynamic topology.
+		{
+			TestConfig baseConfig(kOrdering);
+
+			for (int i = 0; i < 2; ++i)
+			{
+				const bool forceGeometryShader = (i > 0);
+
+				static const struct
+				{
+					vk::VkPrimitiveTopology staticVal;
+					vk::VkPrimitiveTopology dynamicVal;
+				} kTopologyCases[] =
+				{
+					{ vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,	vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN	},
+					{ vk::VK_PRIMITIVE_TOPOLOGY_LINE_LIST,		vk::VK_PRIMITIVE_TOPOLOGY_LINE_STRIP	},
+				};
+
+				for (int topoCaseIdx = 0; topoCaseIdx < DE_LENGTH_OF_ARRAY(kTopologyCases); ++topoCaseIdx)
+				{
+					TestConfig config(baseConfig);
+					config.forceGeometryShader			= forceGeometryShader;
+					config.topologyConfig.staticValue	= kTopologyCases[topoCaseIdx].staticVal;
+					config.topologyConfig.dynamicValue	= tcu::just<vk::VkPrimitiveTopology>(kTopologyCases[topoCaseIdx].dynamicVal);
+
+					const std::string	className	= topologyClassName(getTopologyClass(config.topologyConfig.staticValue));
+					const std::string	name		= "topology_" + className + (forceGeometryShader ? "_geom" : "");
+					const std::string	desc		= "Dynamically switch primitive topologies from the " + className + " class" + (forceGeometryShader ? " and use a geometry shader" : "");
+					orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, name, desc, config));
+				}
+			}
+		}
+
+		// Viewport.
+		{
+			TestConfig config(kOrdering);
+			// 2 scissors, bad static single viewport.
+			config.scissorConfig.staticValue	= ScissorVec{vk::makeRect2D(0, 0, kHalfWidthU, kFramebufferHeight), vk::makeRect2D(kHalfWidthI, 0, kHalfWidthU, kFramebufferHeight)};
+			config.viewportConfig.staticValue	= ViewportVec(1u, vk::makeViewport(kHalfWidthU, kFramebufferHeight));
+			config.viewportConfig.dynamicValue	= ViewportVec{
+				vk::makeViewport(0.0f, 0.0f, kHalfWidthF, kHeightF, 0.0f, 1.0f),
+				vk::makeViewport(kHalfWidthF, 0.0f, kHalfWidthF, kHeightF, 0.0f, 1.0f),
+			};
+			orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "2_viewports", "Dynamically set 2 viewports", config));
+		}
+		{
+			TestConfig config(kOrdering);
+			// Bad static reduced viewport.
+			config.viewportConfig.staticValue	= ViewportVec(1u, vk::makeViewport(kHalfWidthU, kFramebufferHeight));
+			config.viewportConfig.staticValue	= ViewportVec(1u, vk::makeViewport(kFramebufferWidth, kFramebufferHeight));
+			orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "1_full_viewport", "Dynamically set viewport to cover full framebuffer", config));
+		}
+		{
+			TestConfig config(kOrdering);
+			// 2 scissors (left half, right half), 2 reversed static viewports that need fixing (right, left).
+			config.scissorConfig.staticValue	= ScissorVec{vk::makeRect2D(0, 0, kHalfWidthU, kFramebufferHeight), vk::makeRect2D(kHalfWidthI, 0, kHalfWidthU, kFramebufferHeight)};
+			config.viewportConfig.staticValue	= ViewportVec{
+				vk::makeViewport(kHalfWidthF, 0.0f, kHalfWidthF, kHeightF, 0.0f, 1.0f),	// Right.
+				vk::makeViewport(0.0f, 0.0f, kHalfWidthF, kHeightF, 0.0f, 1.0f),		// Left.
+			};
+			config.viewportConfig.dynamicValue	= ViewportVec{config.viewportConfig.staticValue.back(), config.viewportConfig.staticValue.front()};
+			orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "2_viewports_switch", "Dynamically switch the order with 2 viewports", config));
+		}
+		{
+			TestConfig config(kOrdering);
+			// 2 scissors, reversed dynamic viewports that should result in no drawing taking place.
+			config.scissorConfig.staticValue	= ScissorVec{vk::makeRect2D(0, 0, kHalfWidthU, kFramebufferHeight), vk::makeRect2D(kHalfWidthI, 0, kHalfWidthU, kFramebufferHeight)};
+			config.viewportConfig.staticValue	= ViewportVec{
+				vk::makeViewport(0.0f, 0.0f, kHalfWidthF, kHeightF, 0.0f, 1.0f),		// Left.
+				vk::makeViewport(kHalfWidthF, 0.0f, kHalfWidthF, kHeightF, 0.0f, 1.0f),	// Right.
+			};
+			config.viewportConfig.dynamicValue	= ViewportVec{config.viewportConfig.staticValue.back(), config.viewportConfig.staticValue.front()};
+			config.expectedColor				= kDefaultClearColor;
+			orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "2_viewports_switch_clean", "Dynamically switch the order with 2 viewports resulting in clean image", config));
+		}
+
+		// Scissor.
+		{
+			TestConfig config(kOrdering);
+			// 2 viewports, bad static single scissor.
+			config.viewportConfig.staticValue	= ViewportVec{
+				vk::makeViewport(0.0f, 0.0f, kHalfWidthF, kHeightF, 0.0f, 1.0f),
+				vk::makeViewport(kHalfWidthF, 0.0f, kHalfWidthF, kHeightF, 0.0f, 1.0f),
+			};
+			config.scissorConfig.staticValue	= ScissorVec(1u, vk::makeRect2D(kHalfWidthI, 0, kHalfWidthU, kFramebufferHeight));
+			config.scissorConfig.dynamicValue	= ScissorVec{
+				vk::makeRect2D(kHalfWidthU, kFramebufferHeight),
+				vk::makeRect2D(kHalfWidthI, 0, kHalfWidthU, kFramebufferHeight),
+			};
+			orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "2_scissors", "Dynamically set 2 scissors", config));
+		}
+		{
+			TestConfig config(kOrdering);
+			// 1 viewport, bad static single scissor.
+			config.scissorConfig.staticValue	= ScissorVec(1u, vk::makeRect2D(kHalfWidthI, 0, kHalfWidthU, kFramebufferHeight));
+			config.scissorConfig.dynamicValue	= ScissorVec(1u, vk::makeRect2D(kFramebufferWidth, kFramebufferHeight));
+			orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "1_full_scissor", "Dynamically set scissor to cover full framebuffer", config));
+		}
+		{
+			TestConfig config(kOrdering);
+			// 2 viewports, 2 reversed scissors that need fixing.
+			config.viewportConfig.staticValue	= ViewportVec{
+				vk::makeViewport(0.0f, 0.0f, kHalfWidthF, kHeightF, 0.0f, 1.0f),
+				vk::makeViewport(kHalfWidthF, 0.0f, kHalfWidthF, kHeightF, 0.0f, 1.0f),
+			};
+			config.scissorConfig.staticValue	= ScissorVec{
+				vk::makeRect2D(kHalfWidthI, 0, kHalfWidthU, kFramebufferHeight),
+				vk::makeRect2D(kHalfWidthU, kFramebufferHeight),
+			};
+			config.scissorConfig.dynamicValue	= ScissorVec{config.scissorConfig.staticValue.back(), config.scissorConfig.staticValue.front()};
+			orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "2_scissors_switch", "Dynamically switch the order with 2 scissors", config));
+		}
+		{
+			TestConfig config(kOrdering);
+			// 2 viewports, 2 scissors switched to prevent drawing.
+			config.viewportConfig.staticValue	= ViewportVec{
+				vk::makeViewport(0.0f, 0.0f, kHalfWidthF, kHeightF, 0.0f, 1.0f),
+				vk::makeViewport(kHalfWidthF, 0.0f, kHalfWidthF, kHeightF, 0.0f, 1.0f),
+			};
+			config.scissorConfig.staticValue	= ScissorVec{
+				vk::makeRect2D(kHalfWidthU, kFramebufferHeight),
+				vk::makeRect2D(kHalfWidthI, 0, kHalfWidthU, kFramebufferHeight),
+			};
+			config.scissorConfig.dynamicValue	= ScissorVec{config.scissorConfig.staticValue.back(), config.scissorConfig.staticValue.front()};
+			config.expectedColor				= kDefaultClearColor;
+			orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "2_scissors_switch_clean", "Dynamically switch the order with 2 scissors to avoid drawing", config));
+		}
+
+		// Stride.
+		{
+			TestConfig config(kOrdering);
+			config.strideConfig.staticValue		= kCoordsSize;
+			config.strideConfig.dynamicValue	= kVertexStride;
+			orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "stride", "Dynamically set stride", config));
+		}
+
+		// Depth test enable.
+		{
+			TestConfig config(kOrdering);
+			config.depthTestEnableConfig.staticValue	= false;
+			config.depthTestEnableConfig.dynamicValue	= tcu::just(true);
+			// By default, the depth test never passes when enabled.
+			config.expectedColor						= kDefaultClearColor;
+			orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "depth_test_enable", "Dynamically enable depth test", config));
+		}
+		{
+			TestConfig config(kOrdering);
+			config.depthTestEnableConfig.staticValue	= true;
+			config.depthTestEnableConfig.dynamicValue	= tcu::just(false);
+			config.expectedColor						= kDefaultTriangleColor;
+			orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "depth_test_disable", "Dynamically disable depth test", config));
+		}
+
+		// Depth write enable.
+		{
+			TestConfig config(kOrdering);
+
+			// Enable depth test and set values so it passes.
+			config.depthTestEnableConfig.staticValue	= true;
+			config.depthCompareOpConfig.staticValue		= vk::VK_COMPARE_OP_LESS;
+			config.clearDepthValue						= 0.5f;
+			config.meshParams[0].depth					= 0.25f;
+
+			// Enable writes and expect the mesh value.
+			config.depthWriteEnableConfig.staticValue	= false;
+			config.depthWriteEnableConfig.dynamicValue	= tcu::just(true);
+			config.expectedDepth						= 0.25f;
+
+			orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "depth_write_enable", "Dynamically enable writes to the depth buffer", config));
+		}
+		{
+			TestConfig config(kOrdering);
+
+			// Enable depth test and set values so it passes.
+			config.depthTestEnableConfig.staticValue	= true;
+			config.depthCompareOpConfig.staticValue		= vk::VK_COMPARE_OP_LESS;
+			config.clearDepthValue						= 0.5f;
+			config.meshParams[0].depth					= 0.25f;
+
+			// But disable writing dynamically and expect the clear value.
+			config.depthWriteEnableConfig.staticValue	= true;
+			config.depthWriteEnableConfig.dynamicValue	= tcu::just(false);
+			config.expectedDepth						= 0.5f;
+
+			orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "depth_write_disable", "Dynamically disable writes to the depth buffer", config));
+		}
+
+		// Depth compare op.
+		{
+			TestConfig baseConfig(kOrdering);
+			const tcu::Vec4 kAlternativeColor				(0.0f, 0.0f, 0.5f, 1.0f);
+			baseConfig.depthTestEnableConfig.staticValue	= true;
+			baseConfig.depthWriteEnableConfig.staticValue	= true;
+			baseConfig.depthCompareOpConfig.staticValue		= vk::VK_COMPARE_OP_NEVER;
+			baseConfig.clearDepthValue						= 0.5f;
+
+			{
+				TestConfig config = baseConfig;
+				config.depthCompareOpConfig.staticValue		= vk::VK_COMPARE_OP_ALWAYS;
+				config.depthCompareOpConfig.dynamicValue	= vk::VK_COMPARE_OP_NEVER;
+				config.meshParams[0].depth					= 0.25f;
+				config.expectedDepth						= 0.5f;
+				config.expectedColor						= kDefaultClearColor;
+				orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "depth_compare_never", "Dynamically set the depth compare operator to NEVER", config));
+			}
+			{
+				TestConfig config = baseConfig;
+				config.depthCompareOpConfig.dynamicValue	= vk::VK_COMPARE_OP_LESS;
+				config.meshParams[0].depth					= 0.25f;
+				config.expectedDepth						= 0.25f;
+				orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "depth_compare_less", "Dynamically set the depth compare operator to LESS", config));
+			}
+			{
+				TestConfig config = baseConfig;
+				config.depthCompareOpConfig.dynamicValue	= vk::VK_COMPARE_OP_GREATER;
+				config.meshParams[0].depth					= 0.75f;
+				config.expectedDepth						= 0.75f;
+				orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "depth_compare_greater", "Dynamically set the depth compare operator to GREATER", config));
+			}
+			{
+				TestConfig config = baseConfig;
+				config.depthCompareOpConfig.dynamicValue	= vk::VK_COMPARE_OP_EQUAL;
+				config.meshParams[0].depth					= 0.5f;
+				config.meshParams[0].color					= kAlternativeColor;
+				// Draw another mesh in front to verify it does not pass the equality test.
+				config.meshParams.push_back(MeshParams(kDefaultTriangleColor, 0.25f));
+				config.expectedDepth						= 0.5f;
+				config.expectedColor						= kAlternativeColor;
+				orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "depth_compare_equal", "Dynamically set the depth compare operator to EQUAL", config));
+			}
+			{
+				TestConfig config = baseConfig;
+				config.depthCompareOpConfig.dynamicValue	= vk::VK_COMPARE_OP_LESS_OR_EQUAL;
+				config.meshParams[0].depth					= 0.25f;
+				config.expectedDepth						= 0.25f;
+				orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "depth_compare_less_equal_less", "Dynamically set the depth compare operator to LESS_OR_EQUAL and draw with smaller depth", config));
+			}
+			{
+				TestConfig config = baseConfig;
+				config.depthCompareOpConfig.dynamicValue	= vk::VK_COMPARE_OP_LESS_OR_EQUAL;
+				config.meshParams[0].depth					= 0.5f;
+				config.expectedDepth						= 0.5f;
+				orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "depth_compare_less_equal_equal", "Dynamically set the depth compare operator to LESS_OR_EQUAL and draw with equal depth", config));
+			}
+			{
+				TestConfig config = baseConfig;
+				config.depthCompareOpConfig.dynamicValue	= vk::VK_COMPARE_OP_LESS_OR_EQUAL;
+				config.meshParams[0].depth					= 0.25f;
+				// Draw another mesh with the same depth in front of it.
+				config.meshParams.push_back(MeshParams(kAlternativeColor, 0.25f));
+				config.expectedDepth						= 0.25f;
+				config.expectedColor						= kAlternativeColor;
+				orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "depth_compare_less_equal_less_then_equal", "Dynamically set the depth compare operator to LESS_OR_EQUAL and draw two meshes with less and equal depth", config));
+			}
+			{
+				TestConfig config = baseConfig;
+				config.depthCompareOpConfig.dynamicValue	= vk::VK_COMPARE_OP_GREATER_OR_EQUAL;
+				config.meshParams[0].depth					= 0.75f;
+				config.expectedDepth						= 0.75f;
+				orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "depth_compare_greater_equal_greater", "Dynamically set the depth compare operator to GREATER_OR_EQUAL and draw with greater depth", config));
+			}
+			{
+				TestConfig config = baseConfig;
+				config.depthCompareOpConfig.dynamicValue	= vk::VK_COMPARE_OP_GREATER_OR_EQUAL;
+				config.meshParams[0].depth					= 0.5f;
+				config.expectedDepth						= 0.5f;
+				orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "depth_compare_greater_equal_equal", "Dynamically set the depth compare operator to GREATER_OR_EQUAL and draw with equal depth", config));
+			}
+			{
+				TestConfig config = baseConfig;
+				config.depthCompareOpConfig.dynamicValue	= vk::VK_COMPARE_OP_GREATER_OR_EQUAL;
+				config.meshParams[0].depth					= 0.75f;
+				// Draw another mesh with the same depth in front of it.
+				config.meshParams.push_back(MeshParams(kAlternativeColor, 0.75f));
+				config.expectedDepth						= 0.75f;
+				config.expectedColor						= kAlternativeColor;
+				orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "depth_compare_greater_equal_greater_then_equal", "Dynamically set the depth compare operator to GREATER_OR_EQUAL and draw two meshes with greater and equal depth", config));
+			}
+			{
+				TestConfig config = baseConfig;
+				config.depthCompareOpConfig.dynamicValue	= vk::VK_COMPARE_OP_NOT_EQUAL;
+
+				// Draw first mesh in front.
+				config.meshParams[0].depth					= 0.25f;
+				// Draw another mesh in the back, this should pass too.
+				config.meshParams.push_back(MeshParams(kAlternativeColor, 0.5f));
+				// Finally a new mesh with the same depth. This should not pass.
+				config.meshParams.push_back(MeshParams(kDefaultTriangleColor, 0.5f));
+
+				config.expectedColor						= kAlternativeColor;
+				config.expectedDepth						= 0.5f;
+				orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "depth_compare_not_equal", "Dynamically set the depth compare operator to NOT_EQUAL", config));
+			}
+			{
+				TestConfig config = baseConfig;
+				config.depthCompareOpConfig.dynamicValue	= vk::VK_COMPARE_OP_ALWAYS;
+
+				config.meshParams[0].depth					= 0.5f;
+				config.expectedDepth						= 0.5f;
+				orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "depth_compare_always_equal", "Dynamically set the depth compare operator to ALWAYS and draw with equal depth", config));
+
+				config.meshParams[0].depth					= 0.25f;
+				config.expectedDepth						= 0.25f;
+				orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "depth_compare_always_less", "Dynamically set the depth compare operator to ALWAYS and draw with less depth", config));
+
+				config.meshParams[0].depth					= 0.75f;
+				config.expectedDepth						= 0.75f;
+				orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "depth_compare_always_greater", "Dynamically set the depth compare operator to ALWAYS and draw with greater depth", config));
+			}
+		}
+
+		// Depth bounds test.
+		{
+			TestConfig baseConfig(kOrdering);
+			baseConfig.minDepthBounds							= 0.25f;
+			baseConfig.maxDepthBounds							= 0.75f;
+			baseConfig.meshParams[0].depth						= 0.0f;
+
+			{
+				TestConfig config = baseConfig;
+				config.depthBoundsTestEnableConfig.staticValue	= false;
+				config.depthBoundsTestEnableConfig.dynamicValue	= tcu::just(true);
+				config.expectedColor							= kDefaultClearColor;
+				orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "depth_bounds_test_enable", "Dynamically enable the depth bounds test", config));
+			}
+			{
+				TestConfig config = baseConfig;
+				config.depthBoundsTestEnableConfig.staticValue	= true;
+				config.depthBoundsTestEnableConfig.dynamicValue	= tcu::just(false);
+				config.expectedColor							= kDefaultTriangleColor;
+				orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "depth_bounds_test_disable", "Dynamically disable the depth bounds test", config));
+			}
+		}
+
+		// Stencil test enable.
+		{
+			TestConfig config(kOrdering);
+			config.stencilTestEnableConfig.staticValue				= false;
+			config.stencilTestEnableConfig.dynamicValue				= tcu::just(true);
+			config.stencilOpConfig.staticValue.front().compareOp	= vk::VK_COMPARE_OP_NEVER;
+			config.expectedColor									= kDefaultClearColor;
+			orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "stencil_test_enable", "Dynamically enable the stencil test", config));
+		}
+		{
+			TestConfig config(kOrdering);
+			config.stencilTestEnableConfig.staticValue				= true;
+			config.stencilTestEnableConfig.dynamicValue				= tcu::just(false);
+			config.stencilOpConfig.staticValue.front().compareOp	= vk::VK_COMPARE_OP_NEVER;
+			config.expectedColor									= kDefaultTriangleColor;
+			orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, "stencil_test_disable", "Dynamically disable the stencil test", config));
+		}
+
+		// Stencil operation. Many combinations are possible.
+		{
+			static const struct
+			{
+				vk::VkStencilFaceFlags	face;
+				std::string				name;
+			} kFaces[] =
+			{
+				{ vk::VK_STENCIL_FACE_FRONT_BIT,			"face_front"		},
+				{ vk::VK_STENCIL_FACE_BACK_BIT,				"face_back"			},
+				{ vk::VK_STENCIL_FRONT_AND_BACK,			"face_both_single"	},
+				{ vk::VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM,	"face_both_dual"	},	// MAX_ENUM is a placeholder.
+			};
+
+			static const struct
+			{
+				vk::VkCompareOp		compareOp;
+				std::string			name;
+			} kCompare[] =
+			{
+				{ vk::VK_COMPARE_OP_NEVER,				"xf"		},
+				{ vk::VK_COMPARE_OP_LESS,				"lt"		},
+				{ vk::VK_COMPARE_OP_EQUAL,				"eq"		},
+				{ vk::VK_COMPARE_OP_LESS_OR_EQUAL,		"le"		},
+				{ vk::VK_COMPARE_OP_GREATER,			"gt"		},
+				{ vk::VK_COMPARE_OP_GREATER_OR_EQUAL,	"ge"		},
+				{ vk::VK_COMPARE_OP_ALWAYS,				"xt"		},
+			};
+
+			using u8vec = std::vector<deUint8>;
+
+			static const auto kMinVal	= std::numeric_limits<deUint8>::min();
+			static const auto kMaxVal	= std::numeric_limits<deUint8>::max();
+			static const auto kMidVal	= static_cast<deUint8>(kMaxVal * 2u / 5u);
+			static const auto kMinValI	= static_cast<int>(kMinVal);
+			static const auto kMaxValI	= static_cast<int>(kMaxVal);
+
+			static const struct
+			{
+				vk::VkStencilOp		stencilOp;
+				std::string			name;
+				u8vec				clearValues;	// One test per clear value interesting for this operation.
+				vk::VkStencilOp		incompatibleOp;	// Alternative operation giving incompatible results for the given values.
+			} kStencilOps[] =
+			{
+				{ vk::VK_STENCIL_OP_KEEP,					"keep",			u8vec{kMidVal},					vk::VK_STENCIL_OP_ZERO					},
+				{ vk::VK_STENCIL_OP_ZERO,					"zero",			u8vec{kMidVal},					vk::VK_STENCIL_OP_KEEP					},
+				{ vk::VK_STENCIL_OP_REPLACE,				"replace",		u8vec{kMidVal},					vk::VK_STENCIL_OP_ZERO					},
+				{ vk::VK_STENCIL_OP_INCREMENT_AND_CLAMP,	"inc_clamp",	u8vec{kMaxVal - 1, kMaxVal},	vk::VK_STENCIL_OP_ZERO					},
+				{ vk::VK_STENCIL_OP_DECREMENT_AND_CLAMP,	"dec_clamp",	u8vec{kMinVal + 1, kMinVal},	vk::VK_STENCIL_OP_INCREMENT_AND_CLAMP	},
+				{ vk::VK_STENCIL_OP_INVERT,					"invert",		u8vec{kMidVal},					vk::VK_STENCIL_OP_ZERO					},
+				{ vk::VK_STENCIL_OP_INCREMENT_AND_WRAP,		"inc_wrap",		u8vec{kMaxVal - 1, kMaxVal},	vk::VK_STENCIL_OP_KEEP					},
+				{ vk::VK_STENCIL_OP_DECREMENT_AND_WRAP,		"dec_wrap",		u8vec{kMinVal + 1, kMinVal},	vk::VK_STENCIL_OP_KEEP					},
+			};
+
+			for (int facesIdx	= 0; facesIdx	< DE_LENGTH_OF_ARRAY(kFaces);		++facesIdx)
+			for (int compareIdx	= 0; compareIdx	< DE_LENGTH_OF_ARRAY(kCompare);		++compareIdx)
+			for (int opIdx		= 0; opIdx		< DE_LENGTH_OF_ARRAY(kStencilOps);	++opIdx)
+			{
+				const auto& face	= kFaces[facesIdx];
+				const auto& compare	= kCompare[compareIdx];
+				const auto& op		= kStencilOps[opIdx];
+
+				// Try clearing the stencil value with different values.
+				for (const auto clearVal : op.clearValues)
+				{
+					// Use interesting values as the reference stencil value.
+					for (int delta = -1; delta <= 1; ++delta)
+					{
+						const int refVal = clearVal + delta;
+						if (refVal < kMinValI || refVal > kMaxValI)
+							continue;
+
+						const auto refValU8		= static_cast<deUint8>(refVal);
+						const auto refValU32	= static_cast<deUint32>(refVal);
+
+						// Calculate outcome of the stencil test itself.
+						const bool wouldPass = stencilPasses(compare.compareOp, clearVal, refValU8);
+
+						// If the test passes, use an additional variant for the depthFail operation.
+						const int subCases = (wouldPass ? 2 : 1);
+
+						for (int subCaseIdx = 0; subCaseIdx < subCases; ++subCaseIdx)
+						{
+							const bool depthFail	= (subCaseIdx > 0);				// depthFail would be the second variant.
+							const bool globalPass	= (wouldPass && !depthFail);	// Global result of the stencil+depth test.
+
+							// Start tuning test parameters.
+							TestConfig config(kOrdering);
+
+							// No face culling is applied by default, so both the front and back operations could apply depending on the mesh.
+							if (face.face == vk::VK_STENCIL_FACE_FRONT_BIT)
+							{
+								// Default parameters are OK.
+							}
+							else if (face.face == vk::VK_STENCIL_FACE_BACK_BIT)
+							{
+								// Reverse the mesh so it applies the back operation.
+								config.meshParams[0].reversed = true;
+							}
+							else	// Front and back.
+							{
+								// Draw both a front and a back-facing mesh so both are applied.
+								// The first mesh will be drawn in the top half and the second mesh in the bottom half.
+
+								// Make the second mesh a reversed copy of the first mesh.
+								config.meshParams.push_back(config.meshParams.front());
+								config.meshParams.back().reversed = true;
+
+								// Apply scale and offset to the top mesh.
+								config.meshParams.front().scaleY = 0.5f;
+								config.meshParams.front().offsetY = -0.5f;
+
+								// Apply scale and offset to the bottom mesh.
+								config.meshParams.back().scaleY = 0.5f;
+								config.meshParams.back().offsetY = 0.5f;
+							}
+
+							// Enable the stencil test.
+							config.stencilTestEnableConfig.staticValue = true;
+
+							// Set dynamic configuration.
+							StencilOpParams dynamicStencilConfig;
+							dynamicStencilConfig.faceMask		= face.face;
+							dynamicStencilConfig.compareOp		= compare.compareOp;
+							dynamicStencilConfig.failOp			= vk::VK_STENCIL_OP_MAX_ENUM;
+							dynamicStencilConfig.passOp			= vk::VK_STENCIL_OP_MAX_ENUM;
+							dynamicStencilConfig.depthFailOp	= vk::VK_STENCIL_OP_MAX_ENUM;
+
+							// Set operations so only the appropriate operation for this case gives the right result.
+							vk::VkStencilOp* activeOp		= nullptr;
+							vk::VkStencilOp* inactiveOps[2]	= { nullptr, nullptr };
+							if (wouldPass)
+							{
+								if (depthFail)
+								{
+									activeOp		= &dynamicStencilConfig.depthFailOp;
+									inactiveOps[0]	= &dynamicStencilConfig.passOp;
+									inactiveOps[1]	= &dynamicStencilConfig.failOp;
+								}
+								else
+								{
+									activeOp		= &dynamicStencilConfig.passOp;
+									inactiveOps[0]	= &dynamicStencilConfig.depthFailOp;
+									inactiveOps[1]	= &dynamicStencilConfig.failOp;
+								}
+							}
+							else
+							{
+								activeOp		= &dynamicStencilConfig.failOp;
+								inactiveOps[0]	= &dynamicStencilConfig.passOp;
+								inactiveOps[1]	= &dynamicStencilConfig.depthFailOp;
+							}
+
+							*activeOp = op.stencilOp;
+							*inactiveOps[0] = op.incompatibleOp;
+							*inactiveOps[1] = op.incompatibleOp;
+
+							// Make sure all ops have been configured properly.
+							DE_ASSERT(dynamicStencilConfig.failOp != vk::VK_STENCIL_OP_MAX_ENUM);
+							DE_ASSERT(dynamicStencilConfig.passOp != vk::VK_STENCIL_OP_MAX_ENUM);
+							DE_ASSERT(dynamicStencilConfig.depthFailOp != vk::VK_STENCIL_OP_MAX_ENUM);
+
+							// Set an incompatible static operation too.
+							auto& staticStencilConfig		= config.stencilOpConfig.staticValue.front();
+							staticStencilConfig.faceMask	= face.face;
+							staticStencilConfig.compareOp	= (globalPass ? vk::VK_COMPARE_OP_NEVER : vk::VK_COMPARE_OP_ALWAYS);
+							staticStencilConfig.passOp		= op.incompatibleOp;
+							staticStencilConfig.failOp		= op.incompatibleOp;
+							staticStencilConfig.depthFailOp	= op.incompatibleOp;
+
+							// Set dynamic configuration.
+							StencilOpVec stencilOps;
+							stencilOps.push_back(dynamicStencilConfig);
+
+							if (stencilOps.front().faceMask == vk::VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM)
+							{
+								// This is the dual case. We will set the front and back face values with two separate calls.
+								stencilOps.push_back(stencilOps.front());
+								stencilOps.front().faceMask	= vk::VK_STENCIL_FACE_FRONT_BIT;
+								stencilOps.back().faceMask	= vk::VK_STENCIL_FACE_BACK_BIT;
+							}
+
+							config.stencilOpConfig.dynamicValue	= tcu::just(stencilOps);
+							config.clearStencilValue			= clearVal;
+							config.referenceStencil				= refValU32;
+
+							if (depthFail)
+							{
+								// Enable depth test and make it fail.
+								config.depthTestEnableConfig.staticValue	= true;
+								config.clearDepthValue						= 0.5f;
+								config.depthCompareOpConfig.staticValue		= vk::VK_COMPARE_OP_LESS;
+
+								for (auto& meshPar : config.meshParams)
+									meshPar.depth = 0.75f;
+							}
+
+							// Set expected outcome.
+							config.expectedColor	= (globalPass ? kDefaultTriangleColor : kDefaultClearColor);
+							config.expectedDepth	= config.clearDepthValue; // No depth writing by default.
+							config.expectedStencil	= stencilResult(op.stencilOp, clearVal, refValU8, kMinVal, kMaxVal);
+
+							const std::string testName = std::string("stencil_state")
+								+ "_" + face.name
+								+ "_" + compare.name
+								+ "_" + op.name
+								+ "_clear_" + de::toString(static_cast<int>(clearVal))
+								+ "_ref_" + de::toString(refVal)
+								+ "_" + (wouldPass ? (depthFail ? "depthfail" : "pass") : "fail");
+
+							orderingGroup->addChild(new ExtendedDynamicStateTest(testCtx, testName, "Dynamically configure stencil test, variant " + testName, config));
+						}
+					}
+				}
+			}
+		}
+
+		extendedDynamicStateGroup->addChild(orderingGroup.release());
+	}
+
+	return extendedDynamicStateGroup.release();
+}
+
+} // pipeline
+} // vkt
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineExtendedDynamicStateTests.hpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineExtendedDynamicStateTests.hpp
new file mode 100644
index 0000000..f779b7c
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineExtendedDynamicStateTests.hpp
@@ -0,0 +1,39 @@
+#ifndef _VKTPIPELINEEXTENDEDDYNAMICSTATETESTS_HPP
+#define _VKTPIPELINEEXTENDEDDYNAMICSTATETESTS_HPP
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2020 The Khronos Group Inc.
+ * Copyright (c) 2020 Valve Corporation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Extended dynamic state tests
+ *//*--------------------------------------------------------------------*/
+
+#include "tcuTestCase.hpp"
+
+namespace vkt
+{
+namespace pipeline
+{
+
+tcu::TestCaseGroup* createExtendedDynamicStateTests (tcu::TestContext& testCtx);
+
+} // pipeline
+} // vkt
+
+#endif // _VKTPIPELINEEXTENDEDDYNAMICSTATETESTS_HPP
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineImageSamplingInstance.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineImageSamplingInstance.cpp
index 5ae09af..0a98211 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineImageSamplingInstance.cpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineImageSamplingInstance.cpp
@@ -254,16 +254,29 @@
 		}
 	}
 
-	if (params.samplerParams.pNext != DE_NULL)
+	void const* pNext = params.samplerParams.pNext;
+	while (pNext != DE_NULL)
 	{
-		const VkStructureType nextType = *reinterpret_cast<const VkStructureType*>(params.samplerParams.pNext);
-
-		if (nextType == VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT)
+		const VkStructureType nextType = *reinterpret_cast<const VkStructureType*>(pNext);
+		switch (nextType)
 		{
-			context.requireDeviceFunctionality("VK_EXT_sampler_filter_minmax");
+			case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT:
+			{
+				context.requireDeviceFunctionality("VK_EXT_sampler_filter_minmax");
 
-			if (!isMinMaxFilteringSupported(context.getInstanceInterface(), context.getPhysicalDevice(), params.imageFormat, VK_IMAGE_TILING_OPTIMAL))
-				throw tcu::NotSupportedError(std::string("Unsupported format for min/max filtering: ") + getFormatName(params.imageFormat));
+				if (!isMinMaxFilteringSupported(context.getInstanceInterface(), context.getPhysicalDevice(), params.imageFormat, VK_IMAGE_TILING_OPTIMAL))
+					throw tcu::NotSupportedError(std::string("Unsupported format for min/max filtering: ") + getFormatName(params.imageFormat));
+
+				pNext = reinterpret_cast<const VkSamplerReductionModeCreateInfo*>(pNext)->pNext;
+				break;
+			}
+			case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO:
+				context.requireDeviceFunctionality("VK_KHR_sampler_ycbcr_conversion");
+
+				pNext = reinterpret_cast<const VkSamplerYcbcrConversionInfo*>(pNext)->pNext;
+				break;
+			default:
+				TCU_FAIL("Unrecognized sType in chained sampler create info");
 		}
 	}
 
@@ -333,9 +346,10 @@
 	SimpleAllocator							memAlloc				(vk, vkDevice, getPhysicalDeviceMemoryProperties(context.getInstanceInterface(), context.getPhysicalDevice()));
 	const VkComponentMapping				componentMappingRGBA	= { VK_COMPONENT_SWIZZLE_R, VK_COMPONENT_SWIZZLE_G, VK_COMPONENT_SWIZZLE_B, VK_COMPONENT_SWIZZLE_A };
 
-	if (m_samplerParams.pNext != DE_NULL)
+	void const* pNext = m_samplerParams.pNext;
+	while (pNext != DE_NULL)
 	{
-		const VkStructureType nextType = *reinterpret_cast<const VkStructureType*>(m_samplerParams.pNext);
+		const VkStructureType nextType = *reinterpret_cast<const VkStructureType*>(pNext);
 		switch (nextType)
 		{
 			case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT:
@@ -367,8 +381,12 @@
 						TCU_THROW(NotSupportedError, "filterMinmaxImageComponentMapping is not supported (R mapping is not IDENTITY)");
 					}
 				}
+				pNext = reinterpret_cast<const VkSamplerReductionModeCreateInfo*>(pNext)->pNext;
 			}
 			break;
+			case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO:
+				pNext = reinterpret_cast<const VkSamplerYcbcrConversionInfo*>(pNext)->pNext;
+				break;
 			default:
 				TCU_FAIL("Unrecognized sType in chained sampler create info");
 		}
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBase.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBase.cpp
index 07c3729..5862da0 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBase.cpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBase.cpp
@@ -130,8 +130,7 @@
 							<< imageFormatProps.maxExtent.width <<  ", "
 							<< imageFormatProps.maxExtent.height << ", "
 							<< imageFormatProps.maxExtent.depth
-							<< ")"
-							<< std::endl;
+							<< ")";
 
 		const std::string notSupportedString = notSupportedStream.str();
 
@@ -142,7 +141,7 @@
 	{
 		std::ostringstream	notSupportedStream;
 
-		notSupportedStream << "Image layers count of " << imageInfo.arrayLayers << " exceeds allowed maximum which is " << imageFormatProps.maxArrayLayers << std::endl;
+		notSupportedStream << "Image layers count of " << imageInfo.arrayLayers << " exceeds allowed maximum which is " << imageFormatProps.maxArrayLayers;
 
 		const std::string notSupportedString = notSupportedStream.str();
 
@@ -153,7 +152,7 @@
 	{
 		std::ostringstream	notSupportedStream;
 
-		notSupportedStream << "Samples count of " << imageInfo.samples << " not supported for image" << std::endl;
+		notSupportedStream << "Samples count of " << imageInfo.samples << " not supported for image";
 
 		const std::string notSupportedString = notSupportedStream.str();
 
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBase.hpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBase.hpp
index af5d7d7..90f8d8b 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBase.hpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBase.hpp
@@ -34,12 +34,45 @@
 namespace multisample
 {
 
+enum class ComponentSource
+{
+	NONE			= 0,
+	CONSTANT		= 1,
+	PUSH_CONSTANT	= 2,
+};
+
+struct ComponentData
+{
+	ComponentData ()
+		: source	{ComponentSource::NONE}
+		, index		{0u}
+		{}
+
+	ComponentData (ComponentSource source_, deUint32 index_)
+		: source	{source_}
+		, index		{index_}
+		{}
+
+	ComponentData (const ComponentData& other)
+		: source	{other.source}
+		, index		{other.index}
+		{}
+
+	ComponentSource	source;
+	deUint32		index;
+};
+
 struct ImageMSParams
 {
-	ImageMSParams(const vk::VkSampleCountFlagBits samples, const tcu::UVec3& size) : numSamples(samples), imageSize(size) {}
+	ImageMSParams(const vk::VkSampleCountFlagBits samples, const tcu::UVec3& size, const ComponentData& data = ComponentData{})
+		: numSamples	{samples}
+		, imageSize		{size}
+		, componentData	{data}
+		{}
 
 	vk::VkSampleCountFlagBits	numSamples;
 	tcu::UVec3					imageSize;
+	ComponentData				componentData;
 };
 
 class MultisampleCaseBase : public TestCase
@@ -117,7 +150,8 @@
 								 const tcu::UVec3							imageSizes[],
 								 const deUint32								imageSizesElemCount,
 								 const vk::VkSampleCountFlagBits			imageSamples[],
-								 const deUint32								imageSamplesElemCount)
+								 const deUint32								imageSamplesElemCount,
+								 const multisample::ComponentData&			componentData = multisample::ComponentData{})
 {
 	de::MovePtr<tcu::TestCaseGroup> caseGroup(new tcu::TestCaseGroup(testCtx, groupName.c_str(), ""));
 
@@ -132,8 +166,8 @@
 
 		for (deUint32 imageSamplesNdx = 0u; imageSamplesNdx < imageSamplesElemCount; ++imageSamplesNdx)
 		{
-			const vk::VkSampleCountFlagBits		samples = imageSamples[imageSamplesNdx];
-			const multisample::ImageMSParams	imageMSParams = multisample::ImageMSParams(samples, imageSize);
+			const vk::VkSampleCountFlagBits		samples			= imageSamples[imageSamplesNdx];
+			const multisample::ImageMSParams	imageMSParams	= multisample::ImageMSParams(samples, imageSize, componentData);
 
 			sizeGroup->addChild(CaseClass::createCase(testCtx, "samples_" + de::toString(samples), imageMSParams));
 		}
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBaseResolve.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBaseResolve.cpp
index 4bc2ba8..67046b7 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBaseResolve.cpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleBaseResolve.cpp
@@ -52,6 +52,8 @@
 	Allocator&						allocator			= m_context.getDefaultAllocator();
 	const VkQueue					queue				= m_context.getUniversalQueue();
 	const deUint32					queueFamilyIndex	= m_context.getUniversalQueueFamilyIndex();
+	const bool						usePushConstants	= (m_imageMSParams.componentData.source == ComponentSource::PUSH_CONSTANT);
+	const deUint32					pushConstantSize	= static_cast<deUint32>(sizeof(decltype(m_imageMSParams.componentData.index)));
 
 	VkImageCreateInfo				imageMSInfo;
 	VkImageCreateInfo				imageRSInfo;
@@ -190,16 +192,29 @@
 
 	const Unique<VkFramebuffer> framebuffer(createFramebuffer(deviceInterface, device, &framebufferInfo));
 
+	std::vector<vk::VkPushConstantRange>	pushConstantRanges;
+
+	if (usePushConstants)
+	{
+		const vk::VkPushConstantRange pushConstantRange =
+		{
+			vk::VK_SHADER_STAGE_ALL,	// VkShaderStageFlags	stageFlags;
+			0u,							// deUint32				offset;
+			pushConstantSize,			// deUint32				size;
+		};
+		pushConstantRanges.push_back(pushConstantRange);
+	}
+
 	// Create pipeline layout
 	const VkPipelineLayoutCreateInfo pipelineLayoutParams =
 	{
-		VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,		// VkStructureType					sType;
-		DE_NULL,											// const void*						pNext;
-		(VkPipelineLayoutCreateFlags)0u,					// VkPipelineLayoutCreateFlags		flags;
-		0u,													// deUint32							setLayoutCount;
-		DE_NULL,											// const VkDescriptorSetLayout*		pSetLayouts;
-		0u,													// deUint32							pushConstantRangeCount;
-		DE_NULL,											// const VkPushConstantRange*		pPushConstantRanges;
+		VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,						// VkStructureType					sType;
+		DE_NULL,															// const void*						pNext;
+		(VkPipelineLayoutCreateFlags)0u,									// VkPipelineLayoutCreateFlags		flags;
+		0u,																	// deUint32							setLayoutCount;
+		DE_NULL,															// const VkDescriptorSetLayout*		pSetLayouts;
+		static_cast<deUint32>(pushConstantRanges.size()),					// deUint32							pushConstantRangeCount;
+		(pushConstantRanges.empty() ? nullptr : pushConstantRanges.data()),	// const VkPushConstantRange*		pPushConstantRanges;
 	};
 
 	const Unique<VkPipelineLayout> pipelineLayout(createPipelineLayout(deviceInterface, device, &pipelineLayoutParams));
@@ -318,6 +333,10 @@
 		// Bind vertex buffer
 		deviceInterface.cmdBindVertexBuffers(*commandBuffer, 0u, 1u, &vertexBuffer->get(), &vertexStartOffset);
 
+		// Push constants.
+		if (usePushConstants)
+			deviceInterface.cmdPushConstants(*commandBuffer, *pipelineLayout, vk::VK_SHADER_STAGE_ALL, 0u, pushConstantSize, &m_imageMSParams.componentData.index);
+
 		// Draw full screen quad
 		deviceInterface.cmdDraw(*commandBuffer, vertexDataDesc.verticesCount, 1u, 0u, 0u);
 
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleInterpolationTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleInterpolationTests.cpp
index 92e8b82..e3ed15f 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleInterpolationTests.cpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleInterpolationTests.cpp
@@ -506,9 +506,20 @@
 
 template<> void MSCase<MSCaseInterpolateAtSampleConsistency>::init (void)
 {
+	const std::string	indexStr = de::toString(m_imageMSParams.componentData.index);
+	std::string			componentMsg;
+
+	switch (m_imageMSParams.componentData.source)
+	{
+	case multisample::ComponentSource::CONSTANT:		componentMsg = "Using single constant component " + indexStr;			break;
+	case multisample::ComponentSource::PUSH_CONSTANT:	componentMsg = "Using single component via push constant " + indexStr;	break;
+	default: break;
+	}
+
 	m_testCtx.getLog()
 		<< tcu::TestLog::Message
 		<< "Verifying that interpolateAtSample with the sample set to the current sampleID returns consistent values.\n"
+		<< (componentMsg.empty() ? std::string() : componentMsg + "\n")
 		<< "	Interpolate varying containing screen space location with centroid and sample qualifiers.\n"
 		<< "	=> interpolateAtSample(screenCentroid, sampleID) = screenSample\n"
 		<< tcu::TestLog::EndMessage;
@@ -543,19 +554,44 @@
 	// Create fragment shader
 	std::ostringstream fs;
 
-	fs << "#version 440\n"
+	fs	<< "#version 440\n"
 		<< "layout(location = 0) centroid in vec2 fs_in_pos_screen_centroid;\n"
 		<< "layout(location = 1) sample   in vec2 fs_in_pos_screen_sample;\n"
 		<< "\n"
 		<< "layout(location = 0) out vec4 fs_out_color;\n"
-		<< "\n"
-		<< "void main (void)\n"
+		<< "\n";
+
+	if (m_imageMSParams.componentData.source == multisample::ComponentSource::PUSH_CONSTANT)
+	{
+		fs	<< "layout(push_constant) uniform PushConstants {\n"
+			<< "   uint component;\n"
+			<< "};\n"
+			<< "\n";
+	}
+
+	fs	<< "void main (void)\n"
 		<< "{\n"
 		<< "	const float threshold = 0.15625;\n"
-		<< "\n"
-		<< "	const vec2  pos_interpolated_at_sample = interpolateAtSample(fs_in_pos_screen_centroid, gl_SampleID);\n"
-		<< "	const bool  valuesEqual				   = all(lessThan(abs(pos_interpolated_at_sample - fs_in_pos_screen_sample), vec2(threshold)));\n"
-		<< "\n"
+		<< "\n";
+
+	if (m_imageMSParams.componentData.source == multisample::ComponentSource::NONE)
+	{
+		fs	<< "	const vec2  pos_interpolated_at_sample = interpolateAtSample(fs_in_pos_screen_centroid, gl_SampleID);\n"
+			<< "	const bool  valuesEqual                = all(lessThan(abs(pos_interpolated_at_sample - fs_in_pos_screen_sample), vec2(threshold)));\n";
+	}
+	else if (m_imageMSParams.componentData.source == multisample::ComponentSource::CONSTANT)
+	{
+		const auto& index = m_imageMSParams.componentData.index;
+		fs	<< "	const float pos_interpolated_at_sample = interpolateAtSample(fs_in_pos_screen_centroid[" << index << "], gl_SampleID);\n"
+			<< "	const bool  valuesEqual                = (abs(pos_interpolated_at_sample - fs_in_pos_screen_sample[" << index << "]) < threshold);\n";
+	}
+	else // multisample::ComponentSource::PUSH_CONSTANT
+	{
+		fs	<< "	const float pos_interpolated_at_sample = interpolateAtSample(fs_in_pos_screen_centroid[component], gl_SampleID);\n"
+			<< "	const bool  valuesEqual                = (abs(pos_interpolated_at_sample - fs_in_pos_screen_sample[component]) < threshold);\n";
+	}
+
+	fs	<< "\n"
 		<< "	if (valuesEqual)\n"
 		<< "		fs_out_color = vec4(0.0, 1.0, 0.0, 1.0);\n"
 		<< "	else\n"
@@ -579,9 +615,20 @@
 
 template<> void MSCase<MSCaseInterpolateAtCentroidConsistency>::init (void)
 {
+	const std::string	indexStr = de::toString(m_imageMSParams.componentData.index);
+	std::string			componentMsg;
+
+	switch (m_imageMSParams.componentData.source)
+	{
+	case multisample::ComponentSource::CONSTANT:		componentMsg = "Using single constant component " + indexStr;			break;
+	case multisample::ComponentSource::PUSH_CONSTANT:	componentMsg = "Using single component via push constant " + indexStr;	break;
+	default: break;
+	}
+
 	m_testCtx.getLog()
 		<< tcu::TestLog::Message
 		<< "Verifying that interpolateAtCentroid does not return different values than a corresponding centroid qualified varying.\n"
+		<< (componentMsg.empty() ? std::string() : componentMsg + "\n")
 		<< "	Interpolate varying containing screen space location with sample and centroid qualifiers.\n"
 		<< "	=> interpolateAtCentroid(screenSample) = screenCentroid\n"
 		<< tcu::TestLog::EndMessage;
@@ -616,19 +663,44 @@
 	// Create fragment shader
 	std::ostringstream fs;
 
-	fs << "#version 440\n"
+	fs	<< "#version 440\n"
 		<< "layout(location = 0) sample   in vec2 fs_in_pos_screen_sample;\n"
 		<< "layout(location = 1) centroid in vec2 fs_in_pos_screen_centroid;\n"
 		<< "\n"
 		<< "layout(location = 0) out vec4 fs_out_color;\n"
-		<< "\n"
-		<< "void main (void)\n"
+		<< "\n";
+
+	if (m_imageMSParams.componentData.source == multisample::ComponentSource::PUSH_CONSTANT)
+	{
+		fs	<< "layout(push_constant) uniform PushConstants {\n"
+			<< "   uint component;\n"
+			<< "};\n"
+			<< "\n";
+	}
+
+	fs	<< "void main (void)\n"
 		<< "{\n"
 		<< "	const float threshold = 0.0005;\n"
-		<< "\n"
-		<< "	const vec2 pos_interpolated_at_centroid = interpolateAtCentroid(fs_in_pos_screen_sample);\n"
-		<< "	const bool valuesEqual					= all(lessThan(abs(pos_interpolated_at_centroid - fs_in_pos_screen_centroid), vec2(threshold)));\n"
-		<< "\n"
+		<< "\n";
+
+	if (m_imageMSParams.componentData.source == multisample::ComponentSource::NONE)
+	{
+		fs	<< "	const vec2 pos_interpolated_at_centroid = interpolateAtCentroid(fs_in_pos_screen_sample);\n"
+			<< "	const bool valuesEqual                  = all(lessThan(abs(pos_interpolated_at_centroid - fs_in_pos_screen_centroid), vec2(threshold)));\n";
+	}
+	else if (m_imageMSParams.componentData.source == multisample::ComponentSource::CONSTANT)
+	{
+		const auto& index = m_imageMSParams.componentData.index;
+		fs	<< "	const float pos_interpolated_at_centroid = interpolateAtCentroid(fs_in_pos_screen_sample[" << index << "]);\n"
+			<< "	const bool  valuesEqual                  = (abs(pos_interpolated_at_centroid - fs_in_pos_screen_centroid[" << index << "]) < threshold);\n";
+	}
+	else // multisample::ComponentSource::PUSH_CONSTANT
+	{
+		fs	<< "	const float pos_interpolated_at_centroid = interpolateAtCentroid(fs_in_pos_screen_sample[component]);\n"
+			<< "	const bool  valuesEqual                  = (abs(pos_interpolated_at_centroid - fs_in_pos_screen_centroid[component]) < threshold);\n";
+	}
+
+	fs	<< "\n"
 		<< "	if (valuesEqual)\n"
 		<< "		fs_out_color = vec4(0.0, 1.0, 0.0, 1.0);\n"
 		<< "	else\n"
@@ -732,10 +804,21 @@
 
 template<> void MSCase<MSCaseInterpolateAtOffsetSamplePosition>::init (void)
 {
+	const std::string	indexStr = de::toString(m_imageMSParams.componentData.index);
+	std::string			componentMsg;
+
+	switch (m_imageMSParams.componentData.source)
+	{
+	case multisample::ComponentSource::CONSTANT:		componentMsg = "Using single constant component " + indexStr;			break;
+	case multisample::ComponentSource::PUSH_CONSTANT:	componentMsg = "Using single component via push constant " + indexStr;	break;
+	default: break;
+	}
+
 	m_testCtx.getLog()
 		<< tcu::TestLog::Message
 		<< "Verifying that interpolateAtOffset of screen position with the offset of current sample position returns value "
 		<< "similar to screen position interpolated at sample.\n"
+		<< (componentMsg.empty() ? std::string() : componentMsg + "\n")
 		<< "	Interpolate varying containing screen space location with and without sample qualifier.\n"
 		<< "	=> interpolateAtOffset(screenFragment, samplePosition - (0.5,0.5)) = screenSample"
 		<< tcu::TestLog::EndMessage;
@@ -770,20 +853,45 @@
 	// Create fragment shader
 	std::ostringstream fs;
 
-	fs << "#version 440\n"
+	fs	<< "#version 440\n"
 		<< "layout(location = 0)		in vec2 fs_in_pos_screen_fragment;\n"
 		<< "layout(location = 1) sample in vec2 fs_in_pos_screen_sample;\n"
 		<< "\n"
 		<< "layout(location = 0) out vec4 fs_out_color;\n"
-		<< "\n"
-		<< "void main (void)\n"
+		<< "\n";
+
+	if (m_imageMSParams.componentData.source == multisample::ComponentSource::PUSH_CONSTANT)
+	{
+		fs	<< "layout(push_constant) uniform PushConstants {\n"
+			<< "   uint component;\n"
+			<< "};\n"
+			<< "\n";
+	}
+
+	fs	<< "void main (void)\n"
 		<< "{\n"
 		<< "	const float threshold = 0.15625;\n"
 		<< "\n"
-		<< "	const vec2 offset					  = gl_SamplePosition - vec2(0.5, 0.5);\n"
-		<< "	const vec2 pos_interpolated_at_offset = interpolateAtOffset(fs_in_pos_screen_fragment, offset);\n"
-		<< "	const bool valuesEqual				  = all(lessThan(abs(pos_interpolated_at_offset - fs_in_pos_screen_sample), vec2(threshold)));\n"
-		<< "\n"
+		<< "	const vec2 offset                     = gl_SamplePosition - vec2(0.5, 0.5);\n";
+
+	if (m_imageMSParams.componentData.source == multisample::ComponentSource::NONE)
+	{
+		fs	<< "	const vec2 pos_interpolated_at_offset = interpolateAtOffset(fs_in_pos_screen_fragment, offset);\n"
+			<< "	const bool valuesEqual                = all(lessThan(abs(pos_interpolated_at_offset - fs_in_pos_screen_sample), vec2(threshold)));\n";
+	}
+	else if (m_imageMSParams.componentData.source == multisample::ComponentSource::CONSTANT)
+	{
+		const auto& index = m_imageMSParams.componentData.index;
+		fs	<< "	const float pos_interpolated_at_offset = interpolateAtOffset(fs_in_pos_screen_fragment[" << index << "], offset);\n"
+			<< "	const bool valuesEqual                 = (abs(pos_interpolated_at_offset - fs_in_pos_screen_sample[" << index << "]) < threshold);\n";
+	}
+	else // multisample::ComponentSource::PUSH_CONSTANT
+	{
+		fs	<< "	const float pos_interpolated_at_offset = interpolateAtOffset(fs_in_pos_screen_fragment[component], offset);\n"
+			<< "	const bool valuesEqual                 = (abs(pos_interpolated_at_offset - fs_in_pos_screen_sample[component]) < threshold);\n";
+	}
+
+	fs	<< "\n"
 		<< "	if (valuesEqual)\n"
 		<< "		fs_out_color = vec4(0.0, 1.0, 0.0, 1.0);\n"
 		<< "	else\n"
@@ -963,12 +1071,35 @@
 
 	testGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseInterpolateAtSampleDistinctValues> >	(testCtx, "sample_interpolate_at_distinct_values",	imageSizes, sizesElemCount, imageSamples, samplesElemCount));
 	testGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseInterpolateAtSampleIgnoresCentroid> >(testCtx, "sample_interpolate_at_ignores_centroid",	imageSizes, sizesElemCount, imageSamples, samplesElemCount));
-	testGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseInterpolateAtSampleConsistency> >	(testCtx, "sample_interpolate_at_consistency",		imageSizes, sizesElemCount, imageSamples, samplesElemCount));
+
+	de::MovePtr<tcu::TestCaseGroup> sampleGroup(new tcu::TestCaseGroup(testCtx, "sample_interpolation_consistency", "Test consistency in sample interpolation function"));
+	sampleGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseInterpolateAtSampleConsistency> >	(testCtx, "all_components",		imageSizes, sizesElemCount, imageSamples, samplesElemCount));
+	sampleGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseInterpolateAtSampleConsistency> >	(testCtx, "component_0",		imageSizes, sizesElemCount, imageSamples, samplesElemCount, multisample::ComponentData{multisample::ComponentSource::CONSTANT, 0u}));
+	sampleGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseInterpolateAtSampleConsistency> >	(testCtx, "component_1",		imageSizes, sizesElemCount, imageSamples, samplesElemCount, multisample::ComponentData{multisample::ComponentSource::CONSTANT, 1u}));
+	sampleGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseInterpolateAtSampleConsistency> >	(testCtx, "pushc_component_0",	imageSizes, sizesElemCount, imageSamples, samplesElemCount, multisample::ComponentData{multisample::ComponentSource::PUSH_CONSTANT, 0u}));
+	sampleGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseInterpolateAtSampleConsistency> >	(testCtx, "pushc_component_1",	imageSizes, sizesElemCount, imageSamples, samplesElemCount, multisample::ComponentData{multisample::ComponentSource::PUSH_CONSTANT, 1u}));
+	testGroup->addChild(sampleGroup.release());
+
 	testGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseSampleQualifierDistinctValues> >		(testCtx, "sample_qualifier_distinct_values",		imageSizes, sizesElemCount, imageSamples, samplesElemCount));
-	testGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseInterpolateAtCentroidConsistency> >	(testCtx, "centroid_interpolate_at_consistency",	imageSizes, sizesElemCount, imageSamples, samplesElemCount));
+
+	de::MovePtr<tcu::TestCaseGroup> centroidGroup(new tcu::TestCaseGroup(testCtx, "centroid_interpolation_consistency", "Test consistency in centroid interpolation function"));
+	centroidGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseInterpolateAtCentroidConsistency> >	(testCtx, "all_components",		imageSizes, sizesElemCount, imageSamples, samplesElemCount));
+	centroidGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseInterpolateAtCentroidConsistency> >	(testCtx, "component_0",		imageSizes, sizesElemCount, imageSamples, samplesElemCount, multisample::ComponentData{multisample::ComponentSource::CONSTANT, 0u}));
+	centroidGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseInterpolateAtCentroidConsistency> >	(testCtx, "component_1",		imageSizes, sizesElemCount, imageSamples, samplesElemCount, multisample::ComponentData{multisample::ComponentSource::CONSTANT, 1u}));
+	centroidGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseInterpolateAtCentroidConsistency> >	(testCtx, "pushc_component_0",	imageSizes, sizesElemCount, imageSamples, samplesElemCount, multisample::ComponentData{multisample::ComponentSource::PUSH_CONSTANT, 0u}));
+	centroidGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseInterpolateAtCentroidConsistency> >	(testCtx, "pushc_component_1",	imageSizes, sizesElemCount, imageSamples, samplesElemCount, multisample::ComponentData{multisample::ComponentSource::PUSH_CONSTANT, 1u}));
+	testGroup->addChild(centroidGroup.release());
+
 	testGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseCentroidQualifierInsidePrimitive> >	(testCtx, "centroid_qualifier_inside_primitive",	imageSizes, sizesElemCount, imageSamples, samplesElemCount));
 	testGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseInterpolateAtOffsetPixelCenter> >	(testCtx, "offset_interpolate_at_pixel_center",		imageSizes, sizesElemCount, imageSamples, samplesElemCount));
-	testGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseInterpolateAtOffsetSamplePosition> >	(testCtx, "offset_interpolate_at_sample_position",	imageSizes, sizesElemCount, imageSamples, samplesElemCount));
+
+	de::MovePtr<tcu::TestCaseGroup> offsetGroup(new tcu::TestCaseGroup(testCtx, "offset_interpolation_at_sample_position", "Test interpolation at offset function works for sample positions"));
+	offsetGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseInterpolateAtOffsetSamplePosition> >	(testCtx, "all_components",		imageSizes, sizesElemCount, imageSamples, samplesElemCount));
+	offsetGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseInterpolateAtOffsetSamplePosition> >	(testCtx, "component_0",		imageSizes, sizesElemCount, imageSamples, samplesElemCount, multisample::ComponentData{multisample::ComponentSource::CONSTANT, 0u}));
+	offsetGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseInterpolateAtOffsetSamplePosition> >	(testCtx, "component_1",		imageSizes, sizesElemCount, imageSamples, samplesElemCount, multisample::ComponentData{multisample::ComponentSource::CONSTANT, 1u}));
+	offsetGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseInterpolateAtOffsetSamplePosition> >	(testCtx, "pushc_component_0",	imageSizes, sizesElemCount, imageSamples, samplesElemCount, multisample::ComponentData{multisample::ComponentSource::PUSH_CONSTANT, 0u}));
+	offsetGroup->addChild(makeMSGroup<multisample::MSCase<multisample::MSCaseInterpolateAtOffsetSamplePosition> >	(testCtx, "pushc_component_1",	imageSizes, sizesElemCount, imageSamples, samplesElemCount, multisample::ComponentData{multisample::ComponentSource::PUSH_CONSTANT, 1u}));
+	testGroup->addChild(offsetGroup.release());
 
 	return testGroup.release();
 }
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleShaderBuiltInTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleShaderBuiltInTests.cpp
index d788cf5..a8828c4 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleShaderBuiltInTests.cpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleShaderBuiltInTests.cpp
@@ -1078,6 +1078,62 @@
 	return new MSInstance<MSInstanceSampleMaskWrite>(context, m_imageMSParams);
 }
 
+const set<deUint32> kValidSquareSampleCounts =
+{
+	vk::VK_SAMPLE_COUNT_1_BIT,
+	vk::VK_SAMPLE_COUNT_2_BIT,
+	vk::VK_SAMPLE_COUNT_4_BIT,
+	vk::VK_SAMPLE_COUNT_8_BIT,
+	vk::VK_SAMPLE_COUNT_16_BIT,
+};
+
+void assertSquareSampleCount (deUint32 sampleCount)
+{
+	DE_ASSERT(kValidSquareSampleCounts.find(sampleCount) != kValidSquareSampleCounts.end());
+	DE_UNREF(sampleCount); // for release builds.
+}
+
+// When dealing with N samples, each coordinate (x, y) will be used to decide which samples will be written to, using N/2 bits for
+// each of the X and Y values. Take into account this returns 0 for 1 sample.
+deUint32 bitsPerCoord (deUint32 numSamples)
+{
+	assertSquareSampleCount(numSamples);
+	return (numSamples / 2u);
+}
+
+// These tests will try to verify all write or mask bit combinations for the given sample count, and will verify one combination per
+// image pixel. This means the following image sizes need to be used:
+//		- 2 samples: 2x2
+//		- 4 samples: 4x4
+//		- 8 samples: 16x16
+//		- 16 samples: 256x256
+// In other words, images will be square with 2^(samples-1) pixels on each side.
+vk::VkExtent2D imageSize (deUint32 sampleCount)
+{
+	assertSquareSampleCount(sampleCount);
+
+	// Special case: 2x1 image (not actually square).
+	if (sampleCount == vk::VK_SAMPLE_COUNT_1_BIT)
+		return vk::VkExtent2D{2u, 1u};
+
+	// Other cases: square image as described above.
+	const auto dim = (1u<<(sampleCount>>1u));
+	return vk::VkExtent2D{dim, dim};
+}
+
+vk::VkExtent3D getExtent3D (deUint32 sampleCount)
+{
+	const auto size = imageSize(sampleCount);
+	return vk::VkExtent3D{size.width, size.height, 1u};
+}
+
+std::string getShaderDecl (const tcu::Vec4& color)
+{
+	std::ostringstream declaration;
+	declaration << "vec4(" << color.x() << ", " << color.y() << ", " << color.z() << ", " << color.w() << ")";
+	return declaration.str();
+}
+
 struct WriteSampleParams
 {
 	vk::VkSampleCountFlagBits sampleCount;
@@ -1095,18 +1151,11 @@
 	virtual vkt::TestInstance*		createInstance		(Context& context) const;
 	virtual void					checkSupport		(Context& context) const;
 
-	static void						assertSampleCount	(deUint32 sampleCount);
-	static deUint32					bitsPerCoord		(deUint32 sampleCount);
-	static deUint32					imageSize			(deUint32 sampleCount);
-	static vk::VkExtent3D			getExtent3D			(deUint32 sampleCount);
-	static std::string				getShaderDecl		(const tcu::Vec4& color);
-
 	static const tcu::Vec4			kClearColor;
 	static const tcu::Vec4			kBadColor;
 	static const tcu::Vec4			kGoodColor;
 	static const tcu::Vec4			kWriteColor;
 
-	static const set<deUint32>		kValidSampleCounts;
 	static constexpr vk::VkFormat	kImageFormat		= vk::VK_FORMAT_R8G8B8A8_UNORM;
 
 	// Keep these two in sync.
@@ -1137,53 +1186,6 @@
 	WriteSampleParams			m_params;
 };
 
-const set<deUint32> WriteSampleTest::kValidSampleCounts =
-{
-	vk::VK_SAMPLE_COUNT_2_BIT,
-	vk::VK_SAMPLE_COUNT_4_BIT,
-	vk::VK_SAMPLE_COUNT_8_BIT,
-	vk::VK_SAMPLE_COUNT_16_BIT,
-};
-
-void WriteSampleTest::assertSampleCount (deUint32 sampleCount)
-{
-	DE_ASSERT(kValidSampleCounts.find(sampleCount) != kValidSampleCounts.end());
-	DE_UNREF(sampleCount); // for release builds.
-}
-
-// The test will try to verify all write combinations for the given sample count, and will verify one combination per image pixel.
-// This means the following image sizes need to be used:
-//		- 2 samples: 2x2
-//		- 4 samples: 4x4
-//		- 8 samples: 16x16
-//		- 16 samples: 256x256
-// In other words, images will be square with 2^(samples-1) pixels on each side.
-deUint32 WriteSampleTest::imageSize (deUint32 sampleCount)
-{
-	assertSampleCount(sampleCount);
-	return (1u<<(sampleCount>>1u));
-}
-
-// When dealing with N samples, each coordinate (x, y) will be used to decide which samples will be written to, using N/2 bits for each of the X and Y values.
-deUint32 WriteSampleTest::bitsPerCoord (deUint32 numSamples)
-{
-	assertSampleCount(numSamples);
-	return (numSamples / 2u);
-}
-
-vk::VkExtent3D WriteSampleTest::getExtent3D (deUint32 sampleCount)
-{
-	const deUint32 size = imageSize(sampleCount);
-	return vk::VkExtent3D{size, size, 1u};
-}
-
-std::string WriteSampleTest::getShaderDecl (const tcu::Vec4& color)
-{
-	std::ostringstream declaration;
-	declaration << "vec4(" << color.x() << ", " << color.y() << ", " << color.z() << ", " << color.w() << ")";
-	return declaration.str();
-}
-
 void WriteSampleTest::checkSupport (Context& context) const
 {
 	const auto&	vki				= context.getInstanceInterface();
@@ -1254,14 +1256,16 @@
 		<< "        uvec2 ucoords  = uvec2(gl_GlobalInvocationID.xy);\n"
 		<< "        ivec2 icoords  = ivec2(ucoords);\n"
 		<< "        uint writeMask = ((ucoords.x << " << bpc << ") | ucoords.y);\n"
+		<< "        bool ok = true;\n"
 		<< "        for (uint i = 0; i < " << count << "; ++i)\n"
 		<< "        {\n"
 		<< "                bool expectWrite = ((writeMask & (1 << i)) != 0);\n"
 		<< "                vec4 sampleColor = imageLoad(writeImg, icoords, int(i));\n"
 		<< "                vec4 wantedColor = (expectWrite ? wcolor : ccolor);\n"
-		<< "                vec4 resultColor = ((sampleColor == wantedColor) ? gcolor : bcolor);\n"
-		<< "                imageStore(verificationImg, icoords, resultColor);\n"
+		<< "                ok = ok && (sampleColor == wantedColor);\n"
 		<< "        }\n"
+		<< "        vec4 resultColor = (ok ? gcolor : bcolor);\n"
+		<< "        imageStore(verificationImg, icoords, resultColor);\n"
 		<< "}\n"
 		;
 
@@ -1281,7 +1285,7 @@
 	auto&		allocator	= m_context.getDefaultAllocator();
 	const auto	queue		= m_context.getUniversalQueue();
 	const auto	queueIndex	= m_context.getUniversalQueueFamilyIndex();
-	const auto	extent3D	= WriteSampleTest::getExtent3D(m_params.sampleCount);
+	const auto	extent3D	= getExtent3D(m_params.sampleCount);
 
 	// Create storage image and verification image.
 	const vk::VkImageCreateInfo storageImageInfo =
@@ -1490,6 +1494,599 @@
 	return tcu::TestStatus::pass("Pass");
 }
 
+using WriteSampleMaskParams = WriteSampleParams;
+
+class WriteSampleMaskTestCase : public vkt::TestCase
+{
+public:
+							WriteSampleMaskTestCase		(tcu::TestContext& testCtx, const std::string& name, const std::string& description, const WriteSampleMaskParams& params);
+	virtual					~WriteSampleMaskTestCase	(void) {}
+
+	virtual void			checkSupport				(Context& context) const;
+	virtual void			initPrograms				(vk::SourceCollections& programCollection) const;
+	virtual TestInstance*	createInstance				(Context& context) const;
+	static deUint32			getBufferElems				(deUint32 sampleCount);
+
+	static const tcu::Vec4						kClearColor;
+	static const tcu::Vec4						kWriteColor;
+
+	static constexpr vk::VkFormat				kImageFormat	= vk::VK_FORMAT_R8G8B8A8_UNORM;
+	static constexpr vk::VkImageUsageFlags		kUsageFlags		= (vk::VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | vk::VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT);
+	static constexpr vk::VkFormatFeatureFlags	kFeatureFlags	= (vk::VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT);
+
+private:
+	WriteSampleMaskParams	m_params;
+};
+
+const tcu::Vec4 WriteSampleMaskTestCase::kClearColor	{0.0f, 0.0f, 0.0f, 1.0f};
+const tcu::Vec4 WriteSampleMaskTestCase::kWriteColor	{0.0f, 0.0f, 1.0f, 1.0f};
+
+class WriteSampleMaskTestInstance : public vkt::TestInstance
+{
+public:
+								WriteSampleMaskTestInstance		(Context& context, const WriteSampleMaskParams& params);
+	virtual						~WriteSampleMaskTestInstance	(void) {}
+
+	virtual tcu::TestStatus		iterate							(void);
+
+private:
+	WriteSampleMaskParams		m_params;
+};
+
+WriteSampleMaskTestCase::WriteSampleMaskTestCase (tcu::TestContext& testCtx, const std::string& name, const std::string& description, const WriteSampleMaskParams& params)
+	: vkt::TestCase	(testCtx, name, description)
+	, m_params		(params)
+{}
+
+void WriteSampleMaskTestCase::checkSupport (Context& context) const
+{
+	const auto&	vki				= context.getInstanceInterface();
+	const auto	physicalDevice	= context.getPhysicalDevice();
+
+	// Check the specific image format.
+	const auto properties = vk::getPhysicalDeviceFormatProperties(vki, physicalDevice, kImageFormat);
+	if (!(properties.optimalTilingFeatures & kFeatureFlags))
+		TCU_THROW(NotSupportedError, "Format does not support the required features");
+
+	// Check the supported sample count.
+	const auto imgProps = vk::getPhysicalDeviceImageFormatProperties(vki, physicalDevice, kImageFormat, vk::VK_IMAGE_TYPE_2D, vk::VK_IMAGE_TILING_OPTIMAL, kUsageFlags, 0u);
+	if (!(imgProps.sampleCounts & m_params.sampleCount))
+		TCU_THROW(NotSupportedError, "Format does not support the required sample count");
+}
+
+void WriteSampleMaskTestCase::initPrograms (vk::SourceCollections& programCollection) const
+{
+	const auto bpc			= de::toString(bitsPerCoord(m_params.sampleCount));
+	const auto size			= imageSize(m_params.sampleCount);
+	const auto bufferElems	= getBufferElems(m_params.sampleCount);
+
+	// Passthrough vertex shader.
+	std::ostringstream vertShader;
+
+	vertShader
+		<< "#version 450\n"
+		<< "layout (location=0) in vec2 inPos;\n"
+		<< "void main()\n"
+		<< "{\n"
+		<< "    gl_Position = vec4(inPos, 0.0, 1.0);\n"
+		<< "}\n"
+		;
+
+	// Fragment shader common header.
+	std::ostringstream fragHeader;
+
+	fragHeader
+		<< "#version 450\n"
+		<< "\n"
+		// The color attachment is useless for the second subpass but avoids having to use an empty subpass and verifying the sample
+		// count is valid for it.
+		<< "layout (location=0) out vec4 outColor;\n"
+		<< "\n"
+		<< "vec4 wcolor = " << getShaderDecl(kWriteColor) << ";\n"
+		<< "vec4 ccolor = " << getShaderDecl(kClearColor) << ";\n"
+		<< "\n"
+		;
+
+	const auto fragHeaderStr = fragHeader.str();
+
+	// Fragment shader setting the sample mask and writing to the output color attachment. The sample mask will guarantee each image
+	// pixel gets a different combination of sample bits set, allowing the fragment shader to write in that sample or not, from all
+	// zeros in pixel (0, 0) to all ones in the opposite corner.
+	std::ostringstream fragShaderWrite;
+
+	fragShaderWrite
+		<< fragHeaderStr
+		<< "void main()\n"
+		<< "{\n"
+		<< "    uvec2 ucoords    = uvec2(gl_FragCoord);\n"
+		<< "    ivec2 icoords    = ivec2(ucoords);\n"
+		<< "    gl_SampleMask[0] = int((ucoords.x << " << bpc << ") | ucoords.y);\n"
+		<< "    outColor         = wcolor;\n"
+		<< "}\n"
+		;
+
+	// Fragment shader reading from the previous output color attachment and copying the state to an SSBO for verification.
+	std::ostringstream fragShaderCheck;
+
+	const bool isMultiSample = (m_params.sampleCount != vk::VK_SAMPLE_COUNT_1_BIT);
+	fragShaderCheck
+		<< fragHeaderStr
+		<< "layout(set=0, binding=0, input_attachment_index=0) uniform subpassInput" << (isMultiSample ? "MS" : "") << " inputAttachment;\n"
+		<< "layout(set=0, binding=1, std430) buffer StorageBuffer {\n"
+		<< "    int writeFlags[" << bufferElems << "];\n"
+		<< "} sb;\n"
+		<< "\n"
+		<< "void main()\n"
+		<< "{\n"
+		<< "    uvec2 ucoords          = uvec2(gl_FragCoord);\n"
+		<< "    ivec2 icoords          = ivec2(ucoords);\n"
+		<< "    uint  bufferp          = ((ucoords.y * " << size.width << " + ucoords.x) * " << m_params.sampleCount << ") + uint(gl_SampleID);\n"
+		<< "    vec4  storedc          = subpassLoad(inputAttachment" << (isMultiSample ? ", gl_SampleID" : "") << ");\n"
+		<< "    sb.writeFlags[bufferp] = ((storedc == wcolor) ? 1 : ((storedc == ccolor) ? 0 : 2));\n"
+		<< "    outColor               = storedc;\n"
+		<< "}\n"
+		;
+
+	programCollection.glslSources.add("vert")		<< glu::VertexSource(vertShader.str());
+	programCollection.glslSources.add("frag_write")	<< glu::FragmentSource(fragShaderWrite.str());
+	programCollection.glslSources.add("frag_check")	<< glu::FragmentSource(fragShaderCheck.str());
+}
+
+TestInstance* WriteSampleMaskTestCase::createInstance (Context& context) const
+{
+	return new WriteSampleMaskTestInstance(context, m_params);
+}
+
+deUint32 WriteSampleMaskTestCase::getBufferElems (deUint32 sampleCount)
+{
+	const auto imgSize = imageSize(sampleCount);
+	return (imgSize.width * imgSize.height * sampleCount);
+}
+
+WriteSampleMaskTestInstance::WriteSampleMaskTestInstance (Context& context, const WriteSampleMaskParams& params)
+	: vkt::TestInstance	(context)
+	, m_params			(params)
+{}
+
+tcu::TestStatus WriteSampleMaskTestInstance::iterate (void)
+{
+	const auto&		vkd					= m_context.getDeviceInterface();
+	const auto		device				= m_context.getDevice();
+	auto&			alloc				= m_context.getDefaultAllocator();
+	const auto		queueFamilyIndex	= m_context.getUniversalQueueFamilyIndex();
+	const auto		queue				= m_context.getUniversalQueue();
+
+	static constexpr auto	kImageFormat	= WriteSampleMaskTestCase::kImageFormat;
+	static constexpr auto	kImageUsage		= WriteSampleMaskTestCase::kUsageFlags;
+	const auto				kImageExtent	= getExtent3D(m_params.sampleCount);
+	const auto				kBufferElems	= WriteSampleMaskTestCase::getBufferElems(m_params.sampleCount);
+	const auto				kBufferSize		= static_cast<vk::VkDeviceSize>(kBufferElems * sizeof(deInt32));
+
+	// Create image.
+	const vk::VkImageCreateInfo imageCreateInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,	//	VkStructureType			sType;
+		nullptr,									//	const void*				pNext;
+		0u,											//	VkImageCreateFlags		flags;
+		vk::VK_IMAGE_TYPE_2D,						//	VkImageType				imageType;
+		kImageFormat,								//	VkFormat				format;
+		kImageExtent,								//	VkExtent3D				extent;
+		1u,											//	deUint32				mipLevels;
+		1u,											//	deUint32				arrayLayers;
+		m_params.sampleCount,						//	VkSampleCountFlagBits	samples;
+		vk::VK_IMAGE_TILING_OPTIMAL,				//	VkImageTiling			tiling;
+		kImageUsage,								//	VkImageUsageFlags		usage;
+		vk::VK_SHARING_MODE_EXCLUSIVE,				//	VkSharingMode			sharingMode;
+		0u,											//	deUint32				queueFamilyIndexCount;
+		nullptr,									//	const deUint32*			pQueueFamilyIndices;
+		vk::VK_IMAGE_LAYOUT_UNDEFINED,				//	VkImageLayout			initialLayout;
+	};
+
+	const vk::ImageWithMemory colorImage	(vkd, device, alloc, imageCreateInfo, vk::MemoryRequirement::Any);
+	const vk::ImageWithMemory auxiliarImage	(vkd, device, alloc, imageCreateInfo, vk::MemoryRequirement::Any);	// For the second subpass.
+
+	// Image views.
+	const auto subresourceRange		= vk::makeImageSubresourceRange(vk::VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u);
+	const auto colorImageView		= vk::makeImageView(vkd, device, colorImage.get(), vk::VK_IMAGE_VIEW_TYPE_2D, kImageFormat, subresourceRange);
+	const auto auxiliarImageView	= vk::makeImageView(vkd, device, auxiliarImage.get(), vk::VK_IMAGE_VIEW_TYPE_2D, kImageFormat, subresourceRange);
+
+	// Create storage buffer used to verify results.
+	const vk::BufferWithMemory storageBuffer(vkd, device, alloc, vk::makeBufferCreateInfo(kBufferSize, vk::VK_BUFFER_USAGE_STORAGE_BUFFER_BIT), vk::MemoryRequirement::HostVisible);
+
+	// Full-screen quad.
+	const std::vector<tcu::Vec2> quadVertices =
+	{
+		tcu::Vec2(-1.0f,  1.0f),	// Lower left
+		tcu::Vec2( 1.0f,  1.0f),	// Lower right
+		tcu::Vec2( 1.0f, -1.0f),	// Top right.
+		tcu::Vec2(-1.0f,  1.0f),	// Lower left
+		tcu::Vec2( 1.0f, -1.0f),	// Top right.
+		tcu::Vec2(-1.0f, -1.0f),	// Top left.
+	};
+
+	// Vertex buffer.
+	const auto					vertexBufferSize	= static_cast<vk::VkDeviceSize>(quadVertices.size() * sizeof(decltype(quadVertices)::value_type));
+	const vk::BufferWithMemory	vertexBuffer		(vkd, device, alloc, vk::makeBufferCreateInfo(vertexBufferSize, vk::VK_BUFFER_USAGE_VERTEX_BUFFER_BIT), vk::MemoryRequirement::HostVisible);
+	const auto&					vertexBufferAlloc	= vertexBuffer.getAllocation();
+	void*						vertexBufferPtr		= vertexBufferAlloc.getHostPtr();
+	const vk::VkDeviceSize		vertexBufferOffset	= 0;
+	deMemcpy(vertexBufferPtr, quadVertices.data(), static_cast<size_t>(vertexBufferSize));
+	vk::flushAlloc(vkd, device, vertexBufferAlloc);
+
+	// Descriptor set layout.
+	vk::DescriptorSetLayoutBuilder setLayoutBuilder;
+	setLayoutBuilder.addSingleBinding(vk::VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, vk::VK_SHADER_STAGE_FRAGMENT_BIT);
+	setLayoutBuilder.addSingleBinding(vk::VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, vk::VK_SHADER_STAGE_FRAGMENT_BIT);
+	const auto descriptorSetLayout = setLayoutBuilder.build(vkd, device);
+
+	// Descriptor pool and set.
+	vk::DescriptorPoolBuilder poolBuilder;
+	poolBuilder.addType(vk::VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, 1u);
+	poolBuilder.addType(vk::VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1u);
+	const auto descriptorPool	= poolBuilder.build(vkd, device, vk::VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, 1u);
+	const auto descriptorSet	= vk::makeDescriptorSet(vkd, device, descriptorPool.get(), descriptorSetLayout.get());
+
+	// Render pass.
+	const std::vector<vk::VkAttachmentDescription> attachments =
+	{
+		// Main color attachment.
+		{
+			0u,												//	VkAttachmentDescriptionFlags	flags;
+			kImageFormat,									//	VkFormat						format;
+			m_params.sampleCount,							//	VkSampleCountFlagBits			samples;
+			vk::VK_ATTACHMENT_LOAD_OP_CLEAR,				//	VkAttachmentLoadOp				loadOp;
+			vk::VK_ATTACHMENT_STORE_OP_STORE,				//	VkAttachmentStoreOp				storeOp;
+			vk::VK_ATTACHMENT_LOAD_OP_DONT_CARE,			//	VkAttachmentLoadOp				stencilLoadOp;
+			vk::VK_ATTACHMENT_STORE_OP_DONT_CARE,			//	VkAttachmentStoreOp				stencilStoreOp;
+			vk::VK_IMAGE_LAYOUT_UNDEFINED,					//	VkImageLayout					initialLayout;
+			vk::VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,	//	VkImageLayout					finalLayout;
+		},
+		// Auxiliar color attachment for the check pass.
+		{
+			0u,												//	VkAttachmentDescriptionFlags	flags;
+			kImageFormat,									//	VkFormat						format;
+			m_params.sampleCount,							//	VkSampleCountFlagBits			samples;
+			vk::VK_ATTACHMENT_LOAD_OP_DONT_CARE,			//	VkAttachmentLoadOp				loadOp;
+			vk::VK_ATTACHMENT_STORE_OP_DONT_CARE,			//	VkAttachmentStoreOp				storeOp;
+			vk::VK_ATTACHMENT_LOAD_OP_DONT_CARE,			//	VkAttachmentLoadOp				stencilLoadOp;
+			vk::VK_ATTACHMENT_STORE_OP_DONT_CARE,			//	VkAttachmentStoreOp				stencilStoreOp;
+			vk::VK_IMAGE_LAYOUT_UNDEFINED,					//	VkImageLayout					initialLayout;
+			vk::VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,	//	VkImageLayout					finalLayout;
+		},
+	};
+
+	const vk::VkAttachmentReference colorAttachmentReference =
+	{
+		0u,												//	deUint32		attachment;
+		vk::VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,	//	VkImageLayout	layout;
+	};
+
+	const vk::VkAttachmentReference colorAsInputAttachment =
+	{
+		0u,												//	deUint32		attachment;
+		vk::VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,	//	VkImageLayout	layout;
+	};
+
+	const vk::VkAttachmentReference auxiliarAttachmentReference =
+	{
+		1u,												//	deUint32		attachment;
+		vk::VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,	//	VkImageLayout	layout;
+	};
+
+	const std::vector<vk::VkSubpassDescription> subpasses =
+	{
+		// First subpass writing to the main attachment.
+		{
+			0u,										//	VkSubpassDescriptionFlags		flags;
+			vk::VK_PIPELINE_BIND_POINT_GRAPHICS,	//	VkPipelineBindPoint				pipelineBindPoint;
+			0u,										//	deUint32						inputAttachmentCount;
+			nullptr,								//	const VkAttachmentReference*	pInputAttachments;
+			1u,										//	deUint32						colorAttachmentCount;
+			&colorAttachmentReference,				//	const VkAttachmentReference*	pColorAttachments;
+			nullptr,								//	const VkAttachmentReference*	pResolveAttachments;
+			nullptr,								//	const VkAttachmentReference*	pDepthStencilAttachment;
+			0u,										//	deUint32						preserveAttachmentCount;
+			nullptr,								//	const deUint32*					pPreserveAttachments;
+		},
+		// Second subpass writing to the auxiliar attachment.
+		{
+			0u,										//	VkSubpassDescriptionFlags		flags;
+			vk::VK_PIPELINE_BIND_POINT_GRAPHICS,	//	VkPipelineBindPoint				pipelineBindPoint;
+			1u,										//	deUint32						inputAttachmentCount;
+			&colorAsInputAttachment,				//	const VkAttachmentReference*	pInputAttachments;
+			1u,										//	deUint32						colorAttachmentCount;
+			&auxiliarAttachmentReference,			//	const VkAttachmentReference*	pColorAttachments;
+			nullptr,								//	const VkAttachmentReference*	pResolveAttachments;
+			nullptr,								//	const VkAttachmentReference*	pDepthStencilAttachment;
+			0u,										//	deUint32						preserveAttachmentCount;
+			nullptr,								//	const deUint32*					pPreserveAttachments;
+		},
+	};
+
+	const std::vector<vk::VkSubpassDependency> subpassDependencies =
+	{
+		// First subpass writes to the color attachment and second subpass reads it as an input attachment.
+		{
+			0u,													//	deUint32				srcSubpass;
+			1u,													//	deUint32				dstSubpass;
+			vk::VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,	//	VkPipelineStageFlags	srcStageMask;
+			vk::VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,			//	VkPipelineStageFlags	dstStageMask;
+			vk::VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,			//	VkAccessFlags			srcAccessMask;
+			vk::VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,			//	VkAccessFlags			dstAccessMask;
+			0u,													//	VkDependencyFlags		dependencyFlags;
+		},
+	};
+
+	const vk::VkRenderPassCreateInfo renderPassInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,		//	VkStructureType					sType;
+		nullptr,											//	const void*						pNext;
+		0u,													//	VkRenderPassCreateFlags			flags;
+		static_cast<deUint32>(attachments.size()),			//	deUint32						attachmentCount;
+		attachments.data(),									//	const VkAttachmentDescription*	pAttachments;
+		static_cast<deUint32>(subpasses.size()),			//	deUint32						subpassCount;
+		subpasses.data(),									//	const VkSubpassDescription*		pSubpasses;
+		static_cast<deUint32>(subpassDependencies.size()),	//	deUint32						dependencyCount;
+		subpassDependencies.data(),							//	const VkSubpassDependency*		pDependencies;
+	};
+	const auto renderPass = vk::createRenderPass(vkd, device, &renderPassInfo);
+
+	// Framebuffer.
+	const std::vector<vk::VkImageView> imageViews =
+	{
+		colorImageView.get(),
+		auxiliarImageView.get(),
+	};
+	const auto framebuffer = vk::makeFramebuffer(vkd, device, renderPass.get(), static_cast<deUint32>(imageViews.size()), imageViews.data(), kImageExtent.width, kImageExtent.height);
+
+	// Empty pipeline layout for the first subpass.
+	const auto emptyPipelineLayout = vk::makePipelineLayout(vkd, device);
+
+	// Pipeline layout for the second subpass.
+	const auto checkPipelineLayout = vk::makePipelineLayout(vkd, device, descriptorSetLayout.get());
+
+	// Shader modules.
+	const auto vertModule	= vk::createShaderModule(vkd, device, m_context.getBinaryCollection().get("vert"), 0u);
+	const auto writeModule	= vk::createShaderModule(vkd, device, m_context.getBinaryCollection().get("frag_write"), 0u);
+	const auto checkModule	= vk::createShaderModule(vkd, device, m_context.getBinaryCollection().get("frag_check"), 0u);
+
+	const std::vector<vk::VkVertexInputBindingDescription> vertexBindings =
+	{
+		{
+			0u,																	//	deUint32			binding;
+			static_cast<deUint32>(sizeof(decltype(quadVertices)::value_type)),	//	deUint32			stride;
+			vk::VK_VERTEX_INPUT_RATE_VERTEX,									//	VkVertexInputRate	inputRate;
+		},
+	};
+
+	const std::vector<vk::VkVertexInputAttributeDescription> vertexAttributes =
+	{
+		{
+			0u,								//	deUint32	location;
+			0u,								//	deUint32	binding;
+			vk::VK_FORMAT_R32G32_SFLOAT,	//	VkFormat	format;
+			0u,								//	deUint32	offset;
+		},
+	};
+
+	const vk::VkPipelineVertexInputStateCreateInfo vertexInputInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,	//	VkStructureType								sType;
+		nullptr,														//	const void*									pNext;
+		0u,																//	VkPipelineVertexInputStateCreateFlags		flags;
+		static_cast<deUint32>(vertexBindings.size()),					//	deUint32									vertexBindingDescriptionCount;
+		vertexBindings.data(),											//	const VkVertexInputBindingDescription*		pVertexBindingDescriptions;
+		static_cast<deUint32>(vertexAttributes.size()),					//	deUint32									vertexAttributeDescriptionCount;
+		vertexAttributes.data(),										//	const VkVertexInputAttributeDescription*	pVertexAttributeDescriptions;
+	};
+
+	const vk::VkPipelineInputAssemblyStateCreateInfo inputAssemblyInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO,	//	VkStructureType							sType;
+		nullptr,															//	const void*								pNext;
+		0u,																	//	VkPipelineInputAssemblyStateCreateFlags	flags;
+		vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,							//	VkPrimitiveTopology						topology;
+		VK_FALSE,															//	VkBool32								primitiveRestartEnable;
+	};
+
+	const auto viewport	= vk::makeViewport(kImageExtent);
+	const auto scissor	= vk::makeRect2D(kImageExtent);
+
+	const vk::VkPipelineViewportStateCreateInfo viewportInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO,	//	VkStructureType						sType;
+		nullptr,													//	const void*							pNext;
+		0u,															//	VkPipelineViewportStateCreateFlags	flags;
+		1u,															//	deUint32							viewportCount;
+		&viewport,													//	const VkViewport*					pViewports;
+		1u,															//	deUint32							scissorCount;
+		&scissor,													//	const VkRect2D*						pScissors;
+	};
+
+	const vk::VkPipelineRasterizationStateCreateInfo rasterizationInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,	//	VkStructureType							sType;
+		nullptr,														//	const void*								pNext;
+		0u,																//	VkPipelineRasterizationStateCreateFlags	flags;
+		VK_FALSE,														//	VkBool32								depthClampEnable;
+		VK_FALSE,														//	VkBool32								rasterizerDiscardEnable;
+		vk::VK_POLYGON_MODE_FILL,										//	VkPolygonMode							polygonMode;
+		vk::VK_CULL_MODE_NONE,											//	VkCullModeFlags							cullMode;
+		vk::VK_FRONT_FACE_COUNTER_CLOCKWISE,							//	VkFrontFace								frontFace;
+		VK_FALSE,														//	VkBool32								depthBiasEnable;
+		0.0f,															//	float									depthBiasConstantFactor;
+		0.0f,															//	float									depthBiasClamp;
+		0.0f,															//	float									depthBiasSlopeFactor;
+		1.0f,															//	float									lineWidth;
+	};
+
+	const vk::VkPipelineMultisampleStateCreateInfo multisampleInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,	//	VkStructureType							sType;
+		nullptr,														//	const void*								pNext;
+		0u,																//	VkPipelineMultisampleStateCreateFlags	flags;
+		m_params.sampleCount,											//	VkSampleCountFlagBits					rasterizationSamples;
+		VK_FALSE,														//	VkBool32								sampleShadingEnable;
+		1.0f,															//	float									minSampleShading;
+		nullptr,														//	const VkSampleMask*						pSampleMask;
+		VK_FALSE,														//	VkBool32								alphaToCoverageEnable;
+		VK_FALSE,														//	VkBool32								alphaToOneEnable;
+	};
+
+	const auto stencilState = vk::makeStencilOpState(vk::VK_STENCIL_OP_KEEP, vk::VK_STENCIL_OP_KEEP, vk::VK_STENCIL_OP_KEEP, vk::VK_COMPARE_OP_ALWAYS, 0xFFu, 0xFFu, 0u);
+
+	const vk::VkPipelineDepthStencilStateCreateInfo depthStencilInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,	//	VkStructureType							sType;
+		nullptr,														//	const void*								pNext;
+		0u,																//	VkPipelineDepthStencilStateCreateFlags	flags;
+		VK_FALSE,														//	VkBool32								depthTestEnable;
+		VK_FALSE,														//	VkBool32								depthWriteEnable;
+		vk::VK_COMPARE_OP_ALWAYS,										//	VkCompareOp								depthCompareOp;
+		VK_FALSE,														//	VkBool32								depthBoundsTestEnable;
+		VK_FALSE,														//	VkBool32								stencilTestEnable;
+		stencilState,													//	VkStencilOpState						front;
+		stencilState,													//	VkStencilOpState						back;
+		0.0f,															//	float									minDepthBounds;
+		1.0f,															//	float									maxDepthBounds;
+	};
+
+	const vk::VkPipelineColorBlendAttachmentState colorBlendAttachmentState =
+	{
+		VK_FALSE,					//	VkBool32				blendEnable;
+		vk::VK_BLEND_FACTOR_ZERO,	//	VkBlendFactor			srcColorBlendFactor;
+		vk::VK_BLEND_FACTOR_ZERO,	//	VkBlendFactor			dstColorBlendFactor;
+		vk::VK_BLEND_OP_ADD,		//	VkBlendOp				colorBlendOp;
+		vk::VK_BLEND_FACTOR_ZERO,	//	VkBlendFactor			srcAlphaBlendFactor;
+		vk::VK_BLEND_FACTOR_ZERO,	//	VkBlendFactor			dstAlphaBlendFactor;
+		vk::VK_BLEND_OP_ADD,		//	VkBlendOp				alphaBlendOp;
+		(							//	VkColorComponentFlags	colorWriteMask;
+			vk::VK_COLOR_COMPONENT_R_BIT	|
+			vk::VK_COLOR_COMPONENT_G_BIT	|
+			vk::VK_COLOR_COMPONENT_B_BIT	|
+			vk::VK_COLOR_COMPONENT_A_BIT	),
+	};
+
+	const vk::VkPipelineColorBlendStateCreateInfo colorBlendInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,	//	VkStructureType								sType;
+		nullptr,														//	const void*									pNext;
+		0u,																//	VkPipelineColorBlendStateCreateFlags		flags;
+		VK_FALSE,														//	VkBool32									logicOpEnable;
+		vk::VK_LOGIC_OP_NO_OP,											//	VkLogicOp									logicOp;
+		1u,																//	deUint32									attachmentCount;
+		&colorBlendAttachmentState,										//	const VkPipelineColorBlendAttachmentState*	pAttachments;
+		{ .0f, .0f, .0f, .0f },											//	float										blendConstants[4];
+	};
+
+	const vk::VkPipelineDynamicStateCreateInfo dynamicStateInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO,	//	VkStructureType						sType;
+		nullptr,													//	const void*							pNext;
+		0u,															//	VkPipelineDynamicStateCreateFlags	flags;
+		0u,															//	deUint32							dynamicStateCount;
+		nullptr,													//	const VkDynamicState*				pDynamicStates;
+	};
+
+	// Pipeline for the first subpass.
+	const auto firstSubpassPipeline = vk::makeGraphicsPipeline(
+		vkd, device, emptyPipelineLayout.get(),
+		vertModule.get(), DE_NULL, DE_NULL, DE_NULL, writeModule.get(),
+		renderPass.get(), 0u,
+		&vertexInputInfo, &inputAssemblyInfo, nullptr, &viewportInfo, &rasterizationInfo,
+		&multisampleInfo, &depthStencilInfo, &colorBlendInfo, &dynamicStateInfo
+	);
+
+	// Pipeline for the second subpass.
+	const auto secondSubpassPipeline = vk::makeGraphicsPipeline(
+		vkd, device, checkPipelineLayout.get(),
+		vertModule.get(), DE_NULL, DE_NULL, DE_NULL, checkModule.get(),
+		renderPass.get(), 1u,
+		&vertexInputInfo, &inputAssemblyInfo, nullptr, &viewportInfo, &rasterizationInfo,
+		&multisampleInfo, &depthStencilInfo, &colorBlendInfo, &dynamicStateInfo
+	);
+
+	// Command pool and command buffer.
+	const auto cmdPool		= vk::makeCommandPool(vkd, device, queueFamilyIndex);
+	const auto cmdBufferPtr	= vk::allocateCommandBuffer(vkd, device, cmdPool.get(), vk::VK_COMMAND_BUFFER_LEVEL_PRIMARY);
+	const auto cmdBuffer	= cmdBufferPtr.get();
+
+	// Update descriptor set.
+	vk::DescriptorSetUpdateBuilder updateBuilder;
+	const auto imageInfo	= vk::makeDescriptorImageInfo(DE_NULL, colorImageView.get(), vk::VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL);
+	const auto bufferInfo	= vk::makeDescriptorBufferInfo(storageBuffer.get(), 0u, VK_WHOLE_SIZE);
+	updateBuilder.writeSingle(descriptorSet.get(), vk::DescriptorSetUpdateBuilder::Location::binding(0u), vk::VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, &imageInfo);
+	updateBuilder.writeSingle(descriptorSet.get(), vk::DescriptorSetUpdateBuilder::Location::binding(1u), vk::VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, &bufferInfo);
+	updateBuilder.update(vkd, device);
+
+	// Output buffer pipeline barrier.
+	const auto bufferBarrier = vk::makeBufferMemoryBarrier(vk::VK_ACCESS_SHADER_WRITE_BIT, vk::VK_ACCESS_HOST_READ_BIT, storageBuffer.get(), 0ull, VK_WHOLE_SIZE);
+
+	// Run pipelines.
+	vk::beginCommandBuffer(vkd, cmdBuffer);
+
+	vk::beginRenderPass(vkd, cmdBuffer, renderPass.get(), framebuffer.get(), vk::makeRect2D(kImageExtent), WriteSampleMaskTestCase::kClearColor);
+	vkd.cmdBindVertexBuffers(cmdBuffer, 0u, 1u, &vertexBuffer.get(), &vertexBufferOffset);
+	vkd.cmdBindPipeline(cmdBuffer, vk::VK_PIPELINE_BIND_POINT_GRAPHICS, firstSubpassPipeline.get());
+	vkd.cmdDraw(cmdBuffer, static_cast<deUint32>(quadVertices.size()), 1u, 0u, 0u);
+
+	vkd.cmdNextSubpass(cmdBuffer, vk::VK_SUBPASS_CONTENTS_INLINE);
+	vkd.cmdBindPipeline(cmdBuffer, vk::VK_PIPELINE_BIND_POINT_GRAPHICS, secondSubpassPipeline.get());
+	vkd.cmdBindDescriptorSets(cmdBuffer, vk::VK_PIPELINE_BIND_POINT_GRAPHICS, checkPipelineLayout.get(), 0u, 1u, &descriptorSet.get(), 0u, nullptr);
+	vkd.cmdDraw(cmdBuffer, static_cast<deUint32>(quadVertices.size()), 1u, 0u, 0u);
+
+	vk::endRenderPass(vkd, cmdBuffer);
+	vkd.cmdPipelineBarrier(cmdBuffer, vk::VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, vk::VK_PIPELINE_STAGE_HOST_BIT, 0u, 0u, nullptr, 1u, &bufferBarrier, 0u, nullptr);
+	vk::endCommandBuffer(vkd, cmdBuffer);
+
+	vk::submitCommandsAndWait(vkd, device, queue, cmdBuffer);
+
+	// Check buffer contents.
+	auto&					bufferAlloc		= storageBuffer.getAllocation();
+	const void*				bufferPtr		= bufferAlloc.getHostPtr();
+	std::vector<deInt32>	bufferContents	(kBufferElems, 0);
+
+	vk::invalidateAlloc(vkd, device, bufferAlloc);
+	deMemcpy(bufferContents.data(), bufferPtr, static_cast<size_t>(kBufferSize));
+
+	const auto sampleCount	= static_cast<deUint32>(m_params.sampleCount);
+	const auto bpc			= bitsPerCoord(sampleCount);
+
+	for (deUint32 x = 0; x < kImageExtent.width; ++x)
+	for (deUint32 y = 0; y < kImageExtent.height; ++y)
+	{
+		// Samples on which we expect writes.
+		const deUint32 sampleMask = ((x << bpc) | y);
+
+		// Starting location for the pixel sample values in the buffer.
+		const deUint32 pixelOffset = (y * kImageExtent.width + x) * sampleCount;
+
+		for (deUint32 s = 0; s < sampleCount; ++s)
+		{
+			const deUint32 sampleIndex	= pixelOffset + s;
+			const deInt32& value		= bufferContents[sampleIndex];
+
+			if (value != 0 && value != 1)
+			{
+				// Garbage!
+				std::ostringstream msg;
+				msg << "Found garbage value " << value << " in buffer position " << sampleIndex << " (x=" << x << ", y=" << y << ", sample=" << s << ")";
+				return tcu::TestStatus::fail(msg.str());
+			}
+
+			const deInt32 expected = (((sampleMask & (1u << s)) != 0u) ? 1 : 0);
+			if (value != expected)
+			{
+				std::ostringstream msg;
+				msg << "Read " << value << " while expecting " << expected << " in buffer position " << sampleIndex << " (x=" << x << ", y=" << y << ", sample=" << s << ")";
+				return tcu::TestStatus::fail(msg.str());
+			}
+		}
+	}
+
+	return tcu::TestStatus::pass("Pass");
+}
+
 } // multisample
 
 tcu::TestCaseGroup* createMultisampleShaderBuiltInTests (tcu::TestContext& testCtx)
@@ -1545,11 +2142,15 @@
 
 	testGroup->addChild(sampleMaskGroup.release());
 
+	// Write image sample tests using a storage images.
 	{
 		de::MovePtr<tcu::TestCaseGroup> imageWriteSampleGroup(new tcu::TestCaseGroup(testCtx, "image_write_sample", "Test OpImageWrite with a sample ID"));
 
-		for (auto count : multisample::WriteSampleTest::kValidSampleCounts)
+		for (auto count : multisample::kValidSquareSampleCounts)
 		{
+			if (count == vk::VK_SAMPLE_COUNT_1_BIT)
+				continue;
+
 			multisample::WriteSampleParams params { static_cast<vk::VkSampleCountFlagBits>(count) };
 			const auto countStr = de::toString(count);
 			imageWriteSampleGroup->addChild(new multisample::WriteSampleTest(testCtx, countStr + "_samples", "Test image with " + countStr + " samples", params));
@@ -1558,6 +2159,20 @@
 		testGroup->addChild(imageWriteSampleGroup.release());
 	}
 
+	// Write to gl_SampleMask from the fragment shader.
+	{
+		de::MovePtr<tcu::TestCaseGroup> writeSampleMaskGroup(new tcu::TestCaseGroup(testCtx, "write_sample_mask", "Test writes to SampleMask variable"));
+
+		for (auto count : multisample::kValidSquareSampleCounts)
+		{
+			multisample::WriteSampleMaskParams params { static_cast<vk::VkSampleCountFlagBits>(count) };
+			const auto countStr = de::toString(count);
+			writeSampleMaskGroup->addChild(new multisample::WriteSampleMaskTestCase(testCtx, countStr + "_samples", "Test image with " + countStr + " samples", params));
+		}
+
+		testGroup->addChild(writeSampleMaskGroup.release());
+	}
+
 	return testGroup.release();
 }
 
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTests.cpp
index 0682a53..b18e14d 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTests.cpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTests.cpp
@@ -43,6 +43,10 @@
 #include "vkCmdUtil.hpp"
 #include "vkTypeUtil.hpp"
 #include "vkObjUtil.hpp"
+#include "vkBufferWithMemory.hpp"
+#include "vkImageWithMemory.hpp"
+#include "vkBuilderUtil.hpp"
+#include "vkBarrierUtil.hpp"
 #include "tcuImageCompare.hpp"
 #include "tcuTestLog.hpp"
 #include "deUniquePtr.hpp"
@@ -53,6 +57,10 @@
 #include <sstream>
 #include <vector>
 #include <map>
+#include <memory>
+#include <algorithm>
+#include <set>
+#include <array>
 
 namespace vkt
 {
@@ -3556,6 +3564,690 @@
 	return readColorAttachment(m_context.getDeviceInterface(), m_context.getDevice(), m_context.getUniversalQueue(), m_context.getUniversalQueueFamilyIndex(), m_context.getDefaultAllocator(), *m_perSampleImages[sampleId]->m_image, m_colorFormat, m_renderSize.cast<deUint32>());
 }
 
+// Multisample tests with subpasses using no attachments.
+class VariableRateTestCase : public vkt::TestCase
+{
+public:
+	using SampleCounts = std::vector<vk::VkSampleCountFlagBits>;
+
+	struct PushConstants
+	{
+		int width;
+		int height;
+		int samples;
+	};
+
+	struct TestParams
+	{
+		bool						nonEmptyFramebuffer;	// Empty framebuffer or not.
+		vk::VkSampleCountFlagBits	fbCount;				// If not empty, framebuffer sample count.
+		bool						unusedAttachment;		// If not empty, create unused attachment or not.
+		SampleCounts				subpassCounts;			// Counts for the different subpasses.
+	};
+
+	static const deInt32 kWidth		= 256u;
+	static const deInt32 kHeight	= 256u;
+
+									VariableRateTestCase	(tcu::TestContext& testCtx, const std::string& name, const std::string& description, const TestParams& params);
+	virtual							~VariableRateTestCase	(void) {}
+
+	virtual void					initPrograms			(vk::SourceCollections& programCollection) const;
+	virtual TestInstance*			createInstance			(Context& context) const;
+	virtual void					checkSupport			(Context& context) const;
+
+	static constexpr vk::VkFormat	kColorFormat			= vk::VK_FORMAT_R8G8B8A8_UNORM;
+
+private:
+	TestParams m_params;
+};
+
+class VariableRateTestInstance : public vkt::TestInstance
+{
+public:
+	using TestParams = VariableRateTestCase::TestParams;
+
+								VariableRateTestInstance	(Context& context, const TestParams& counts);
+	virtual						~VariableRateTestInstance	(void) {}
+
+	virtual tcu::TestStatus		iterate						(void);
+
+private:
+	TestParams m_params;
+};
+
+VariableRateTestCase::VariableRateTestCase (tcu::TestContext& testCtx, const std::string& name, const std::string& description, const TestParams& params)
+	: vkt::TestCase	(testCtx, name, description)
+	, m_params		(params)
+{
+}
+
+void VariableRateTestCase::initPrograms (vk::SourceCollections& programCollection) const
+{
+	std::stringstream vertSrc;
+
+	vertSrc	<< "#version 450\n"
+			<< "\n"
+			<< "layout(location=0) in vec2 inPos;\n"
+			<< "\n"
+			<< "void main() {\n"
+			<< "    gl_Position = vec4(inPos, 0.0, 1.0);\n"
+			<< "}\n"
+			;
+
+	std::stringstream fragSrc;
+
+	fragSrc	<< "#version 450\n"
+			<< "\n"
+			<< "layout(set=0, binding=0, std430) buffer OutBuffer {\n"
+			<< "    int coverage[];\n"
+			<< "} out_buffer;\n"
+			<< "\n"
+			<< "layout(push_constant) uniform PushConstants {\n"
+			<< "    int width;\n"
+			<< "    int height;\n"
+			<< "    int samples;\n"
+			<< "} push_constants;\n"
+			<< "\n"
+			<< "void main() {\n"
+			<< "   ivec2 coord = ivec2(floor(gl_FragCoord.xy));\n"
+			<< "   int pos = ((coord.y * push_constants.width) + coord.x) * push_constants.samples + int(gl_SampleID);\n"
+			<< "   out_buffer.coverage[pos] = 1;\n"
+			<< "}\n"
+			;
+
+	programCollection.glslSources.add("vert") << glu::VertexSource(vertSrc.str());
+	programCollection.glslSources.add("frag") << glu::FragmentSource(fragSrc.str());
+}
+
+TestInstance* VariableRateTestCase::createInstance (Context& context) const
+{
+	return new VariableRateTestInstance(context, m_params);
+}
+
+void VariableRateTestCase::checkSupport (Context& context) const
+{
+	const auto&	vki				= context.getInstanceInterface();
+	const auto	physicalDevice	= context.getPhysicalDevice();
+
+	// When using multiple subpasses, require variableMultisampleRate.
+	if (m_params.subpassCounts.size() > 1)
+	{
+		if (!vk::getPhysicalDeviceFeatures(vki, physicalDevice).variableMultisampleRate)
+			TCU_THROW(NotSupportedError, "Variable multisample rate not supported");
+	}
+
+	// Make sure all subpass sample counts are supported.
+	const auto	properties		= vk::getPhysicalDeviceProperties(vki, physicalDevice);
+	const auto&	supportedCounts	= properties.limits.framebufferNoAttachmentsSampleCounts;
+
+	for (const auto count : m_params.subpassCounts)
+	{
+		if ((supportedCounts & count) == 0u)
+			TCU_THROW(NotSupportedError, "Sample count combination not supported");
+	}
+
+	if (m_params.nonEmptyFramebuffer)
+	{
+		// Check the framebuffer sample count is supported.
+		const auto formatProperties = vk::getPhysicalDeviceImageFormatProperties(vki, physicalDevice, kColorFormat, vk::VK_IMAGE_TYPE_2D, vk::VK_IMAGE_TILING_OPTIMAL, vk::VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, 0u);
+		if ((formatProperties.sampleCounts & m_params.fbCount) == 0u)
+			TCU_THROW(NotSupportedError, "Sample count of " + de::toString(m_params.fbCount) + " not supported for color attachment");
+	}
+}
+
+void zeroOutAndFlush(const vk::DeviceInterface& vkd, vk::VkDevice device, vk::BufferWithMemory& buffer, vk::VkDeviceSize size)
+{
+	auto& alloc = buffer.getAllocation();
+	deMemset(alloc.getHostPtr(), 0, static_cast<size_t>(size));
+	vk::flushAlloc(vkd, device, alloc);
+}
+
+VariableRateTestInstance::VariableRateTestInstance (Context& context, const TestParams& params)
+	: vkt::TestInstance	(context)
+	, m_params			(params)
+{
+}
+
+tcu::TestStatus VariableRateTestInstance::iterate (void)
+{
+	using PushConstants = VariableRateTestCase::PushConstants;
+
+	const auto&	vkd			= m_context.getDeviceInterface();
+	const auto	device		= m_context.getDevice();
+	auto&		allocator	= m_context.getDefaultAllocator();
+	const auto&	queue		= m_context.getUniversalQueue();
+	const auto	queueIndex	= m_context.getUniversalQueueFamilyIndex();
+
+	const vk::VkDeviceSize	kWidth			= static_cast<vk::VkDeviceSize>(VariableRateTestCase::kWidth);
+	const vk::VkDeviceSize	kHeight			= static_cast<vk::VkDeviceSize>(VariableRateTestCase::kHeight);
+	constexpr auto			kColorFormat	= VariableRateTestCase::kColorFormat;
+
+	const auto kWidth32		= static_cast<deUint32>(kWidth);
+	const auto kHeight32	= static_cast<deUint32>(kHeight);
+
+	std::vector<std::unique_ptr<vk::BufferWithMemory>>	referenceBuffers;
+	std::vector<std::unique_ptr<vk::BufferWithMemory>>	outputBuffers;
+	std::vector<size_t>									bufferNumElements;
+	std::vector<vk::VkDeviceSize>						bufferSizes;
+
+	// Create reference and output buffers.
+	for (const auto count : m_params.subpassCounts)
+	{
+		bufferNumElements.push_back(static_cast<size_t>(kWidth * kHeight * count));
+		bufferSizes.push_back(bufferNumElements.back() * sizeof(deInt32));
+		const auto bufferCreateInfo = vk::makeBufferCreateInfo(bufferSizes.back(), vk::VK_BUFFER_USAGE_STORAGE_BUFFER_BIT);
+
+		referenceBuffers.emplace_back	(new vk::BufferWithMemory{vkd, device, allocator, bufferCreateInfo, MemoryRequirement::HostVisible});
+		outputBuffers.emplace_back		(new vk::BufferWithMemory{vkd, device, allocator, bufferCreateInfo, MemoryRequirement::HostVisible});
+	}
+
+	// Descriptor set layout.
+	vk::DescriptorSetLayoutBuilder builder;
+	builder.addSingleBinding(vk::VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, vk::VK_SHADER_STAGE_FRAGMENT_BIT);
+	const auto descriptorSetLayout = builder.build(vkd, device);
+
+	// Pipeline layout.
+	const vk::VkPushConstantRange pushConstantRange =
+	{
+		vk::VK_SHADER_STAGE_FRAGMENT_BIT,				//	VkShaderStageFlags	stageFlags;
+		0u,												//	deUint32			offset;
+		static_cast<deUint32>(sizeof(PushConstants)),	//	deUint32			size;
+	};
+
+	const vk::VkPipelineLayoutCreateInfo pipelineLayoutCreateInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,	//	VkStructureType					sType;
+		nullptr,											//	const void*						pNext;
+		0u,													//	VkPipelineLayoutCreateFlags		flags;
+		1u,													//	deUint32						setLayoutCount;
+		&descriptorSetLayout.get(),							//	const VkDescriptorSetLayout*	pSetLayouts;
+		1u,													//	deUint32						pushConstantRangeCount;
+		&pushConstantRange,									//	const VkPushConstantRange*		pPushConstantRanges;
+	};
+	const auto pipelineLayout = vk::createPipelineLayout(vkd, device, &pipelineLayoutCreateInfo);
+
+	// Subpass with no attachments.
+	const vk::VkSubpassDescription emptySubpassDescription =
+	{
+		0u,										//	VkSubpassDescriptionFlags		flags;
+		vk::VK_PIPELINE_BIND_POINT_GRAPHICS,	//	VkPipelineBindPoint				pipelineBindPoint;
+		0u,										//	deUint32						inputAttachmentCount;
+		nullptr,								//	const VkAttachmentReference*	pInputAttachments;
+		0u,										//	deUint32						colorAttachmentCount;
+		nullptr,								//	const VkAttachmentReference*	pColorAttachments;
+		nullptr,								//	const VkAttachmentReference*	pResolveAttachments;
+		nullptr,								//	const VkAttachmentReference*	pDepthStencilAttachment;
+		0u,										//	deUint32						preserveAttachmentCount;
+		nullptr,								//	const deUint32*					pPreserveAttachments;
+	};
+
+	// Unused attachment reference.
+	const vk::VkAttachmentReference unusedAttachmentReference =
+	{
+		VK_ATTACHMENT_UNUSED,							//	deUint32		attachment;
+		vk::VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,	//	VkImageLayout	layout;
+	};
+
+	// Subpass with unused attachment.
+	const vk::VkSubpassDescription unusedAttachmentSubpassDescription =
+	{
+		0u,										//	VkSubpassDescriptionFlags		flags;
+		vk::VK_PIPELINE_BIND_POINT_GRAPHICS,	//	VkPipelineBindPoint				pipelineBindPoint;
+		0u,										//	deUint32						inputAttachmentCount;
+		nullptr,								//	const VkAttachmentReference*	pInputAttachments;
+		1u,										//	deUint32						colorAttachmentCount;
+		&unusedAttachmentReference,				//	const VkAttachmentReference*	pColorAttachments;
+		nullptr,								//	const VkAttachmentReference*	pResolveAttachments;
+		nullptr,								//	const VkAttachmentReference*	pDepthStencilAttachment;
+		0u,										//	deUint32						preserveAttachmentCount;
+		nullptr,								//	const deUint32*					pPreserveAttachments;
+	};
+
+	// Renderpass with multiple subpasses.
+	vk::VkRenderPassCreateInfo renderPassCreateInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,	//	VkStructureType					sType;
+		nullptr,										//	const void*						pNext;
+		0u,												//	VkRenderPassCreateFlags			flags;
+		0u,												//	deUint32						attachmentCount;
+		nullptr,										//	const VkAttachmentDescription*	pAttachments;
+		0u,												//	deUint32						subpassCount;
+		nullptr,										//	const VkSubpassDescription*		pSubpasses;
+		0u,												//	deUint32						dependencyCount;
+		nullptr,										//	const VkSubpassDependency*		pDependencies;
+	};
+
+	std::vector<vk::VkSubpassDescription> subpassesVector;
+
+	for (size_t i = 0; i < m_params.subpassCounts.size(); ++i)
+		subpassesVector.push_back(emptySubpassDescription);
+	renderPassCreateInfo.subpassCount	= static_cast<deUint32>(subpassesVector.size());
+	renderPassCreateInfo.pSubpasses		= subpassesVector.data();
+	const auto renderPassMultiplePasses = vk::createRenderPass(vkd, device, &renderPassCreateInfo);
+
+	// Render pass with single subpass.
+	const vk::VkAttachmentDescription colorAttachmentDescription =
+	{
+		0u,												//	VkAttachmentDescriptionFlags	flags;
+		kColorFormat,									//	VkFormat						format;
+		m_params.fbCount,								//	VkSampleCountFlagBits			samples;
+		vk::VK_ATTACHMENT_LOAD_OP_DONT_CARE,			//	VkAttachmentLoadOp				loadOp;
+		vk::VK_ATTACHMENT_STORE_OP_STORE,				//	VkAttachmentStoreOp				storeOp;
+		vk::VK_ATTACHMENT_LOAD_OP_DONT_CARE,			//	VkAttachmentLoadOp				stencilLoadOp;
+		vk::VK_ATTACHMENT_STORE_OP_DONT_CARE,			//	VkAttachmentStoreOp				stencilStoreOp;
+		vk::VK_IMAGE_LAYOUT_UNDEFINED,					//	VkImageLayout					initialLayout;
+		vk::VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,	//	VkImageLayout					finalLayout;
+	};
+
+	if (m_params.nonEmptyFramebuffer)
+	{
+		renderPassCreateInfo.attachmentCount = 1u;
+		renderPassCreateInfo.pAttachments = &colorAttachmentDescription;
+	}
+	renderPassCreateInfo.subpassCount	= 1u;
+	renderPassCreateInfo.pSubpasses		= ((m_params.nonEmptyFramebuffer && m_params.unusedAttachment) ? &unusedAttachmentSubpassDescription : &emptySubpassDescription);
+	const auto renderPassSingleSubpass	= vk::createRenderPass(vkd, device, &renderPassCreateInfo);
+
+	// Framebuffers.
+	vk::VkFramebufferCreateInfo framebufferCreateInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,	//	VkStructureType				sType;
+		nullptr,										//	const void*					pNext;
+		0u,												//	VkFramebufferCreateFlags	flags;
+		DE_NULL,										//	VkRenderPass				renderPass;
+		0u,												//	deUint32					attachmentCount;
+		nullptr,										//	const VkImageView*			pAttachments;
+		kWidth32,										//	deUint32					width;
+		kHeight32,										//	deUint32					height;
+		1u,												//	deUint32					layers;
+	};
+
+	// Framebuffer for multiple-subpasses render pass.
+	framebufferCreateInfo.renderPass		= renderPassMultiplePasses.get();
+	const auto framebufferMultiplePasses	= vk::createFramebuffer(vkd, device, &framebufferCreateInfo);
+
+	// Framebuffer for single-subpass render pass.
+	std::unique_ptr<vk::ImageWithMemory>	imagePtr;
+	vk::Move<vk::VkImageView>				imageView;
+
+	if (m_params.nonEmptyFramebuffer)
+	{
+		const vk::VkImageCreateInfo imageCreateInfo =
+		{
+			vk::VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,	//	VkStructureType			sType;
+			nullptr,									//	const void*				pNext;
+			0u,											//	VkImageCreateFlags		flags;
+			vk::VK_IMAGE_TYPE_2D,						//	VkImageType				imageType;
+			kColorFormat,								//	VkFormat				format;
+			vk::makeExtent3D(kWidth32, kHeight32, 1u),	//	VkExtent3D				extent;
+			1u,											//	deUint32				mipLevels;
+			1u,											//	deUint32				arrayLayers;
+			m_params.fbCount,							//	VkSampleCountFlagBits	samples;
+			vk::VK_IMAGE_TILING_OPTIMAL,				//	VkImageTiling			tiling;
+			vk::VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,	//	VkImageUsageFlags		usage;
+			vk::VK_SHARING_MODE_EXCLUSIVE,				//	VkSharingMode			sharingMode;
+			0u,											//	deUint32				queueFamilyIndexCount;
+			nullptr,									//	const deUint32*			pQueueFamilyIndices;
+			vk::VK_IMAGE_LAYOUT_UNDEFINED,				//	VkImageLayout			initialLayout;
+		};
+		imagePtr.reset(new vk::ImageWithMemory{vkd, device, allocator, imageCreateInfo, MemoryRequirement::Any});
+
+		const auto subresourceRange	= vk::makeImageSubresourceRange(vk::VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u);
+		imageView					= vk::makeImageView(vkd, device, imagePtr->get(), vk::VK_IMAGE_VIEW_TYPE_2D, kColorFormat, subresourceRange);
+
+		framebufferCreateInfo.attachmentCount	= 1u;
+		framebufferCreateInfo.pAttachments		= &imageView.get();
+	}
+	framebufferCreateInfo.renderPass	= renderPassSingleSubpass.get();
+	const auto framebufferSingleSubpass	= vk::createFramebuffer(vkd, device, &framebufferCreateInfo);
+
+	// Shader modules and stages.
+	const auto vertModule = vk::createShaderModule(vkd, device, m_context.getBinaryCollection().get("vert"), 0u);
+	const auto fragModule = vk::createShaderModule(vkd, device, m_context.getBinaryCollection().get("frag"), 0u);
+
+	std::vector<vk::VkPipelineShaderStageCreateInfo> shaderStages;
+
+	vk::VkPipelineShaderStageCreateInfo shaderStageCreateInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,	//	VkStructureType						sType;
+		nullptr,													//	const void*							pNext;
+		0u,															//	VkPipelineShaderStageCreateFlags	flags;
+		vk::VK_SHADER_STAGE_VERTEX_BIT,								//	VkShaderStageFlagBits				stage;
+		vertModule.get(),											//	VkShaderModule						module;
+		"main",														//	const char*							pName;
+		nullptr,													//	const VkSpecializationInfo*			pSpecializationInfo;
+	};
+
+	shaderStages.push_back(shaderStageCreateInfo);
+	shaderStageCreateInfo.stage		= vk::VK_SHADER_STAGE_FRAGMENT_BIT;
+	shaderStageCreateInfo.module	= fragModule.get();
+	shaderStages.push_back(shaderStageCreateInfo);
+
+	// Vertices, input state and assembly.
+	const std::vector<tcu::Vec2> vertices =
+	{
+		{ -0.987f, -0.964f },
+		{  0.982f, -0.977f },
+		{  0.005f,  0.891f },
+	};
+
+	const auto vertexBinding	= vk::makeVertexInputBindingDescription(0u, static_cast<deUint32>(sizeof(decltype(vertices)::value_type)), vk::VK_VERTEX_INPUT_RATE_VERTEX);
+	const auto vertexAttribute	= vk::makeVertexInputAttributeDescription(0u, 0u, vk::VK_FORMAT_R32G32_SFLOAT, 0u);
+
+	const vk::VkPipelineVertexInputStateCreateInfo vertexInputStateCreateInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,	//	VkStructureType								sType;
+		nullptr,														//	const void*									pNext;
+		0u,																//	VkPipelineVertexInputStateCreateFlags		flags;
+		1u,																//	deUint32									vertexBindingDescriptionCount;
+		&vertexBinding,													//	const VkVertexInputBindingDescription*		pVertexBindingDescriptions;
+		1u,																//	deUint32									vertexAttributeDescriptionCount;
+		&vertexAttribute,												//	const VkVertexInputAttributeDescription*	pVertexAttributeDescriptions;
+	};
+
+	const vk::VkPipelineInputAssemblyStateCreateInfo inputAssemblyStateCreateInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO,	//	VkStructureType							sType;
+		nullptr,															//	const void*								pNext;
+		0u,																	//	VkPipelineInputAssemblyStateCreateFlags	flags;
+		vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,							//	VkPrimitiveTopology						topology;
+		VK_FALSE,															//	VkBool32								primitiveRestartEnable;
+	};
+
+	// Graphics pipelines to create output buffers.
+	const auto viewport	= vk::makeViewport(kWidth32, kHeight32);
+	const auto scissor	= vk::makeRect2D(kWidth32, kHeight32);
+
+	const vk::VkPipelineViewportStateCreateInfo viewportStateCreateInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO,	//	VkStructureType						sType;
+		nullptr,													//	const void*							pNext;
+		0u,															//	VkPipelineViewportStateCreateFlags	flags;
+		1u,															//	deUint32							viewportCount;
+		&viewport,													//	const VkViewport*					pViewports;
+		1u,															//	deUint32							scissorCount;
+		&scissor,													//	const VkRect2D*						pScissors;
+	};
+
+	const vk::VkPipelineRasterizationStateCreateInfo rasterizationStateCreateInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,	//	VkStructureType							sType;
+		nullptr,														//	const void*								pNext;
+		0u,																//	VkPipelineRasterizationStateCreateFlags	flags;
+		VK_FALSE,														//	VkBool32								depthClampEnable;
+		VK_FALSE,														//	VkBool32								rasterizerDiscardEnable;
+		vk::VK_POLYGON_MODE_FILL,										//	VkPolygonMode							polygonMode;
+		vk::VK_CULL_MODE_NONE,											//	VkCullModeFlags							cullMode;
+		vk::VK_FRONT_FACE_CLOCKWISE,									//	VkFrontFace								frontFace;
+		VK_FALSE,														//	VkBool32								depthBiasEnable;
+		0.0f,															//	float									depthBiasConstantFactor;
+		0.0f,															//	float									depthBiasClamp;
+		0.0f,															//	float									depthBiasSlopeFactor;
+		1.0f,															//	float									lineWidth;
+	};
+
+	vk::VkPipelineMultisampleStateCreateInfo multisampleStateCreateInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,	//	VkStructureType							sType;
+		nullptr,														//	const void*								pNext;
+		0u,																//	VkPipelineMultisampleStateCreateFlags	flags;
+		vk::VK_SAMPLE_COUNT_1_BIT,										//	VkSampleCountFlagBits					rasterizationSamples;
+		VK_FALSE,														//	VkBool32								sampleShadingEnable;
+		0.0f,															//	float									minSampleShading;
+		nullptr,														//	const VkSampleMask*						pSampleMask;
+		VK_FALSE,														//	VkBool32								alphaToCoverageEnable;
+		VK_FALSE,														//	VkBool32								alphaToOneEnable;
+	};
+
+	std::vector<vk::Move<vk::VkPipeline>> outputPipelines;
+
+	for (const auto samples : m_params.subpassCounts)
+	{
+		multisampleStateCreateInfo.rasterizationSamples = samples;
+
+		const vk::VkGraphicsPipelineCreateInfo graphicsPipelineCreateInfo =
+		{
+			vk::VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO,	//	VkStructureType									sType;
+			nullptr,												//	const void*										pNext;
+			0u,														//	VkPipelineCreateFlags							flags;
+			static_cast<deUint32>(shaderStages.size()),				//	deUint32										stageCount;
+			shaderStages.data(),									//	const VkPipelineShaderStageCreateInfo*			pStages;
+			&vertexInputStateCreateInfo,							//	const VkPipelineVertexInputStateCreateInfo*		pVertexInputState;
+			&inputAssemblyStateCreateInfo,							//	const VkPipelineInputAssemblyStateCreateInfo*	pInputAssemblyState;
+			nullptr,												//	const VkPipelineTessellationStateCreateInfo*	pTessellationState;
+			&viewportStateCreateInfo,								//	const VkPipelineViewportStateCreateInfo*		pViewportState;
+			&rasterizationStateCreateInfo,							//	const VkPipelineRasterizationStateCreateInfo*	pRasterizationState;
+			&multisampleStateCreateInfo,							//	const VkPipelineMultisampleStateCreateInfo*		pMultisampleState;
+			nullptr,												//	const VkPipelineDepthStencilStateCreateInfo*	pDepthStencilState;
+			nullptr,												//	const VkPipelineColorBlendStateCreateInfo*		pColorBlendState;
+			nullptr,												//	const VkPipelineDynamicStateCreateInfo*			pDynamicState;
+			pipelineLayout.get(),									//	VkPipelineLayout								layout;
+			renderPassSingleSubpass.get(),							//	VkRenderPass									renderPass;
+			0u,														//	deUint32										subpass;
+			DE_NULL,												//	VkPipeline										basePipelineHandle;
+			0,														//	deInt32											basePipelineIndex;
+		};
+
+		outputPipelines.push_back(vk::createGraphicsPipeline(vkd, device, DE_NULL, &graphicsPipelineCreateInfo));
+	}
+
+	// Graphics pipelines with variable rate but using several subpasses.
+	std::vector<vk::Move<vk::VkPipeline>> referencePipelines;
+
+	for (size_t i = 0; i < m_params.subpassCounts.size(); ++i)
+	{
+		multisampleStateCreateInfo.rasterizationSamples = m_params.subpassCounts[i];
+
+		const vk::VkGraphicsPipelineCreateInfo graphicsPipelineCreateInfo =
+		{
+			vk::VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO,	//	VkStructureType									sType;
+			nullptr,												//	const void*										pNext;
+			0u,														//	VkPipelineCreateFlags							flags;
+			static_cast<deUint32>(shaderStages.size()),				//	deUint32										stageCount;
+			shaderStages.data(),									//	const VkPipelineShaderStageCreateInfo*			pStages;
+			&vertexInputStateCreateInfo,							//	const VkPipelineVertexInputStateCreateInfo*		pVertexInputState;
+			&inputAssemblyStateCreateInfo,							//	const VkPipelineInputAssemblyStateCreateInfo*	pInputAssemblyState;
+			nullptr,												//	const VkPipelineTessellationStateCreateInfo*	pTessellationState;
+			&viewportStateCreateInfo,								//	const VkPipelineViewportStateCreateInfo*		pViewportState;
+			&rasterizationStateCreateInfo,							//	const VkPipelineRasterizationStateCreateInfo*	pRasterizationState;
+			&multisampleStateCreateInfo,							//	const VkPipelineMultisampleStateCreateInfo*		pMultisampleState;
+			nullptr,												//	const VkPipelineDepthStencilStateCreateInfo*	pDepthStencilState;
+			nullptr,												//	const VkPipelineColorBlendStateCreateInfo*		pColorBlendState;
+			nullptr,												//	const VkPipelineDynamicStateCreateInfo*			pDynamicState;
+			pipelineLayout.get(),									//	VkPipelineLayout								layout;
+			renderPassMultiplePasses.get(),							//	VkRenderPass									renderPass;
+			static_cast<deUint32>(i),								//	deUint32										subpass;
+			DE_NULL,												//	VkPipeline										basePipelineHandle;
+			0,														//	deInt32											basePipelineIndex;
+		};
+
+		referencePipelines.push_back(vk::createGraphicsPipeline(vkd, device, DE_NULL, &graphicsPipelineCreateInfo));
+	}
+
+	// Prepare vertex, reference and output buffers.
+	const auto				vertexBufferSize		= vertices.size() * sizeof(decltype(vertices)::value_type);
+	const auto				vertexBufferCreateInfo	= vk::makeBufferCreateInfo(static_cast<VkDeviceSize>(vertexBufferSize), vk::VK_BUFFER_USAGE_VERTEX_BUFFER_BIT);
+	vk::BufferWithMemory	vertexBuffer			{vkd, device, allocator, vertexBufferCreateInfo, MemoryRequirement::HostVisible};
+	auto&					vertexAlloc				= vertexBuffer.getAllocation();
+
+	deMemcpy(vertexAlloc.getHostPtr(), vertices.data(), vertexBufferSize);
+	vk::flushAlloc(vkd, device, vertexAlloc);
+
+	for (size_t i = 0; i < referenceBuffers.size(); ++i)
+	{
+		zeroOutAndFlush(vkd, device, *referenceBuffers[i], bufferSizes[i]);
+		zeroOutAndFlush(vkd, device, *outputBuffers[i], bufferSizes[i]);
+	}
+
+	// Prepare descriptor sets.
+	const deUint32				totalSets		= static_cast<deUint32>(referenceBuffers.size() * 2u);
+	vk::DescriptorPoolBuilder	poolBuilder;
+	poolBuilder.addType(vk::VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, static_cast<deUint32>(referenceBuffers.size() * 2u));
+	const auto descriptorPool = poolBuilder.build(vkd, device, vk::VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, totalSets);
+
+	std::vector<vk::Move<vk::VkDescriptorSet>> referenceSets	(referenceBuffers.size());
+	std::vector<vk::Move<vk::VkDescriptorSet>> outputSets		(outputBuffers.size());
+
+	for (auto& set : referenceSets)
+		set = vk::makeDescriptorSet(vkd, device, descriptorPool.get(), descriptorSetLayout.get());
+	for (auto& set : outputSets)
+		set = vk::makeDescriptorSet(vkd, device, descriptorPool.get(), descriptorSetLayout.get());
+
+	vk::DescriptorSetUpdateBuilder updateBuilder;
+
+	for (size_t i = 0; i < referenceSets.size(); ++i)
+	{
+		const auto descriptorBufferInfo = vk::makeDescriptorBufferInfo(referenceBuffers[i]->get(), 0u, bufferSizes[i]);
+		updateBuilder.writeSingle(referenceSets[i].get(), vk::DescriptorSetUpdateBuilder::Location::binding(0u), vk::VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, &descriptorBufferInfo);
+	}
+	for (size_t i = 0; i < outputSets.size(); ++i)
+	{
+		const auto descriptorBufferInfo = vk::makeDescriptorBufferInfo(outputBuffers[i]->get(), 0u, bufferSizes[i]);
+		updateBuilder.writeSingle(outputSets[i].get(), vk::DescriptorSetUpdateBuilder::Location::binding(0u), vk::VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, &descriptorBufferInfo);
+	}
+
+	updateBuilder.update(vkd, device);
+
+	// Prepare command pool.
+	const auto cmdPool		= vk::makeCommandPool(vkd, device, queueIndex);
+	const auto cmdBufferPtr	= vk::allocateCommandBuffer(vkd , device, cmdPool.get(), vk::VK_COMMAND_BUFFER_LEVEL_PRIMARY);
+	const auto cmdBuffer	= cmdBufferPtr.get();
+
+	vk::VkBufferMemoryBarrier storageBufferDevToHostBarrier =
+	{
+		vk::VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,	//	VkStructureType	sType;
+		nullptr,										//	const void*		pNext;
+		vk::VK_ACCESS_SHADER_WRITE_BIT,					//	VkAccessFlags	srcAccessMask;
+		vk::VK_ACCESS_HOST_READ_BIT,					//	VkAccessFlags	dstAccessMask;
+		VK_QUEUE_FAMILY_IGNORED,						//	deUint32		srcQueueFamilyIndex;
+		VK_QUEUE_FAMILY_IGNORED,						//	deUint32		dstQueueFamilyIndex;
+		DE_NULL,										//	VkBuffer		buffer;
+		0u,												//	VkDeviceSize	offset;
+		VK_WHOLE_SIZE,									//	VkDeviceSize	size;
+	};
+
+	// Record command buffer.
+	const vk::VkDeviceSize	vertexBufferOffset	= 0u;
+	const auto				renderArea			= vk::makeRect2D(kWidth32, kHeight32);
+	PushConstants			pushConstants		= { static_cast<int>(kWidth), static_cast<int>(kHeight), 0 };
+
+	vk::beginCommandBuffer(vkd, cmdBuffer);
+
+	// Render output buffers.
+	vk::beginRenderPass(vkd, cmdBuffer, renderPassSingleSubpass.get(), framebufferSingleSubpass.get(), renderArea);
+	for (size_t i = 0; i < outputBuffers.size(); ++i)
+	{
+		vkd.cmdBindPipeline(cmdBuffer, vk::VK_PIPELINE_BIND_POINT_GRAPHICS, outputPipelines[i].get());
+		vkd.cmdBindDescriptorSets(cmdBuffer, vk::VK_PIPELINE_BIND_POINT_GRAPHICS, pipelineLayout.get(), 0u, 1u, &outputSets[i].get(), 0u, nullptr);
+		vkd.cmdBindVertexBuffers(cmdBuffer, 0u, 1u, &vertexBuffer.get(), &vertexBufferOffset);
+		pushConstants.samples = static_cast<int>(m_params.subpassCounts[i]);
+		vkd.cmdPushConstants(cmdBuffer, pipelineLayout.get(), pushConstantRange.stageFlags, pushConstantRange.offset, pushConstantRange.size, &pushConstants);
+		vkd.cmdDraw(cmdBuffer, static_cast<deUint32>(vertices.size()), 1u, 0u, 0u);
+	}
+	vk::endRenderPass(vkd, cmdBuffer);
+	for (size_t i = 0; i < outputBuffers.size(); ++i)
+	{
+		storageBufferDevToHostBarrier.buffer = outputBuffers[i]->get();
+		vkd.cmdPipelineBarrier(cmdBuffer, vk::VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, vk::VK_PIPELINE_STAGE_HOST_BIT, 0u, 0u, nullptr, 1u, &storageBufferDevToHostBarrier, 0u, nullptr);
+	}
+
+	// Render reference buffers.
+	vk::beginRenderPass(vkd, cmdBuffer, renderPassMultiplePasses.get(), framebufferMultiplePasses.get(), renderArea);
+	for (size_t i = 0; i < referenceBuffers.size(); ++i)
+	{
+		if (i > 0)
+			vkd.cmdNextSubpass(cmdBuffer, vk::VK_SUBPASS_CONTENTS_INLINE);
+		vkd.cmdBindPipeline(cmdBuffer, vk::VK_PIPELINE_BIND_POINT_GRAPHICS, referencePipelines[i].get());
+		vkd.cmdBindDescriptorSets(cmdBuffer, vk::VK_PIPELINE_BIND_POINT_GRAPHICS, pipelineLayout.get(), 0u, 1u, &referenceSets[i].get(), 0u, nullptr);
+		vkd.cmdBindVertexBuffers(cmdBuffer, 0u, 1u, &vertexBuffer.get(), &vertexBufferOffset);
+		pushConstants.samples = static_cast<int>(m_params.subpassCounts[i]);
+		vkd.cmdPushConstants(cmdBuffer, pipelineLayout.get(), pushConstantRange.stageFlags, pushConstantRange.offset, pushConstantRange.size, &pushConstants);
+		vkd.cmdDraw(cmdBuffer, static_cast<deUint32>(vertices.size()), 1u, 0u, 0u);
+	}
+	vk::endRenderPass(vkd, cmdBuffer);
+	for (size_t i = 0; i < referenceBuffers.size(); ++i)
+	{
+		storageBufferDevToHostBarrier.buffer = referenceBuffers[i]->get();
+		vkd.cmdPipelineBarrier(cmdBuffer, vk::VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, vk::VK_PIPELINE_STAGE_HOST_BIT, 0u, 0u, nullptr, 1u, &storageBufferDevToHostBarrier, 0u, nullptr);
+	}
+
+	vk::endCommandBuffer(vkd, cmdBuffer);
+
+	// Run all pipelines.
+	vk::submitCommandsAndWait(vkd, device, queue, cmdBuffer);
+
+	// Invalidate reference allocs.
+#undef LOG_BUFFER_CONTENTS
+#ifdef LOG_BUFFER_CONTENTS
+	auto& log = m_context.getTestContext().getLog();
+#endif
+	for (size_t i = 0; i < referenceBuffers.size(); ++i)
+	{
+		auto& buffer	= referenceBuffers[i];
+		auto& alloc		= buffer->getAllocation();
+		vk::invalidateAlloc(vkd, device, alloc);
+
+#ifdef LOG_BUFFER_CONTENTS
+		std::vector<deInt32> bufferValues(bufferNumElements[i]);
+		deMemcpy(bufferValues.data(), alloc.getHostPtr(), bufferSizes[i]);
+
+		std::ostringstream msg;
+		for (const auto value : bufferValues)
+			msg << " " << value;
+		log << tcu::TestLog::Message << "Reference buffer values with " << m_params[i] << " samples:" << msg.str() << tcu::TestLog::EndMessage;
+#endif
+	}
+
+	for (size_t i = 0; i < outputBuffers.size(); ++i)
+	{
+		auto& buffer	= outputBuffers[i];
+		auto& alloc		= buffer->getAllocation();
+		vk::invalidateAlloc(vkd, device, alloc);
+
+#ifdef LOG_BUFFER_CONTENTS
+		std::vector<deInt32> bufferValues(bufferNumElements[i]);
+		deMemcpy(bufferValues.data(), alloc.getHostPtr(), bufferSizes[i]);
+
+		std::ostringstream msg;
+		for (const auto value : bufferValues)
+			msg << " " << value;
+		log << tcu::TestLog::Message << "Output buffer values with " << m_params[i] << " samples:" << msg.str() << tcu::TestLog::EndMessage;
+#endif
+
+		if (deMemCmp(alloc.getHostPtr(), referenceBuffers[i]->getAllocation().getHostPtr(), static_cast<size_t>(bufferSizes[i])) != 0)
+			return tcu::TestStatus::fail("Buffer mismatch in output buffer " + de::toString(i));
+	}
+
+	return tcu::TestStatus::pass("Pass");
+}
+
+using ElementsVector	= std::vector<vk::VkSampleCountFlagBits>;
+using CombinationVector	= std::vector<ElementsVector>;
+
+void combinationsRecursive(const ElementsVector& elements, size_t requestedSize, CombinationVector& solutions, ElementsVector& partial)
+{
+	if (partial.size() == requestedSize)
+		solutions.push_back(partial);
+	else
+	{
+		for (const auto& elem : elements)
+		{
+			partial.push_back(elem);
+			combinationsRecursive(elements, requestedSize, solutions, partial);
+			partial.pop_back();
+		}
+	}
+}
+
+CombinationVector combinations(const ElementsVector& elements, size_t requestedSize)
+{
+	CombinationVector solutions;
+	ElementsVector partial;
+
+	combinationsRecursive(elements, requestedSize, solutions, partial);
+	return solutions;
+}
+
 } // anonymous
 
 tcu::TestCaseGroup* createMultisampleTests (tcu::TestContext& testCtx)
@@ -3920,6 +4612,151 @@
 		multisampleTests->addChild(sampleMaskWithDepthTestGroup.release());
 	}
 
+	{
+		static const std::vector<vk::VkSampleCountFlagBits> kSampleCounts =
+		{
+			vk::VK_SAMPLE_COUNT_1_BIT,
+			vk::VK_SAMPLE_COUNT_2_BIT,
+			vk::VK_SAMPLE_COUNT_4_BIT,
+			vk::VK_SAMPLE_COUNT_8_BIT,
+			vk::VK_SAMPLE_COUNT_16_BIT,
+			vk::VK_SAMPLE_COUNT_32_BIT,
+			vk::VK_SAMPLE_COUNT_64_BIT,
+		};
+
+		static const std::array<bool, 2> unusedAttachmentFlag = {{ false, true }};
+
+		{
+			de::MovePtr<tcu::TestCaseGroup> variableRateGroup(new tcu::TestCaseGroup(testCtx, "variable_rate", "Tests for multisample variable rate in subpasses"));
+
+			// 2 and 3 subpasses should be good enough.
+			static const std::vector<size_t> combinationSizes = { 2, 3 };
+
+			// Basic cases.
+			for (const auto size : combinationSizes)
+			{
+				const auto combs = combinations(kSampleCounts, size);
+				for (const auto& comb : combs)
+				{
+					// Check sample counts actually vary between some of the subpasses.
+					std::set<vk::VkSampleCountFlagBits> uniqueVals(begin(comb), end(comb));
+					if (uniqueVals.size() < 2)
+						continue;
+
+					std::ostringstream name;
+					std::ostringstream desc;
+
+					bool first = true;
+					for (const auto& count : comb)
+					{
+						name << (first ? "" : "_") << count;
+						desc << (first ? "Subpasses with counts " : ", ") << count;
+						first = false;
+					}
+
+					const VariableRateTestCase::TestParams params =
+					{
+						false,						//	bool						nonEmptyFramebuffer;
+						vk::VK_SAMPLE_COUNT_1_BIT,	//	vk::VkSampleCountFlagBits	fbCount;
+						false,						//	bool						unusedAttachment;
+						comb,						//	SampleCounts				subpassCounts;
+					};
+					variableRateGroup->addChild(new VariableRateTestCase(testCtx, name.str(), desc.str(), params));
+				}
+			}
+
+			// Cases with non-empty framebuffers: only 2 subpasses to avoid a large number of combinations.
+			{
+				// Use one more sample count for the framebuffer attachment. It will be taken from the last item.
+				auto combs = combinations(kSampleCounts, 2 + 1);
+				for (auto& comb : combs)
+				{
+					// Framebuffer sample count.
+					const auto fbCount = comb.back();
+					comb.pop_back();
+
+					// Check sample counts actually vary between some of the subpasses.
+					std::set<vk::VkSampleCountFlagBits> uniqueVals(begin(comb), end(comb));
+					if (uniqueVals.size() < 2)
+						continue;
+
+					for (const auto flag : unusedAttachmentFlag)
+					{
+						std::ostringstream name;
+						std::ostringstream desc;
+
+						desc << "Framebuffer with sample count " << fbCount << " and subpasses with counts ";
+
+						bool first = true;
+						for (const auto& count : comb)
+						{
+							name << (first ? "" : "_") << count;
+							desc << (first ? "" : ", ") << count;
+							first = false;
+						}
+
+						name << "_fb_" << fbCount;
+
+						if (flag)
+						{
+							name << "_unused";
+							desc << " and unused attachments";
+						}
+
+						const VariableRateTestCase::TestParams params =
+						{
+							true,						//	bool						nonEmptyFramebuffer;
+							fbCount,					//	vk::VkSampleCountFlagBits	fbCount;
+							flag,						//	bool						unusedAttachment;
+							comb,						//	SampleCounts				subpassCounts;
+						};
+						variableRateGroup->addChild(new VariableRateTestCase(testCtx, name.str(), desc.str(), params));
+					}
+				}
+			}
+
+			multisampleTests->addChild(variableRateGroup.release());
+		}
+
+		{
+			de::MovePtr<tcu::TestCaseGroup> mixedCountGroup(new tcu::TestCaseGroup(testCtx, "mixed_count", "Tests for mixed sample count in empty subpass and framebuffer"));
+
+			const auto combs = combinations(kSampleCounts, 2);
+			for (const auto& comb : combs)
+			{
+				// Check different sample count.
+				DE_ASSERT(comb.size() == 2u);
+				const auto& fbCount		= comb[0];
+				const auto& emptyCount	= comb[1];
+
+				if (fbCount == emptyCount)
+					continue;
+
+				const std::string fbCountStr	= de::toString(fbCount);
+				const std::string emptyCountStr	= de::toString(emptyCount);
+
+				for (const auto flag : unusedAttachmentFlag)
+				{
+					const std::string nameSuffix	= (flag ? "unused" : "");
+					const std::string descSuffix	= (flag ? "one unused attachment reference" : "no attachment references");
+					const std::string name			= fbCountStr + "_" + emptyCountStr + (nameSuffix.empty() ? "" : "_") + nameSuffix;
+					const std::string desc			= "Framebuffer with " + fbCountStr + " samples, subpass with " + emptyCountStr + " samples and " + descSuffix;
+
+					const VariableRateTestCase::TestParams params =
+					{
+						true,												//	bool						nonEmptyFramebuffer;
+						fbCount,											//	vk::VkSampleCountFlagBits	fbCount;
+						flag,												//	bool						unusedAttachment;
+						VariableRateTestCase::SampleCounts(1u, emptyCount),	//	SampleCounts				subpassCounts;
+					};
+					mixedCountGroup->addChild(new VariableRateTestCase(testCtx, name, desc, params));
+				}
+			}
+
+			multisampleTests->addChild(mixedCountGroup.release());
+		}
+	}
+
 	return multisampleTests.release();
 }
 
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineReferenceRenderer.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineReferenceRenderer.cpp
index b2f2772..1086565 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineReferenceRenderer.cpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineReferenceRenderer.cpp
@@ -291,6 +291,43 @@
 
 	m_renderer.draw(drawQuadCommand);
 }
+void ReferenceRenderer::draw (const rr::RenderState&				renderState,
+							  const rr::PrimitiveType				primitive,
+							  const std::vector<Vertex4RGBARGBA>&	vertexBuffer)
+{
+	const rr::PrimitiveList primitives(primitive, (int)vertexBuffer.size(), 0);
+
+	std::vector<tcu::Vec4> positions;
+	std::vector<tcu::Vec4> color0s;
+	std::vector<tcu::Vec4> color1s;
+
+	for (size_t vertexNdx = 0; vertexNdx < vertexBuffer.size(); vertexNdx++)
+	{
+		const Vertex4RGBARGBA& v = vertexBuffer[vertexNdx];
+		positions.push_back(v.position);
+		color0s.push_back(v.color0);
+		color1s.push_back(v.color1);
+	}
+
+	rr::VertexAttrib vertexAttribs[3];
+
+	// Position attribute
+	vertexAttribs[0].type		= rr::VERTEXATTRIBTYPE_FLOAT;
+	vertexAttribs[0].size		= 4;
+	vertexAttribs[0].pointer	= positions.data();
+	// Color0 attribute
+	vertexAttribs[1].type		= rr::VERTEXATTRIBTYPE_FLOAT;
+	vertexAttribs[1].size		= 4;
+	vertexAttribs[1].pointer	= color0s.data();
+	// Color1 attribute
+	vertexAttribs[2].type		= rr::VERTEXATTRIBTYPE_FLOAT;
+	vertexAttribs[2].size		= 4;
+	vertexAttribs[2].pointer	= color1s.data();
+
+	rr::DrawCommand drawQuadCommand(renderState, *m_renderTarget, *m_program, 3, vertexAttribs, primitives);
+
+	m_renderer.draw(drawQuadCommand);
+}
 
 void ReferenceRenderer::draw (const rr::RenderState&			renderState,
 							  const rr::PrimitiveType			primitive,
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineReferenceRenderer.hpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineReferenceRenderer.hpp
index 18f836d..431dbd6 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineReferenceRenderer.hpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineReferenceRenderer.hpp
@@ -77,6 +77,46 @@
 	}
 };
 
+class ColorVertexShaderDualSource : public rr::VertexShader
+{
+public:
+	ColorVertexShaderDualSource (void) : rr::VertexShader(3, 3)
+	{
+		m_inputs[0].type	= rr::GENERICVECTYPE_FLOAT;
+		m_inputs[1].type	= rr::GENERICVECTYPE_FLOAT;
+		m_inputs[2].type	= rr::GENERICVECTYPE_FLOAT;
+
+		m_outputs[0].type	= rr::GENERICVECTYPE_FLOAT;
+		m_outputs[1].type	= rr::GENERICVECTYPE_FLOAT;
+		m_outputs[2].type	= rr::GENERICVECTYPE_FLOAT;
+	}
+
+	virtual ~ColorVertexShaderDualSource (void) {}
+
+	virtual void shadeVertices (const rr::VertexAttrib*		inputs,
+								rr::VertexPacket* const*	packets,
+								const int					numPackets) const
+	{
+		tcu::Vec4 position;
+		tcu::Vec4 color0;
+		tcu::Vec4 color1;
+
+		for (int packetNdx = 0; packetNdx < numPackets; packetNdx++)
+		{
+			rr::VertexPacket* const packet	= packets[packetNdx];
+
+			readVertexAttrib(position, inputs[0], packet->instanceNdx, packet->vertexNdx);
+			readVertexAttrib(color0, inputs[1], packet->instanceNdx, packet->vertexNdx);
+			readVertexAttrib(color1, inputs[2], packet->instanceNdx, packet->vertexNdx);
+
+			packet->outputs[0]	= position;
+			packet->outputs[1]	= color0;
+			packet->outputs[2]	= color1;
+			packet->position	= position;
+		}
+	}
+};
+
 class TexCoordVertexShader : public rr::VertexShader
 {
 public:
@@ -162,6 +202,59 @@
 	}
 };
 
+class ColorFragmentShaderDualSource : public rr::FragmentShader
+{
+private:
+	const tcu::TextureFormat		m_colorFormat;
+	const tcu::TextureFormat		m_depthStencilFormat;
+
+public:
+	ColorFragmentShaderDualSource (const tcu::TextureFormat& colorFormat,
+								   const tcu::TextureFormat& depthStencilFormat)
+		: rr::FragmentShader	(3, 1)
+		, m_colorFormat			(colorFormat)
+		, m_depthStencilFormat	(depthStencilFormat)
+	{
+		const tcu::TextureChannelClass channelClass = tcu::getTextureChannelClass(m_colorFormat.type);
+
+		m_inputs[0].type	= rr::GENERICVECTYPE_FLOAT;
+		m_inputs[1].type	= rr::GENERICVECTYPE_FLOAT;
+		m_inputs[2].type	= rr::GENERICVECTYPE_FLOAT;
+
+		m_outputs[0].type	= (channelClass == tcu::TEXTURECHANNELCLASS_SIGNED_INTEGER)? rr::GENERICVECTYPE_INT32 :
+							  (channelClass == tcu::TEXTURECHANNELCLASS_UNSIGNED_INTEGER)? rr::GENERICVECTYPE_UINT32
+							  : rr::GENERICVECTYPE_FLOAT;
+	}
+
+	virtual ~ColorFragmentShaderDualSource (void) {}
+
+	virtual void shadeFragments (rr::FragmentPacket*				packets,
+								 const int							numPackets,
+								 const rr::FragmentShadingContext&	context) const
+	{
+		for (int packetNdx = 0; packetNdx < numPackets; packetNdx++)
+		{
+			const rr::FragmentPacket& packet = packets[packetNdx];
+
+			if (m_depthStencilFormat.order == tcu::TextureFormat::D || m_depthStencilFormat.order == tcu::TextureFormat::DS)
+			{
+				for (int fragNdx = 0; fragNdx < 4; fragNdx++)
+				{
+					const tcu::Vec4 vtxPosition = rr::readVarying<float>(packet, context, 0, fragNdx);
+					rr::writeFragmentDepth(context, packetNdx, fragNdx, 0, vtxPosition.z());
+				}
+			}
+
+			for (int fragNdx = 0; fragNdx < 4; fragNdx++)
+			{
+				const tcu::Vec4 vtxColor0 = rr::readVarying<float>(packet, context, 1, fragNdx);
+				const tcu::Vec4 vtxColor1 = rr::readVarying<float>(packet, context, 2, fragNdx);
+				rr::writeFragmentOutputDualSource(context, packetNdx, fragNdx, 0, vtxColor0, vtxColor1);
+			}
+		}
+	}
+};
+
 class CoordinateCaptureFragmentShader : public rr::FragmentShader
 {
 public:
@@ -238,6 +331,10 @@
 														 const rr::PrimitiveType			primitive,
 														 const std::vector<Vertex4RGBA>&	vertexBuffer);
 
+	void						draw					(const rr::RenderState&					renderState,
+														 const rr::PrimitiveType				primitive,
+														 const std::vector<Vertex4RGBARGBA>&	vertexBuffer);
+
 	void						draw					(const rr::RenderState&				renderState,
 														 const rr::PrimitiveType			primitive,
 														 const std::vector<Vertex4Tex4>&	vertexBuffer);
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineSamplerTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineSamplerTests.cpp
index dd04591..e01ac29 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineSamplerTests.cpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineSamplerTests.cpp
@@ -42,6 +42,7 @@
 #include "tcuPlatform.hpp"
 #include "tcuTextureUtil.hpp"
 #include "tcuTestLog.hpp"
+#include "tcuMaybe.hpp"
 
 #include "deStringUtil.hpp"
 #include "deMemory.h"
@@ -1079,13 +1080,19 @@
 	return samplerAddressModesTests;
 }
 
+// Exact sampling case:
+//	1) Create a texture and a framebuffer image of the same size.
+//	2) Draw a full screen quad with the texture and VK_FILTER_NEAREST.
+//	3) Verify the rendered image matches the texture exactly.
 class ExactSamplingCase : public vkt::TestCase
 {
 public:
 	struct Params
 	{
-		vk::VkFormat	format;
-		bool			unnormalizedCoordinates;
+		vk::VkFormat		format;
+		bool				unnormalizedCoordinates;
+		bool				solidColor;
+		tcu::Maybe<float>	offsetSign; // -1.0 or 1.0
 	};
 
 	struct PushConstants
@@ -1247,6 +1254,7 @@
 		|vk::VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
 		|vk::VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
 		|vk::VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
+		|(m_params.solidColor ? vk::VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT : 0)
 		);
 
 	if ((props.optimalTilingFeatures & requiredFeatures) != requiredFeatures)
@@ -1265,6 +1273,8 @@
 
 tcu::TestStatus ExactSamplingInstance::iterate (void)
 {
+	const auto& vki			= m_context.getInstanceInterface();
+	const auto	physDevice	= m_context.getPhysicalDevice();
 	const auto&	vkd			= m_context.getDeviceInterface();
 	const auto	device		= m_context.getDevice();
 	auto&		allocator	= m_context.getDefaultAllocator();
@@ -1278,6 +1288,7 @@
 	const auto	fbUsage		= (vk::VK_IMAGE_USAGE_TRANSFER_SRC_BIT | vk::VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT);
 	const auto	descType	= vk::VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER;
 	const auto	texLayout	= vk::VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
+	const bool&	unnorm		= m_params.unnormalizedCoordinates;
 
 	// Some code below depends on this.
 	DE_ASSERT(texExtent.depth == 1u);
@@ -1349,29 +1360,58 @@
 	const float divX = static_cast<float>(W - 1);
 	const float divY = static_cast<float>(H - 1);
 
+	tcu::Vec4 texColor;
+
 	for (int x = 0; x < W; ++x)
 	for (int y = 0; y < H; ++y)
 	for (int z = 0; z < D; ++z)
 	{
-		const float colorX = static_cast<float>(x) / divX;
-		const float colorY = static_cast<float>(y) / divY;
-		const float colorZ = std::min(colorX, colorY);
+		if (m_params.solidColor)
+		{
+			// Texture with solid color for filtered sampling.
+			texColor = tcu::Vec4{0.5f, 0.25f, 0.7529411764705882f, 1.0f};
+		}
+		else
+		{
+			// Use a color gradient otherwise.
+			const float colorX = static_cast<float>(x) / divX;
+			const float colorY = static_cast<float>(y) / divY;
+			const float colorZ = std::min(colorX, colorY);
 
-		tcu::Vec4 color{colorX, colorY, colorZ, 1.0f};
-		tcu::Vec4 finalColor = (color - formatInfo.lookupBias) / formatInfo.lookupScale;
+			texColor = tcu::Vec4{colorX, colorY, colorZ, 1.0f};
+		}
+		const tcu::Vec4 finalColor = (texColor - formatInfo.lookupBias) / formatInfo.lookupScale;
 		texPixels.setPixel(finalColor, x, y, z);
 	}
 
 	vk::flushAlloc(vkd, device, texBufferAlloc);
 
+	float minU = 0.0f;
+	float maxU = 1.0f;
+	float minV = 0.0f;
+	float maxV = 1.0f;
+
+	// When testing the edges, apply a texture offset of almost half a texel, so the sample location is very close to the texel border.
+	if (m_params.offsetSign)
+	{
+		const float sign			= m_params.offsetSign.get(); DE_ASSERT(sign == 1.0f || sign == -1.0f);
+		const float offsetWidth		= 0.499f / static_cast<float>(texExtent.width);
+		const float offsetHeight	= 0.499f / static_cast<float>(texExtent.height);
+
+		minU += sign * offsetWidth;
+		maxU += sign * offsetWidth;
+		minV += sign * offsetHeight;
+		maxV += sign * offsetHeight;
+	}
+
 	const std::vector<ExactSamplingCase::VertexData> fullScreenQuad =
 	{
-		{{  1.f, -1.f }, { 1.f, 0.f }, },
-		{{ -1.f, -1.f }, { 0.f, 0.f }, },
-		{{ -1.f,  1.f }, { 0.f, 1.f }, },
-		{{ -1.f,  1.f }, { 0.f, 1.f }, },
-		{{  1.f, -1.f }, { 1.f, 0.f }, },
-		{{  1.f,  1.f }, { 1.f, 1.f }, },
+		{{  1.f, -1.f }, { maxU, minV }, },
+		{{ -1.f, -1.f }, { minU, minV }, },
+		{{ -1.f,  1.f }, { minU, maxV }, },
+		{{ -1.f,  1.f }, { minU, maxV }, },
+		{{  1.f, -1.f }, { maxU, minV }, },
+		{{  1.f,  1.f }, { maxU, maxV }, },
 	};
 
 	// Vertex buffer.
@@ -1398,27 +1438,36 @@
 	// Descriptor set.
 	const auto descriptorSet = vk::makeDescriptorSet(vkd, device, descriptorPool.get(), descriptorSetLayout.get());
 
-	// Texture sampler.
+	// Texture sampler. When using a solid color, test linear filtering. Linear filtering may incur in a small precission loss, but
+	// it should be minimal and we should get the same color when converting back to the original format. Anisotropy should be
+	// irrelevant too, so it is enabled and set to the maximum level if available.
+	const auto	minMagFilter			= (m_params.solidColor ? vk::VK_FILTER_LINEAR : vk::VK_FILTER_NEAREST);
+	const bool	anisotropySupported		= (vk::getPhysicalDeviceFeatures(vki, physDevice).samplerAnisotropy == VK_TRUE);
+	const bool	anisotropyEnable		= (!unnorm && m_params.solidColor && anisotropySupported);
+	const float	maxAnisotropy			= (anisotropyEnable ? vk::getPhysicalDeviceProperties(vki, physDevice).limits.maxSamplerAnisotropy : 1.0f);
+	const auto	addressMode				= (unnorm ? vk::VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE : vk::VK_SAMPLER_ADDRESS_MODE_REPEAT);
+	const auto	unnormalizedCoordinates	= (unnorm ? VK_TRUE : VK_FALSE);
+
 	const vk::VkSamplerCreateInfo samplerCreateInfo =
 	{
 		vk::VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO,		// VkStructureType		sType;
 		nullptr,										// const void*			pNext;
 		0u,												// VkSamplerCreateFlags	flags;
-		vk::VK_FILTER_NEAREST,							// VkFilter				magFilter;
-		vk::VK_FILTER_NEAREST,							// VkFilter				minFilter;
+		minMagFilter,									// VkFilter				magFilter;
+		minMagFilter,									// VkFilter				minFilter;
 		vk::VK_SAMPLER_MIPMAP_MODE_NEAREST,				// VkSamplerMipmapMode	mipmapMode;
-		vk::VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,		// VkSamplerAddressMode	addressModeU;
-		vk::VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,		// VkSamplerAddressMode	addressModeV;
-		vk::VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,		// VkSamplerAddressMode	addressModeW;
+		addressMode,									// VkSamplerAddressMode	addressModeU;
+		addressMode,									// VkSamplerAddressMode	addressModeV;
+		addressMode,									// VkSamplerAddressMode	addressModeW;
 		0.0f,											// float				mipLodBias;
-		VK_FALSE,										// VkBool32				anisotropyEnable;
-		1.0f,											// float				maxAnisotropy;
+		(anisotropyEnable ? VK_TRUE : VK_FALSE),		// VkBool32				anisotropyEnable;
+		maxAnisotropy,									// float				maxAnisotropy;
 		VK_FALSE,										// VkBool32				compareEnable;
 		vk::VK_COMPARE_OP_NEVER,						// VkCompareOp			compareOp;
 		0.0f,											// float				minLod;
 		0.0f,											// float				maxLod;
-		vk::VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK,			// VkBorderColor		borderColor;
-		(m_params.unnormalizedCoordinates ? VK_TRUE : VK_FALSE),// VkBool32				unnormalizedCoordinates;
+		vk::VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,	// VkBorderColor		borderColor;
+		unnormalizedCoordinates,						// VkBool32				unnormalizedCoordinates;
 	};
 	const auto texSampler = vk::createSampler(vkd, device, &samplerCreateInfo);
 
@@ -1581,7 +1630,7 @@
 	const auto							resultsBufferPtr	= reinterpret_cast<const char*>(resultsBufferAlloc.getHostPtr()) + resultsBufferAlloc.getOffset();
 	const tcu::ConstPixelBufferAccess	resultPixels		{tcuFormat, iImgSize[0], iImgSize[1], 1, resultsBufferPtr};
 
-	const tcu::TextureFormat			diffFormat			{tcu::TextureFormat::RGB, tcu::TextureFormat::UNSIGNED_INT8};
+	const tcu::TextureFormat			diffFormat			{tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8};
 	const auto							diffBytes			= tcu::getPixelSize(diffFormat) * iImgSize[0] * iImgSize[1];
 	std::unique_ptr<deUint8[]>			diffData			{new deUint8[diffBytes]};
 	const tcu::PixelBufferAccess		diffImg				{diffFormat, iImgSize[0], iImgSize[1], 1, diffData.get()};
@@ -1844,10 +1893,33 @@
 		vk::VK_FORMAT_R32_SFLOAT,
 	};
 
-	static const std::vector<std::pair<bool, std::string>> unnormalizedCoordinates =
+	static const struct
 	{
-		{ false,	"normalized_coords"		},
-		{ true,		"unnormalized_coords"	},
+		const bool			unnormalized;
+		const std::string	name;
+		const std::string	desc;
+	} unnormalizedCoordinates[] =
+	{
+		{ false,	"normalized_coords",	"Normalized coordinates"	},
+		{ true,		"unnormalized_coords",	"Unnormalized coordinates"	},
+	};
+
+	static const struct
+	{
+		const tcu::Maybe<float>	offset;
+		const std::string		name;
+		const std::string		desc;
+	} testEdges[] =
+	{
+		{ tcu::nothing<float>(),	"centered",		"Sampling points centered in texel"		},
+		{ tcu::just<float>(-1.0f),	"edge_left",	"Sampling points near left edge"		},
+		{ tcu::just<float>(+1.0f),	"edge_right",	"Sampling points near right edge"		},
+	};
+
+	static const std::vector<std::pair<bool, std::string>> solidColor =
+	{
+		{ false,	"gradient"		},
+		{ true,		"solid_color"	},
 	};
 
 	for (const auto format : formats)
@@ -1857,11 +1929,28 @@
 
 		de::MovePtr<tcu::TestCaseGroup> formatGroup(new tcu::TestCaseGroup(testCtx, formatName.c_str(), description.c_str()));
 
-		for (const auto& unnorm : unnormalizedCoordinates)
+		for (const auto& solid : solidColor)
 		{
-			const ExactSamplingCase::Params	params = { format, unnorm.first };
-			formatGroup->addChild(new ExactSamplingCase{testCtx, unnorm.second, "", params});
+			de::MovePtr<tcu::TestCaseGroup> solidColorGroup(new tcu::TestCaseGroup(testCtx, solid.second.c_str(), ""));
+
+			for (int unIdx = 0; unIdx < DE_LENGTH_OF_ARRAY(unnormalizedCoordinates); ++unIdx)
+			{
+				const auto&						unnorm		= unnormalizedCoordinates[unIdx];
+				de::MovePtr<tcu::TestCaseGroup> coordGroup	(new tcu::TestCaseGroup(testCtx, unnorm.name.c_str(), unnorm.desc.c_str()));
+
+				for (int edgeIdx = 0; edgeIdx < DE_LENGTH_OF_ARRAY(testEdges); ++edgeIdx)
+				{
+					const auto&						edges	= testEdges[edgeIdx];
+					const ExactSamplingCase::Params	params	= { format, unnorm.unnormalized, solid.first, edges.offset };
+					coordGroup->addChild(new ExactSamplingCase{testCtx, edges.name, edges.desc, params});
+				}
+
+				solidColorGroup->addChild(coordGroup.release());
+			}
+
+			formatGroup->addChild(solidColorGroup.release());
 		}
+
 		exactSamplingTests->addChild(formatGroup.release());
 	}
 
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineSpecConstantTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineSpecConstantTests.cpp
index 1793ba6..7cb5511 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineSpecConstantTests.cpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineSpecConstantTests.cpp
@@ -29,6 +29,7 @@
 #include "tcuTestLog.hpp"
 #include "tcuTexture.hpp"
 #include "tcuFormatUtil.hpp"
+#include "tcuFloat.hpp"
 
 #include "gluShaderUtil.hpp"
 
@@ -44,6 +45,8 @@
 #include "deUniquePtr.hpp"
 #include "deStringUtil.hpp"
 
+#include <limits>
+
 namespace vkt
 {
 namespace pipeline
@@ -79,13 +82,18 @@
 	void clear (void) { m_data = 0; }
 };
 
-inline GenericValue makeValueBool32	 (const bool a)		{ return GenericValue(&a, sizeof(a)); }
-inline GenericValue makeValueInt32	 (const deInt32 a)	{ return GenericValue(&a, sizeof(a)); }
-// \note deInt64 not tested
-inline GenericValue makeValueUint32	 (const deUint32 a)	{ return GenericValue(&a, sizeof(a)); }
-// \note deUint64 not tested
-inline GenericValue makeValueFloat32 (const float a)	{ return GenericValue(&a, sizeof(a)); }
-inline GenericValue makeValueFloat64 (const double a)	{ return GenericValue(&a, sizeof(a)); }
+inline GenericValue makeValueBool32	 (const bool a)			{ return GenericValue(&a, sizeof(a)); }
+inline GenericValue makeValueInt8    (const deInt8 a)		{ return GenericValue(&a, sizeof(a)); }
+inline GenericValue makeValueUint8   (const deUint8 a)		{ return GenericValue(&a, sizeof(a)); }
+inline GenericValue makeValueInt16   (const deInt16 a)		{ return GenericValue(&a, sizeof(a)); }
+inline GenericValue makeValueUint16  (const deUint16 a)		{ return GenericValue(&a, sizeof(a)); }
+inline GenericValue makeValueInt32	 (const deInt32 a)		{ return GenericValue(&a, sizeof(a)); }
+inline GenericValue makeValueUint32	 (const deUint32 a)		{ return GenericValue(&a, sizeof(a)); }
+inline GenericValue makeValueInt64   (const deInt64 a)		{ return GenericValue(&a, sizeof(a)); }
+inline GenericValue makeValueUint64  (const deUint64 a)		{ return GenericValue(&a, sizeof(a)); }
+inline GenericValue makeValueFloat16 (const tcu::Float16 a)	{ return GenericValue(&a, sizeof(a)); }
+inline GenericValue makeValueFloat32 (const float a)		{ return GenericValue(&a, sizeof(a)); }
+inline GenericValue makeValueFloat64 (const double a)		{ return GenericValue(&a, sizeof(a)); }
 
 struct SpecConstant
 {
@@ -184,43 +192,49 @@
 	std::string					mainCode;			//!< generic shader code to execute in main (e.g. assignments)
 	std::vector<OffsetValue>	expectedValues;		//!< list of values to check inside the ssbo buffer
 	FeatureFlags				requirements;		//!< features the implementation must support to allow this test to run
+	bool						packData;			//!< whether to tightly pack specialization constant data or not
 };
 
 //! Manages Vulkan structures to pass specialization data.
 class Specialization
 {
 public:
-											Specialization (const std::vector<SpecConstant>& specConstants);
+											Specialization (const std::vector<SpecConstant>& specConstants, bool packData);
 
 	//! Can return NULL if nothing is specialized
 	const VkSpecializationInfo*				getSpecializationInfo (void) const { return m_entries.size() > 0 ? &m_specialization : DE_NULL; }
 
 private:
-	std::vector<GenericValue>				m_data;
+	std::vector<deUint8>					m_data;
 	std::vector<VkSpecializationMapEntry>	m_entries;
 	VkSpecializationInfo					m_specialization;
 };
 
-Specialization::Specialization (const std::vector<SpecConstant>& specConstants)
+Specialization::Specialization (const std::vector<SpecConstant>& specConstants, bool packData)
 {
-	m_data.reserve(specConstants.size());
+	const auto kGenericValueSize = static_cast<deUint32>(sizeof(GenericValue));
+
+	// Reserve memory for the worst case in m_data.
+	m_data.resize(specConstants.size() * kGenericValueSize, std::numeric_limits<deUint8>::max());
 	m_entries.reserve(specConstants.size());
 
-	deUint32 offset = 0;
-	for (std::vector<SpecConstant>::const_iterator it = specConstants.begin(); it != specConstants.end(); ++it)
-		if (it->size != 0)
+	deUint32 offset = 0u;
+	for (const auto& sc : specConstants)
+	{
+		if (sc.size != 0u)
 		{
-			m_data.push_back(it->specValue);
-			m_entries.push_back(makeSpecializationMapEntry(it->specID, offset, it->size));
-			offset += (deUint32)sizeof(GenericValue);
+			deMemcpy(&m_data[offset], &sc.specValue, sc.size);
+			m_entries.push_back(makeSpecializationMapEntry(sc.specID, offset, sc.size));
+			offset += (packData ? sc.size : kGenericValueSize);
 		}
+	}
 
 	if (m_entries.size() > 0)
 	{
 		m_specialization.mapEntryCount = static_cast<deUint32>(m_entries.size());
-		m_specialization.pMapEntries   = &m_entries[0];
-		m_specialization.dataSize	   = sizeof(GenericValue) * m_data.size();
-		m_specialization.pData		   = &m_data[0];
+		m_specialization.pMapEntries   = m_entries.data();
+		m_specialization.dataSize	   = static_cast<deUintptr>(offset);
+		m_specialization.pData		   = m_data.data();
 	}
 	else
 		deMemset(&m_specialization, 0, sizeof(m_specialization));
@@ -291,11 +305,27 @@
 	// Either graphics or compute must be defined, but not both
 	DE_ASSERT(((requiredStages & VK_SHADER_STAGE_ALL_GRAPHICS) != 0) != ((requiredStages & VK_SHADER_STAGE_COMPUTE_BIT) != 0));
 
+	// Extensions needed for some tests.
+	std::ostringstream extStream;
+	if (m_caseDef.requirements & FEATURE_SHADER_INT_64)
+		extStream << "#extension GL_EXT_shader_explicit_arithmetic_types_int64 : require\n";
+	if (m_caseDef.requirements & FEATURE_SHADER_INT_16)
+		extStream << "#extension GL_EXT_shader_explicit_arithmetic_types_int16 : require\n";
+	if (m_caseDef.requirements & FEATURE_SHADER_INT_8)
+		extStream << "#extension GL_EXT_shader_explicit_arithmetic_types_int8 : require\n";
+	if (m_caseDef.requirements & FEATURE_SHADER_FLOAT_16)
+		extStream << "#extension GL_EXT_shader_explicit_arithmetic_types_float16 : require\n";
+	const std::string extensions = extStream.str();
+
+	// This makes glslang avoid the UniformAndStorage* capabilities.
+	const vk::ShaderBuildOptions buildOptions (programCollection.usedVulkanVersion, SPIRV_VERSION_1_3, 0u);
+
 	if (requiredStages & VK_SHADER_STAGE_VERTEX_BIT)
 	{
 		const bool useSpecConst = (m_stage == VK_SHADER_STAGE_VERTEX_BIT);
 		std::ostringstream src;
-		src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_440) << "\n"
+		src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450) << "\n"
+			<< extensions
 			<< "layout(location = 0) in highp vec4 position;\n"
 			<< "\n"
 			<< "out " << s_perVertexBlock << ";\n"
@@ -309,14 +339,15 @@
 			<< "    gl_Position = position;\n"
 			<< "}\n";
 
-		programCollection.glslSources.add("vert") << glu::VertexSource(src.str());
+		programCollection.glslSources.add("vert") << glu::VertexSource(src.str()) << buildOptions;
 	}
 
 	if (requiredStages & VK_SHADER_STAGE_FRAGMENT_BIT)
 	{
 		const bool useSpecConst = (m_stage == VK_SHADER_STAGE_FRAGMENT_BIT);
 		std::ostringstream src;
-		src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_440) << "\n"
+		src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450) << "\n"
+			<< extensions
 			<< "layout(location = 0) out highp vec4 fragColor;\n"
 			<< "\n"
 			<< (useSpecConst ? generateSpecConstantCode(m_caseDef.specConstants) : "")
@@ -328,14 +359,15 @@
 			<< "    fragColor = vec4(1.0, 1.0, 0.0, 1.0);\n"
 			<< "}\n";
 
-		programCollection.glslSources.add("frag") << glu::FragmentSource(src.str());
+		programCollection.glslSources.add("frag") << glu::FragmentSource(src.str()) << buildOptions;
 	}
 
 	if (requiredStages & VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT)
 	{
 		const bool useSpecConst = (m_stage == VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT);
 		std::ostringstream src;
-		src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_440) << "\n"
+		src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450) << "\n"
+			<< extensions
 			<< "layout(vertices = 3) out;\n"
 			<< "\n"
 			<< "in " << s_perVertexBlock << " gl_in[gl_MaxPatchVertices];\n"
@@ -358,14 +390,15 @@
 			<< "    }\n"
 			<< "}\n";
 
-		programCollection.glslSources.add("tesc") << glu::TessellationControlSource(src.str());
+		programCollection.glslSources.add("tesc") << glu::TessellationControlSource(src.str()) << buildOptions;
 	}
 
 	if (requiredStages & VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT)
 	{
 		const bool useSpecConst = (m_stage == VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT);
 		std::ostringstream src;
-		src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_440) << "\n"
+		src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450) << "\n"
+			<< extensions
 			<< "layout(triangles, equal_spacing, ccw) in;\n"
 			<< "\n"
 			<< "in " << s_perVertexBlock << " gl_in[gl_MaxPatchVertices];\n"
@@ -384,14 +417,15 @@
 			<< "    gl_Position = vec4(p0 + p1 + p2, 1.0);\n"
 			<< "}\n";
 
-		programCollection.glslSources.add("tese") << glu::TessellationEvaluationSource(src.str());
+		programCollection.glslSources.add("tese") << glu::TessellationEvaluationSource(src.str()) << buildOptions;
 	}
 
 	if (requiredStages & VK_SHADER_STAGE_GEOMETRY_BIT)
 	{
 		const bool useSpecConst = (m_stage == VK_SHADER_STAGE_GEOMETRY_BIT);
 		std::ostringstream src;
-		src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_440) << "\n"
+		src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450) << "\n"
+			<< extensions
 			<< "layout(triangles) in;\n"
 			<< "layout(triangle_strip, max_vertices = 3) out;\n"
 			<< "\n"
@@ -417,13 +451,14 @@
 			<< "    EndPrimitive();\n"
 			<< "}\n";
 
-		programCollection.glslSources.add("geom") << glu::GeometrySource(src.str());
+		programCollection.glslSources.add("geom") << glu::GeometrySource(src.str()) << buildOptions;
 	}
 
 	if (requiredStages & VK_SHADER_STAGE_COMPUTE_BIT)
 	{
 		std::ostringstream src;
-		src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_440) << "\n"
+		src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450) << "\n"
+			<< extensions
 			// Don't define work group size, use the default or specialization constants
 			<< "\n"
 			<< generateSpecConstantCode(m_caseDef.specConstants)
@@ -434,7 +469,7 @@
 			<< m_caseDef.mainCode
 			<< "}\n";
 
-		programCollection.glslSources.add("comp") << glu::ComputeSource(src.str());
+		programCollection.glslSources.add("comp") << glu::ComputeSource(src.str()) << buildOptions;
 	}
 }
 
@@ -444,7 +479,8 @@
 									ComputeTestInstance	(Context&							context,
 														 const VkDeviceSize					ssboSize,
 														 const std::vector<SpecConstant>&	specConstants,
-														 const std::vector<OffsetValue>&	expectedValues);
+														 const std::vector<OffsetValue>&	expectedValues,
+														 bool								packData);
 
 	tcu::TestStatus					iterate				(void);
 
@@ -452,16 +488,19 @@
 	const VkDeviceSize				m_ssboSize;
 	const std::vector<SpecConstant>	m_specConstants;
 	const std::vector<OffsetValue>	m_expectedValues;
+	const bool						m_packData;
 };
 
 ComputeTestInstance::ComputeTestInstance (Context&							context,
 										  const VkDeviceSize				ssboSize,
 										  const std::vector<SpecConstant>&	specConstants,
-										  const std::vector<OffsetValue>&	expectedValues)
+										  const std::vector<OffsetValue>&	expectedValues,
+										  bool								packData)
 	: TestInstance		(context)
 	, m_ssboSize		(ssboSize)
 	, m_specConstants	(specConstants)
 	, m_expectedValues	(expectedValues)
+	, m_packData		(packData)
 {
 }
 
@@ -494,7 +533,7 @@
 
 	// Specialization
 
-	const Specialization        specialization (m_specConstants);
+	const Specialization        specialization (m_specConstants, m_packData);
 	const VkSpecializationInfo* pSpecInfo      = specialization.getSpecializationInfo();
 
 	// Pipeline
@@ -541,7 +580,8 @@
 														  const VkDeviceSize				ssboSize,
 														  const std::vector<SpecConstant>&	specConstants,
 														  const std::vector<OffsetValue>&	expectedValues,
-														  const VkShaderStageFlagBits		stage);
+														  const VkShaderStageFlagBits		stage,
+														  bool								packData);
 
 	tcu::TestStatus					iterate				 (void);
 
@@ -550,18 +590,21 @@
 	const std::vector<SpecConstant>	m_specConstants;
 	const std::vector<OffsetValue>	m_expectedValues;
 	const VkShaderStageFlagBits		m_stage;
+	const bool						m_packData;
 };
 
 GraphicsTestInstance::GraphicsTestInstance (Context&							context,
 											const VkDeviceSize					ssboSize,
 											const std::vector<SpecConstant>&	specConstants,
 											const std::vector<OffsetValue>&		expectedValues,
-											const VkShaderStageFlagBits			stage)
+											const VkShaderStageFlagBits			stage,
+											bool								packData)
 	: TestInstance		(context)
 	, m_ssboSize		(ssboSize)
 	, m_specConstants	(specConstants)
 	, m_expectedValues	(expectedValues)
 	, m_stage			(stage)
+	, m_packData		(packData)
 {
 }
 
@@ -619,7 +662,7 @@
 
 	// Specialization
 
-	const Specialization        specialization (m_specConstants);
+	const Specialization        specialization (m_specConstants, m_packData);
 	const VkSpecializationInfo* pSpecInfo      = specialization.getSpecializationInfo();
 
 	// Pipeline
@@ -727,9 +770,9 @@
 TestInstance* SpecConstantTest::createInstance (Context& context) const
 {
 	if (m_stage & VK_SHADER_STAGE_COMPUTE_BIT)
-		return new ComputeTestInstance(context, m_caseDef.ssboSize, m_caseDef.specConstants, m_caseDef.expectedValues);
+		return new ComputeTestInstance(context, m_caseDef.ssboSize, m_caseDef.specConstants, m_caseDef.expectedValues, m_caseDef.packData);
 	else
-		return new GraphicsTestInstance(context, m_caseDef.ssboSize, m_caseDef.specConstants, m_caseDef.expectedValues, m_stage);
+		return new GraphicsTestInstance(context, m_caseDef.ssboSize, m_caseDef.specConstants, m_caseDef.expectedValues, m_stage, m_caseDef.packData);
 }
 
 //! Declare specialization constants but use them with default values.
@@ -737,7 +780,7 @@
 {
 	de::MovePtr<tcu::TestCaseGroup> testGroup (new tcu::TestCaseGroup(testCtx, "default_value", "use default constant value"));
 
-	const CaseDefinition defs[] =
+	CaseDefinition defs[] =
 	{
 		{
 			"bool",
@@ -752,6 +795,71 @@
 			makeVector(OffsetValue(4, 0, makeValueBool32(true)),
 					   OffsetValue(4, 4, makeValueBool32(false))),
 			(FeatureFlags)0,
+			false,
+		},
+		{
+			"int8",
+			makeVector(SpecConstant(1u, "layout(constant_id = ${ID}) const int8_t sc0 = int8_t(1);"),
+					   SpecConstant(2u, "layout(constant_id = ${ID}) const int8_t sc1 = int8_t(-2);")),
+			2,
+			"    int8_t r0;\n"
+			"    int8_t r1;\n",
+			"",
+			"    int8_t aux = sc0 + sc1;\n"
+			"    sb_out.r0 = sc0;\n"
+			"    sb_out.r1 = sc1;\n",
+			makeVector(OffsetValue(1, 0, makeValueInt8(1)),
+					   OffsetValue(1, 1, makeValueInt8(-2))),
+			FEATURE_SHADER_INT_8,
+			false,
+		},
+		{
+			"uint8",
+			makeVector(SpecConstant(1u, "layout(constant_id = ${ID}) const uint8_t sc0 = int8_t(15);"),
+					   SpecConstant(2u, "layout(constant_id = ${ID}) const uint8_t sc1 = int8_t(43);")),
+			2,
+			"    uint8_t r0;\n"
+			"    uint8_t r1;\n",
+			"",
+			"    uint8_t aux = sc0 + sc1;\n"
+			"    sb_out.r0 = sc0;\n"
+			"    sb_out.r1 = sc1;\n",
+			makeVector(OffsetValue(1, 0, makeValueUint8(15)),
+					   OffsetValue(1, 1, makeValueUint8(43))),
+			FEATURE_SHADER_INT_8,
+			false,
+		},
+		{
+			"int16",
+			makeVector(SpecConstant(1u, "layout(constant_id = ${ID}) const int16_t sc0 = 20000s;", 2, makeValueInt16(32000)),
+					   SpecConstant(2u, "layout(constant_id = ${ID}) const int16_t sc1 = -20000s;")),
+			4,
+			"    int16_t r0;\n"
+			"    int16_t r1;\n",
+			"",
+			"    int16_t aux = sc0 + sc1;\n"
+			"    sb_out.r0 = sc0;\n"
+			"    sb_out.r1 = sc1;\n",
+			makeVector(OffsetValue(2, 0, makeValueInt16(32000)),
+					   OffsetValue(2, 2, makeValueInt16(-20000))),
+			FEATURE_SHADER_INT_16,
+			false,
+		},
+		{
+			"uint16",
+			makeVector(SpecConstant(1u, "layout(constant_id = ${ID}) const uint16_t sc0 = 64000us;"),
+					   SpecConstant(2u, "layout(constant_id = ${ID}) const uint16_t sc1 = 51829us;")),
+			4,
+			"    uint16_t r0;\n"
+			"    uint16_t r1;\n",
+			"",
+			"    uint16_t aux = sc0 + sc1;\n"
+			"    sb_out.r0 = sc0;\n"
+			"    sb_out.r1 = sc1;\n",
+			makeVector(OffsetValue(2, 0, makeValueUint16(64000)),
+					   OffsetValue(2, 2, makeValueUint16(51829))),
+			FEATURE_SHADER_INT_16,
+			false,
 		},
 		{
 			"int",
@@ -766,6 +874,7 @@
 			makeVector(OffsetValue(4, 0, makeValueInt32(-3)),
 					   OffsetValue(4, 4, makeValueInt32(17))),
 			(FeatureFlags)0,
+			false,
 		},
 		{
 			"uint",
@@ -776,6 +885,53 @@
 			"    sb_out.r0 = sc0;\n",
 			makeVector(OffsetValue(4, 0, makeValueUint32(42u))),
 			(FeatureFlags)0,
+			false,
+		},
+		{
+			"int64",
+			makeVector(SpecConstant(1u, "layout(constant_id = ${ID}) const int64_t sc0 = 9141386509785772560l;"),
+					   SpecConstant(2u, "layout(constant_id = ${ID}) const int64_t sc1 = -9141386509785772560l;")),
+			16,
+			"    int64_t r0;\n"
+			"    int64_t r1;\n",
+			"",
+			"    sb_out.r0 = sc0;\n"
+			"    sb_out.r1 = sc1;\n",
+			makeVector(OffsetValue(8, 0, makeValueInt64(9141386509785772560ll)),
+					   OffsetValue(8, 8, makeValueInt64(-9141386509785772560ll))),
+			FEATURE_SHADER_INT_64,
+			false,
+		},
+		{
+			"uint64",
+			makeVector(SpecConstant(1u, "layout(constant_id = ${ID}) const uint64_t sc0 = 18364758544493064720ul;"),
+					   SpecConstant(2u, "layout(constant_id = ${ID}) const uint64_t sc1 = 17298946664678735070ul;")),
+			16,
+			"    uint64_t r0;\n"
+			"    uint64_t r1;\n",
+			"",
+			"    sb_out.r0 = sc0;\n"
+			"    sb_out.r1 = sc1;\n",
+			makeVector(OffsetValue(8, 0, makeValueUint64(18364758544493064720ull)),
+					   OffsetValue(8, 8, makeValueUint64(17298946664678735070ull))),
+			FEATURE_SHADER_INT_64,
+			false,
+		},
+		{
+			"float16",
+			makeVector(SpecConstant(1u, "layout(constant_id = ${ID}) const float16_t sc0 = 7.5hf;"),
+					   SpecConstant(2u, "layout(constant_id = ${ID}) const float16_t sc1 = 1.125hf;")),
+			4,
+			"    float16_t r0;\n"
+			"    float16_t r1;\n",
+			"",
+			"    float16_t aux = sc0 + sc1;\n"
+			"    sb_out.r0 = sc0;\n"
+			"    sb_out.r1 = sc1;\n",
+			makeVector(OffsetValue(2, 0, makeValueFloat16(tcu::Float16(7.5))),
+					   OffsetValue(2, 2, makeValueFloat16(tcu::Float16(1.125)))),
+			FEATURE_SHADER_FLOAT_16,
+			false,
 		},
 		{
 			"float",
@@ -786,6 +942,7 @@
 			"    sb_out.r0 = sc0;\n",
 			makeVector(OffsetValue(4, 0, makeValueFloat32(7.5f))),
 			(FeatureFlags)0,
+			false,
 		},
 		{
 			"double",
@@ -796,11 +953,22 @@
 			"    sb_out.r0 = sc0;\n",
 			makeVector(OffsetValue(8, 0, makeValueFloat64(2.75))),
 			FEATURE_SHADER_FLOAT_64,
+			false,
 		},
 	};
 
-	for (int defNdx = 0; defNdx < DE_LENGTH_OF_ARRAY(defs); ++defNdx)
-		testGroup->addChild(new SpecConstantTest(testCtx, shaderStage, defs[defNdx]));
+	for (int i = 0; i < 2; ++i)
+	{
+		const bool packData = (i > 0);
+		for (int defNdx = 0; defNdx < DE_LENGTH_OF_ARRAY(defs); ++defNdx)
+		{
+			auto& def = defs[defNdx];
+			def.packData = packData;
+			if (packData)
+				def.name += "_packed";
+			testGroup->addChild(new SpecConstantTest(testCtx, shaderStage, def));
+		}
+	}
 
 	return testGroup.release();
 }
@@ -810,7 +978,7 @@
 {
 	de::MovePtr<tcu::TestCaseGroup> testGroup (new tcu::TestCaseGroup(testCtx, "basic", "specialize a constant"));
 
-	const CaseDefinition defs[] =
+	CaseDefinition defs[] =
 	{
 		{
 			"bool",
@@ -833,6 +1001,135 @@
 					   OffsetValue(4,  8, makeValueBool32(false)),
 					   OffsetValue(4, 12, makeValueBool32(true))),
 			(FeatureFlags)0,
+			false,
+		},
+		{
+			"int8",
+			makeVector(SpecConstant(1u, "layout(constant_id = ${ID}) const int8_t sc0 = int8_t(1);", 1, makeValueInt8(127)),
+					   SpecConstant(2u, "layout(constant_id = ${ID}) const int8_t sc1 = int8_t(-2);")),
+			2,
+			"    int8_t r0;\n"
+			"    int8_t r1;\n",
+			"",
+			"    int8_t aux = sc0 + sc1;\n"
+			"    sb_out.r0 = sc0;\n"
+			"    sb_out.r1 = sc1;\n",
+			makeVector(OffsetValue(1, 0, makeValueInt8(127)),
+					   OffsetValue(1, 1, makeValueInt8(-2))),
+			FEATURE_SHADER_INT_8,
+			false,
+		},
+		{
+			"int8_2",
+			makeVector(SpecConstant(1u, "layout(constant_id = ${ID}) const int8_t sc0 = int8_t(123);", 1, makeValueInt8(65)),
+					   SpecConstant(2u, "layout(constant_id = ${ID}) const int8_t sc1 = int8_t(-33);", 1, makeValueInt8(-128))),
+			2,
+			"    int8_t r0;\n"
+			"    int8_t r1;\n",
+			"",
+			"    int8_t aux = sc0 + sc1;\n"
+			"    sb_out.r0 = sc0;\n"
+			"    sb_out.r1 = sc1;\n",
+			makeVector(OffsetValue(1, 0, makeValueInt8(65)),
+					   OffsetValue(1, 1, makeValueInt8(-128))),
+			FEATURE_SHADER_INT_8,
+			false,
+		},
+		{
+			"uint8",
+			makeVector(SpecConstant(1u, "layout(constant_id = ${ID}) const uint8_t sc0 = int8_t(15);", 1, makeValueUint8(254)),
+					   SpecConstant(2u, "layout(constant_id = ${ID}) const uint8_t sc1 = int8_t(43);")),
+			2,
+			"    uint8_t r0;\n"
+			"    uint8_t r1;\n",
+			"",
+			"    uint8_t aux = sc0 + sc1;\n"
+			"    sb_out.r0 = sc0;\n"
+			"    sb_out.r1 = sc1;\n",
+			makeVector(OffsetValue(1, 0, makeValueUint8(254)),
+					   OffsetValue(1, 1, makeValueUint8(43))),
+			FEATURE_SHADER_INT_8,
+			false,
+		},
+		{
+			"uint8_2",
+			makeVector(SpecConstant(1u, "layout(constant_id = ${ID}) const uint8_t sc0 = int8_t(99);", 1, makeValueUint8(254)),
+					   SpecConstant(2u, "layout(constant_id = ${ID}) const uint8_t sc1 = int8_t(81);", 1, makeValueUint8(255))),
+			2,
+			"    uint8_t r0;\n"
+			"    uint8_t r1;\n",
+			"",
+			"    uint8_t aux = sc0 + sc1;\n"
+			"    sb_out.r0 = sc0;\n"
+			"    sb_out.r1 = sc1;\n",
+			makeVector(OffsetValue(1, 0, makeValueUint8(254)),
+					   OffsetValue(1, 1, makeValueUint8(255))),
+			FEATURE_SHADER_INT_8,
+			false,
+		},
+		{
+			"int16",
+			makeVector(SpecConstant(1u, "layout(constant_id = ${ID}) const int16_t sc0 = 20000s;", 2, makeValueInt16(32000)),
+					   SpecConstant(2u, "layout(constant_id = ${ID}) const int16_t sc1 = -20000s;")),
+			4,
+			"    int16_t r0;\n"
+			"    int16_t r1;\n",
+			"",
+			"    int16_t aux = sc0 + sc1;\n"
+			"    sb_out.r0 = sc0;\n"
+			"    sb_out.r1 = sc1;\n",
+			makeVector(OffsetValue(2, 0, makeValueInt16(32000)),
+					   OffsetValue(2, 2, makeValueInt16(-20000))),
+			FEATURE_SHADER_INT_16,
+			false,
+		},
+		{
+			"int16_2",
+			makeVector(SpecConstant(1u, "layout(constant_id = ${ID}) const int16_t sc0 = 20000s;", 2, makeValueInt16(32000)),
+					   SpecConstant(2u, "layout(constant_id = ${ID}) const int16_t sc1 = -20000s;", 2, makeValueInt16(-21000))),
+			4,
+			"    int16_t r0;\n"
+			"    int16_t r1;\n",
+			"",
+			"    int16_t aux = sc0 + sc1;\n"
+			"    sb_out.r0 = sc0;\n"
+			"    sb_out.r1 = sc1;\n",
+			makeVector(OffsetValue(2, 0, makeValueInt16(32000)),
+					   OffsetValue(2, 2, makeValueInt16(-21000))),
+			FEATURE_SHADER_INT_16,
+			false,
+		},
+		{
+			"uint16",
+			makeVector(SpecConstant(1u, "layout(constant_id = ${ID}) const uint16_t sc0 = 64000us;", 2, makeValueUint16(65000)),
+					   SpecConstant(2u, "layout(constant_id = ${ID}) const uint16_t sc1 = 51829us;")),
+			4,
+			"    uint16_t r0;\n"
+			"    uint16_t r1;\n",
+			"",
+			"    uint16_t aux = sc0 + sc1;\n"
+			"    sb_out.r0 = sc0;\n"
+			"    sb_out.r1 = sc1;\n",
+			makeVector(OffsetValue(2, 0, makeValueUint16(65000)),
+					   OffsetValue(2, 2, makeValueUint16(51829))),
+			FEATURE_SHADER_INT_16,
+			false,
+		},
+		{
+			"uint16_2",
+			makeVector(SpecConstant(1u, "layout(constant_id = ${ID}) const uint16_t sc0 = 64000us;", 2, makeValueUint16(65000)),
+					   SpecConstant(2u, "layout(constant_id = ${ID}) const uint16_t sc1 = 51829us;", 2, makeValueUint16(63000))),
+			4,
+			"    uint16_t r0;\n"
+			"    uint16_t r1;\n",
+			"",
+			"    uint16_t aux = sc0 + sc1;\n"
+			"    sb_out.r0 = sc0;\n"
+			"    sb_out.r1 = sc1;\n",
+			makeVector(OffsetValue(2, 0, makeValueUint16(65000)),
+					   OffsetValue(2, 2, makeValueUint16(63000))),
+			FEATURE_SHADER_INT_16,
+			false,
 		},
 		{
 			"int",
@@ -851,6 +1148,7 @@
 					   OffsetValue(4, 4, makeValueInt32(91)),
 					   OffsetValue(4, 8, makeValueInt32(-15))),
 			(FeatureFlags)0,
+			false,
 		},
 		{
 			"uint",
@@ -865,6 +1163,123 @@
 			makeVector(OffsetValue(4, 0, makeValueUint32(97u)),
 					   OffsetValue(4, 4, makeValueUint32(7u))),
 			(FeatureFlags)0,
+			false,
+		},
+		{
+			"uint_2",
+			makeVector(SpecConstant(1u, "layout(constant_id = ${ID}) const uint sc0 = 305419896u;", 4, makeValueUint32(1985229328u)),
+					   SpecConstant(2u, "layout(constant_id = ${ID}) const uint sc1 = 591751049u;"),
+					   SpecConstant(3u, "layout(constant_id = ${ID}) const uint sc2 = 878082202u;", 4, makeValueUint32(1698898186u))),
+			12,
+			"    uint r0;\n"
+			"    uint r1;\n"
+			"    uint r2;\n",
+			"",
+			"    sb_out.r0 = sc0;\n"
+			"    sb_out.r1 = sc1;\n"
+			"    sb_out.r2 = sc2;\n",
+			makeVector(OffsetValue(4, 0, makeValueUint32(1985229328u)),
+					   OffsetValue(4, 4, makeValueUint32(591751049u)),
+					   OffsetValue(4, 8, makeValueUint32(1698898186u))),
+			(FeatureFlags)0,
+			false,
+		},
+		{
+			"int64",
+			makeVector(SpecConstant(1u, "layout(constant_id = ${ID}) const int64_t sc0 = 9141386509785772560l;", 8, makeValueInt64(9137147825770275585ll)),
+					   SpecConstant(2u, "layout(constant_id = ${ID}) const int64_t sc1 = -9141386509785772560l;")),
+			16,
+			"    int64_t r0;\n"
+			"    int64_t r1;\n",
+			"",
+			"    sb_out.r0 = sc0;\n"
+			"    sb_out.r1 = sc1;\n",
+			makeVector(OffsetValue(8, 0, makeValueInt64(9137147825770275585ll)),
+					   OffsetValue(8, 8, makeValueInt64(-9141386509785772560ll))),
+			FEATURE_SHADER_INT_64,
+			false,
+		},
+		{
+			"int64_2",
+			makeVector(SpecConstant(1u, "layout(constant_id = ${ID}) const int64_t sc0 = 9141386509785772560l;", 8, makeValueInt64(9137147825770275585ll)),
+					   SpecConstant(2u, "layout(constant_id = ${ID}) const int64_t sc1 = -9141386509785772560l;", 8, makeValueInt64(-9137164382869201665ll))),
+			16,
+			"    int64_t r0;\n"
+			"    int64_t r1;\n",
+			"",
+			"    sb_out.r0 = sc0;\n"
+			"    sb_out.r1 = sc1;\n",
+			makeVector(OffsetValue(8, 0, makeValueInt64(9137147825770275585ll)),
+					   OffsetValue(8, 8, makeValueInt64(-9137164382869201665ll))),
+			FEATURE_SHADER_INT_64,
+			false,
+		},
+		{
+			"uint64",
+			makeVector(SpecConstant(1u, "layout(constant_id = ${ID}) const uint64_t sc0 = 18364758544493064720ul;", 8, makeValueUint64(17279655951921914625ull)),
+					   SpecConstant(2u, "layout(constant_id = ${ID}) const uint64_t sc1 = 17298946664678735070ul;")),
+			16,
+			"    uint64_t r0;\n"
+			"    uint64_t r1;\n",
+			"",
+			"    sb_out.r0 = sc0;\n"
+			"    sb_out.r1 = sc1;\n",
+			makeVector(OffsetValue(8, 0, makeValueUint64(17279655951921914625ull)),
+					   OffsetValue(8, 8, makeValueUint64(17298946664678735070ull))),
+			FEATURE_SHADER_INT_64,
+			false,
+		},
+		{
+			"uint64_2",
+			makeVector(SpecConstant(1u, "layout(constant_id = ${ID}) const uint64_t sc0 = 18364758544493064720ul;", 8, makeValueUint64(17279655951921914625ull)),
+					   SpecConstant(2u, "layout(constant_id = ${ID}) const uint64_t sc1 = 17298946664678735070ul;", 8, makeValueUint64(17270123250533606145ull))),
+			16,
+			"    uint64_t r0;\n"
+			"    uint64_t r1;\n",
+			"",
+			"    sb_out.r0 = sc0;\n"
+			"    sb_out.r1 = sc1;\n",
+			makeVector(OffsetValue(8, 0, makeValueUint64(17279655951921914625ull)),
+					   OffsetValue(8, 8, makeValueUint64(17270123250533606145ull))),
+			FEATURE_SHADER_INT_64,
+			false,
+		},
+		// We create some floating point values below as unsigned integers to make sure all bytes are set to different values, avoiding special patterns and denormals.
+		{
+			"float16",
+			makeVector(SpecConstant(1u, "layout(constant_id = ${ID}) const float16_t sc0 = 7.5hf;", 2, makeValueFloat16(tcu::Float16(15.75))),
+					   SpecConstant(2u, "layout(constant_id = ${ID}) const float16_t sc1 = 1.125hf;")),
+			4,
+			"    float16_t r0;\n"
+			"    float16_t r1;\n",
+			"",
+			"    float16_t aux = sc0 + sc1;\n"
+			"    sb_out.r0 = sc0;\n"
+			"    sb_out.r1 = sc1;\n",
+			makeVector(OffsetValue(2, 0, makeValueFloat16(tcu::Float16(15.75))),
+					   OffsetValue(2, 2, makeValueFloat16(tcu::Float16(1.125)))),
+			FEATURE_SHADER_FLOAT_16,
+			false,
+		},
+		{
+			"float16_2",
+			makeVector(SpecConstant(1u, "layout(constant_id = ${ID}) const float16_t sc0 = 7.5hf;", 2, makeValueUint16(0x0123u)),
+					   SpecConstant(2u, "layout(constant_id = ${ID}) const float16_t sc1 = 1.125hf;"),
+					   SpecConstant(3u, "layout(constant_id = ${ID}) const float16_t sc2 = 1.125hf;", 2, makeValueUint16(0xFEDCu))),
+			6,
+			"    float16_t r0;\n"
+			"    float16_t r1;\n"
+			"    float16_t r2;\n",
+			"",
+			"    float16_t aux = sc0 + sc1;\n"
+			"    sb_out.r0 = sc0;\n"
+			"    sb_out.r1 = sc1;\n"
+			"    sb_out.r2 = sc2;\n",
+			makeVector(OffsetValue(2, 0, makeValueUint16(0x0123u)),
+					   OffsetValue(2, 2, makeValueFloat16(tcu::Float16(1.125))),
+					   OffsetValue(2, 4, makeValueUint16(0xFEDCu))),
+			FEATURE_SHADER_FLOAT_16,
+			false,
 		},
 		{
 			"float",
@@ -879,10 +1294,30 @@
 			makeVector(OffsetValue(4, 0, makeValueFloat32(15.75f)),
 					   OffsetValue(4, 4, makeValueFloat32(1.125f))),
 			(FeatureFlags)0,
+			false,
+		},
+		{
+			"float_2",
+			makeVector(SpecConstant(1u, "layout(constant_id = ${ID}) const float sc0 = 7.5;", 4, makeValueUint32(0x01234567u)),
+					   SpecConstant(2u, "layout(constant_id = ${ID}) const float sc1 = 1.125;"),
+					   SpecConstant(3u, "layout(constant_id = ${ID}) const float sc2 = 1.125;", 4, makeValueUint32(0xfedcba98u))),
+			12,
+			"    float r0;\n"
+			"    float r1;\n"
+			"    float r2;\n",
+			"",
+			"    sb_out.r0 = sc0;\n"
+			"    sb_out.r1 = sc1;\n"
+			"    sb_out.r2 = sc2;\n",
+			makeVector(OffsetValue(4, 0, makeValueUint32(0x01234567u)),
+					   OffsetValue(4, 4, makeValueFloat32(1.125f)),
+					   OffsetValue(4, 8, makeValueUint32(0xfedcba98u))),
+			(FeatureFlags)0,
+			false,
 		},
 		{
 			"double",
-			makeVector(SpecConstant(1u, "layout(constant_id = ${ID}) const double sc0 = 2.75LF;", 8, makeValueFloat64(22.5)),
+			makeVector(SpecConstant(1u, "layout(constant_id = ${ID}) const double sc0 = 2.75LF;", 8, makeValueUint64(0xFEDCBA9876543210ull)),
 					   SpecConstant(2u, "layout(constant_id = ${ID}) const double sc1 = 9.25LF;")),
 			16,
 			"    double r0;\n"
@@ -890,14 +1325,98 @@
 			"",
 			"    sb_out.r0 = sc0;\n"
 			"    sb_out.r1 = sc1;\n",
-			makeVector(OffsetValue(8, 0, makeValueFloat64(22.5)),
+			makeVector(OffsetValue(8, 0, makeValueUint64(0xFEDCBA9876543210ull)),
 					   OffsetValue(8, 8, makeValueFloat64(9.25))),
 			FEATURE_SHADER_FLOAT_64,
+			false,
+		},
+		{
+			"double_2",
+			makeVector(SpecConstant(1u, "layout(constant_id = ${ID}) const double sc0 = 2.75LF;", 8, makeValueUint64(0xFEDCBA9876543210ull)),
+					   SpecConstant(2u, "layout(constant_id = ${ID}) const double sc1 = 9.25LF;", 8, makeValueUint64(0xEFCDAB8967452301ull))),
+			16,
+			"    double r0;\n"
+			"    double r1;\n",
+			"",
+			"    sb_out.r0 = sc0;\n"
+			"    sb_out.r1 = sc1;\n",
+			makeVector(OffsetValue(8, 0, makeValueUint64(0xFEDCBA9876543210ull)),
+					   OffsetValue(8, 8, makeValueUint64(0xEFCDAB8967452301ull))),
+			FEATURE_SHADER_FLOAT_64,
+			false,
+		},
+		{
+			"mixed",
+			makeVector(
+				SpecConstant(1u, "layout(constant_id = ${ID}) const uint8_t  sc0 = uint8_t  (0);", 1, makeValueUint8(0x98)),
+				SpecConstant(2u, "layout(constant_id = ${ID}) const uint16_t sc1 = uint16_t (0);", 2, makeValueUint16(0x9876)),
+				SpecConstant(3u, "layout(constant_id = ${ID}) const uint     sc2 = uint     (0);", 4, makeValueUint32(0xba987654u)),
+				SpecConstant(4u, "layout(constant_id = ${ID}) const uint64_t sc3 = uint64_t (0);", 8, makeValueUint64(0xfedcba9876543210ull))),
+			8+4+2+1,
+			"    uint64_t r0;\n"
+			"    uint     r1;\n"
+			"    uint16_t r2;\n"
+			"    uint8_t  r3;\n",
+			"",
+			"    uint64_t i0 = sc3;\n"
+			"    uint     i1 = sc2;\n"
+			"    uint16_t i2 = sc1;\n"
+			"    uint8_t  i3 = sc0;\n"
+			"    sb_out.r0 = i0;\n"
+			"    sb_out.r1 = i1;\n"
+			"    sb_out.r2 = i2;\n"
+			"    sb_out.r3 = i3;\n",
+			makeVector(
+				OffsetValue(8, 0, makeValueUint64(0xfedcba9876543210ull)),
+				OffsetValue(4, 8, makeValueUint32(0xba987654u)),
+				OffsetValue(2, 12, makeValueUint16(0x9876)),
+				OffsetValue(1, 14, makeValueUint8(0x98))),
+			(FEATURE_SHADER_INT_8 | FEATURE_SHADER_INT_16 | FEATURE_SHADER_INT_64),
+			false,
+		},
+		{
+			"mixed_reversed",
+			makeVector(
+				SpecConstant(1u, "layout(constant_id = ${ID}) const uint64_t sc3 = uint64_t (0);", 8, makeValueUint64(0xfedcba9876543210ull)),
+				SpecConstant(2u, "layout(constant_id = ${ID}) const uint     sc2 = uint     (0);", 4, makeValueUint32(0xba987654u)),
+				SpecConstant(3u, "layout(constant_id = ${ID}) const uint16_t sc1 = uint16_t (0);", 2, makeValueUint16(0x9876)),
+				SpecConstant(4u, "layout(constant_id = ${ID}) const uint8_t  sc0 = uint8_t  (0);", 1, makeValueUint8(0x98))),
+			8+4+2+1,
+			"    uint64_t r0;\n"
+			"    uint     r1;\n"
+			"    uint16_t r2;\n"
+			"    uint8_t  r3;\n",
+			"",
+			"    uint64_t i0 = sc3;\n"
+			"    uint     i1 = sc2;\n"
+			"    uint16_t i2 = sc1;\n"
+			"    uint8_t  i3 = sc0;\n"
+			"    sb_out.r0 = i0;\n"
+			"    sb_out.r1 = i1;\n"
+			"    sb_out.r2 = i2;\n"
+			"    sb_out.r3 = i3;\n",
+			makeVector(
+				OffsetValue(8, 0, makeValueUint64(0xfedcba9876543210ull)),
+				OffsetValue(4, 8, makeValueUint32(0xba987654u)),
+				OffsetValue(2, 12, makeValueUint16(0x9876)),
+				OffsetValue(1, 14, makeValueUint8(0x98))),
+			(FEATURE_SHADER_INT_8 | FEATURE_SHADER_INT_16 | FEATURE_SHADER_INT_64),
+			false,
 		},
 	};
 
-	for (int defNdx = 0; defNdx < DE_LENGTH_OF_ARRAY(defs); ++defNdx)
-		testGroup->addChild(new SpecConstantTest(testCtx, shaderStage, defs[defNdx]));
+	for (int i = 0; i < 2; ++i)
+	{
+		const bool packData = (i > 0);
+		for (int defNdx = 0; defNdx < DE_LENGTH_OF_ARRAY(defs); ++defNdx)
+		{
+			auto& def = defs[defNdx];
+			def.packData = packData;
+			if (packData)
+				def.name += "_packed";
+			testGroup->addChild(new SpecConstantTest(testCtx, shaderStage, def));
+		}
+	}
 
 	return testGroup.release();
 }
@@ -937,6 +1456,7 @@
 					   OffsetValue(4,  8, makeValueUint32(1u)),
 					   OffsetValue(4, 12, makeValueUint32(7u))),
 			(FeatureFlags)0,
+			false,
 		},
 		{
 			"y",
@@ -947,6 +1467,7 @@
 					   OffsetValue(4,  8, makeValueUint32(1u)),
 					   OffsetValue(4, 12, makeValueUint32(5u))),
 			(FeatureFlags)0,
+			false,
 		},
 		{
 			"z",
@@ -957,6 +1478,7 @@
 					   OffsetValue(4,  8, makeValueUint32(3u)),
 					   OffsetValue(4, 12, makeValueUint32(3u))),
 			(FeatureFlags)0,
+			false,
 		},
 		{
 			"xy",
@@ -968,6 +1490,7 @@
 					   OffsetValue(4,  8, makeValueUint32(1u)),
 					   OffsetValue(4, 12, makeValueUint32(6u * 4u))),
 			(FeatureFlags)0,
+			false,
 		},
 		{
 			"xz",
@@ -979,6 +1502,7 @@
 					   OffsetValue(4,  8, makeValueUint32(9u)),
 					   OffsetValue(4, 12, makeValueUint32(3u * 9u))),
 			(FeatureFlags)0,
+			false,
 		},
 		{
 			"yz",
@@ -990,6 +1514,7 @@
 					   OffsetValue(4,  8, makeValueUint32(5u)),
 					   OffsetValue(4, 12, makeValueUint32(2u * 5u))),
 			(FeatureFlags)0,
+			false,
 		},
 		{
 			"xyz",
@@ -1002,6 +1527,7 @@
 					   OffsetValue(4,  8, makeValueUint32(7u)),
 					   OffsetValue(4, 12, makeValueUint32(3u * 5u * 7u))),
 			(FeatureFlags)0,
+			false,
 		},
 	};
 
@@ -1027,6 +1553,7 @@
 			"    sb_out.ok = (gl_MaxImageUnits >= 8);\n",	// implementation defined, 8 is the minimum
 			makeVector(OffsetValue(4,  0, makeValueBool32(true))),
 			(FeatureFlags)0,
+			false,
 		},
 		{
 			"specialized",
@@ -1037,6 +1564,7 @@
 			"    sb_out.maxImageUnits = gl_MaxImageUnits;\n",
 			makeVector(OffsetValue(4,  0, makeValueInt32(12))),
 			(FeatureFlags)0,
+			false,
 		},
 	};
 
@@ -1066,6 +1594,7 @@
 			"    sb_out.result = expr0 + expr1;\n",
 			makeVector(OffsetValue(4,  0, makeValueInt32(10))),
 			(FeatureFlags)0,
+			false,
 		},
 		{
 			"array_size",
@@ -1093,6 +1622,7 @@
 					   OffsetValue(4,  8, makeValueInt32(2)),
 					   OffsetValue(4, 12, makeValueInt32(1))),
 			(FeatureFlags)0,
+			false,
 		},
 		{
 			"array_size_expression",
@@ -1120,6 +1650,7 @@
 			makeVector(OffsetValue(4,  0, makeValueInt32(-2)),
 					   OffsetValue(4,  4, makeValueInt32(-4))),
 			(FeatureFlags)0,
+			false,
 		},
 		{
 			"array_size_spec_const_expression",
@@ -1147,6 +1678,7 @@
 			makeVector(OffsetValue(4,  0, makeValueInt32(-2)),
 					   OffsetValue(4,  4, makeValueInt32(-4))),
 			(FeatureFlags)0,
+			false,
 		},
 		{
 			"array_size_length",
@@ -1166,6 +1698,7 @@
 			makeVector(OffsetValue(4,  0, makeValueInt32(1)),
 					   OffsetValue(4,  4, makeValueInt32(4))),
 			(FeatureFlags)0,
+			false,
 		},
 		{
 			"array_size_pass_to_function",
@@ -1193,6 +1726,7 @@
 			"    sb_out.result = sumArrays(a0, a1);\n",
 			makeVector(OffsetValue(4,  0, makeValueInt32(15))),
 			(FeatureFlags)0,
+			false,
 		},
 	};
 
@@ -1420,6 +1954,7 @@
 		generateShaderChecksumComputationCode(scalarType, varName, accumType, size1, size2, numCombinations),
 		computeExpectedValues(specValue, scalarType, numCombinations),
 		(scalarType == glu::TYPE_DOUBLE ? (FeatureFlags)FEATURE_SHADER_FLOAT_64 : (FeatureFlags)0),
+		false,
 	};
 	return def;
 }
@@ -1463,6 +1998,7 @@
 		generateShaderChecksumComputationCode(elemType, varName, accumType, size1, size2, numCombinations),
 		computeExpectedValues(specValue, scalarType, numCombinations),
 		(scalarType == glu::TYPE_DOUBLE ? (FeatureFlags)FEATURE_SHADER_FLOAT_64 : (FeatureFlags)0),
+		false,
 	};
 	return def;
 }
@@ -1518,6 +2054,7 @@
 		mainCode.str(),
 		makeVector(OffsetValue(getDataTypeScalarSizeBytes(memberType), 0, makeValue(scalarType, checksum))),
 		(scalarType == glu::TYPE_DOUBLE ? (FeatureFlags)FEATURE_SHADER_FLOAT_64 : (FeatureFlags)0),
+		false,
 	};
 	return def;
 }
@@ -1678,6 +2215,7 @@
 
 				makeVector(OffsetValue(4,  0, makeValueInt32(checksum))),
 				(FeatureFlags)0,
+				false,
 			};
 
 			group->addChild(new SpecConstantTest(testCtx, shaderStage, def));
@@ -1724,6 +2262,7 @@
 
 				makeVector(OffsetValue(4,  0, makeValueFloat32(static_cast<float>(checksum)))),
 				(FeatureFlags)0,
+				false,
 			};
 
 			group->addChild(new SpecConstantTest(testCtx, shaderStage, def));
@@ -1765,6 +2304,7 @@
 
 				makeVector(OffsetValue(4,  0, makeValueInt32(checksum))),
 				(FeatureFlags)0,
+				false,
 			};
 
 			group->addChild(new SpecConstantTest(testCtx, shaderStage, def));
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineSpecConstantUtil.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineSpecConstantUtil.cpp
index 0f1fe9b..6e68021 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineSpecConstantUtil.cpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineSpecConstantUtil.cpp
@@ -300,6 +300,38 @@
 
 	if (flags & FEATURE_FRAGMENT_STORES_AND_ATOMICS)
 		context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_FRAGMENT_STORES_AND_ATOMICS);
+
+	if (flags & FEATURE_SHADER_INT_64)
+		context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_SHADER_INT64);
+
+	if (flags & FEATURE_SHADER_INT_16)
+		context.requireDeviceCoreFeature(DEVICE_CORE_FEATURE_SHADER_INT16);
+
+	if (flags & (FEATURE_SHADER_FLOAT_16 | FEATURE_SHADER_INT_8))
+	{
+		const auto extraFeatures = context.getShaderFloat16Int8Features();
+
+		if ((flags & FEATURE_SHADER_INT_8) != 0u && !extraFeatures.shaderInt8)
+			TCU_THROW(NotSupportedError, "8-bit integers not supported in shaders");
+
+		if ((flags & FEATURE_SHADER_FLOAT_16) != 0u && !extraFeatures.shaderFloat16)
+			TCU_THROW(NotSupportedError, "16-bit floats not supported in shaders");
+	}
+
+	// Check needed storage features.
+	if (flags & (FEATURE_SHADER_INT_16 | FEATURE_SHADER_FLOAT_16))
+	{
+		const auto features = context.get16BitStorageFeatures();
+		if (!features.storageBuffer16BitAccess)
+			TCU_THROW(NotSupportedError, "16-bit access in storage buffers not supported");
+	}
+
+	if (flags & FEATURE_SHADER_INT_8)
+	{
+		const auto features = context.get8BitStorageFeatures();
+		if (!features.storageBuffer8BitAccess)
+			TCU_THROW(NotSupportedError, "8-bit access in storage buffers not supported");
+	}
 }
 
 } // pipeline
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineSpecConstantUtil.hpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineSpecConstantUtil.hpp
index 7e34d40..5d0b094 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineSpecConstantUtil.hpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineSpecConstantUtil.hpp
@@ -67,6 +67,10 @@
 	FEATURE_SHADER_FLOAT_64						= 1u << 2,
 	FEATURE_VERTEX_PIPELINE_STORES_AND_ATOMICS	= 1u << 3,
 	FEATURE_FRAGMENT_STORES_AND_ATOMICS			= 1u << 4,
+	FEATURE_SHADER_INT_64						= 1u << 5,
+	FEATURE_SHADER_INT_16						= 1u << 6,
+	FEATURE_SHADER_FLOAT_16						= 1u << 7,
+	FEATURE_SHADER_INT_8						= 1u << 8,
 };
 typedef deUint32 FeatureFlags;
 
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineStencilExportTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineStencilExportTests.cpp
index a9e6cce..710df99 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineStencilExportTests.cpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineStencilExportTests.cpp
@@ -71,7 +71,7 @@
 namespace
 {
 
-void initPrograms (SourceCollections& programCollection)
+void initPrograms (SourceCollections& programCollection, vk::VkFormat)
 {
 	// Vertex shader.
 	{
@@ -327,9 +327,9 @@
 	};
 
 	const VkStencilOpState stencilOpState = makeStencilOpState(
-		VK_STENCIL_OP_REPLACE,											// stencil fail
-		VK_STENCIL_OP_REPLACE,											// depth & stencil pass
-		VK_STENCIL_OP_REPLACE,											// depth only fail
+		useColor ? VK_STENCIL_OP_KEEP : VK_STENCIL_OP_REPLACE,			// stencil fail
+		useColor ? VK_STENCIL_OP_KEEP : VK_STENCIL_OP_REPLACE,			// depth & stencil pass
+		useColor ? VK_STENCIL_OP_KEEP : VK_STENCIL_OP_REPLACE,			// depth only fail
 		useColor ? VK_COMPARE_OP_EQUAL : VK_COMPARE_OP_NEVER,			// compare op
 		useColor ? 0xffu : 0u,											// compare mask
 		useColor ? 0u : 0xffu,											// write mask
@@ -448,12 +448,10 @@
 	return image;
 }
 
-tcu::TestStatus testStencilExportReplace (Context& context)
+tcu::TestStatus testStencilExportReplace (Context& context, vk::VkFormat stencilFormat)
 {
-	const VkFormat stencilFormat = VK_FORMAT_S8_UINT;
-
-	context.getTestContext().getLog()
-		<< tcu::TestLog::Message << "Drawing to stencil using shader then using it for another draw." << tcu::TestLog::EndMessage;
+	auto& log = context.getTestContext().getLog();
+	log << tcu::TestLog::Message << "Drawing to stencil using shader then using it for another draw." << tcu::TestLog::EndMessage;
 
 	const DeviceInterface&			vk					= context.getDeviceInterface();
 	const VkDevice					device				= context.getDevice();
@@ -535,28 +533,43 @@
 
 		tcu::TextureLevel					referenceImage	= generateReferenceImage(mapVkFormat(colorFormat), renderSize, 1 << 4, clearColor, Vec4(0, 0, 1, 1));
 
-		if (!tcu::floatThresholdCompare(context.getTestContext().getLog(), "color", "Image compare", referenceImage.getAccess(), resultImage, Vec4(0.02f), tcu::COMPARE_LOG_RESULT))
+		if (!tcu::floatThresholdCompare(log, "color", "Image compare", referenceImage.getAccess(), resultImage, Vec4(0.02f), tcu::COMPARE_LOG_RESULT))
 			TCU_FAIL("Rendered image is not correct");
 	}
 
 	return tcu::TestStatus::pass("OK");
 }
 
-void checkSupport (Context& context)
+void checkSupport (Context& context, vk::VkFormat stencilFormat)
 {
 	context.requireDeviceFunctionality("VK_EXT_shader_stencil_export");
 
-	const VkFormat stencilFormat = VK_FORMAT_S8_UINT;
 	if (!isSupportedDepthStencilFormat(context.getInstanceInterface(), context.getPhysicalDevice(), stencilFormat))
-		throw tcu::NotSupportedError(std::string("Unsupported depth/stencil format: ") + getFormatName(stencilFormat));
+		TCU_THROW(NotSupportedError, "Image format not supported");
 }
 
 } // anonymous
 
 tcu::TestCaseGroup* createStencilExportTests (tcu::TestContext& testCtx)
 {
+	struct
+	{
+		const vk::VkFormat	format;
+		const std::string	name;
+	} kFormats[] =
+	{
+		{ vk::VK_FORMAT_S8_UINT,			"s8_uint"				},
+		{ vk::VK_FORMAT_D24_UNORM_S8_UINT,	"d24_unorm_s8_uint"		},
+		{ vk::VK_FORMAT_D32_SFLOAT_S8_UINT,	"d32_sfloat_s8_uint"	},
+	};
+
 	de::MovePtr<tcu::TestCaseGroup> group (new tcu::TestCaseGroup(testCtx, "shader_stencil_export", ""));
-	addFunctionCaseWithPrograms(group.get(), "op_replace", "", checkSupport, initPrograms, testStencilExportReplace);
+	for (int fmtIdx = 0; fmtIdx < DE_LENGTH_OF_ARRAY(kFormats); ++fmtIdx)
+	{
+		de::MovePtr<tcu::TestCaseGroup> formatGroup (new tcu::TestCaseGroup(testCtx, kFormats[fmtIdx].name.c_str(), ""));
+		addFunctionCaseWithPrograms<vk::VkFormat>(formatGroup.get(), "op_replace", "", checkSupport, initPrograms, testStencilExportReplace, kFormats[fmtIdx].format);
+		group->addChild(formatGroup.release());
+	}
 	return group.release();
 }
 
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineStencilTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineStencilTests.cpp
index 5a29742..6837dbb 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineStencilTests.cpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineStencilTests.cpp
@@ -332,12 +332,6 @@
 			"{\n"
 			"	gl_Position = position;\n"
 			"}\n");
-
-		sourceCollections.glslSources.add("color_frag") << glu::FragmentSource(
-			"#version 310 es\n"
-			"void main (void)\n"
-			"{\n"
-			"}\n");
 	}
 }
 
@@ -508,8 +502,9 @@
 		m_pipelineLayout = createPipelineLayout(vk, vkDevice, &pipelineLayoutParams);
 	}
 
-	m_vertexShaderModule	= createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("color_vert"), 0);
-	m_fragmentShaderModule	= createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("color_frag"), 0);
+	m_vertexShaderModule		= createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("color_vert"), 0);
+	if (m_colorAttachmentEnable)
+		m_fragmentShaderModule	= createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("color_frag"), 0);
 
 	// Create pipeline
 	{
@@ -568,6 +563,24 @@
 			1.0f														// float									maxDepthBounds;
 		};
 
+		// Make sure rasterization is not disabled when the fragment shader is missing.
+		const vk::VkPipelineRasterizationStateCreateInfo rasterizationStateParams =
+		{
+			vk::VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,	//	VkStructureType							sType;
+			nullptr,														//	const void*								pNext;
+			0u,																//	VkPipelineRasterizationStateCreateFlags	flags;
+			VK_FALSE,														//	VkBool32								depthClampEnable;
+			VK_FALSE,														//	VkBool32								rasterizerDiscardEnable;
+			vk::VK_POLYGON_MODE_FILL,										//	VkPolygonMode							polygonMode;
+			vk::VK_CULL_MODE_NONE,											//	VkCullModeFlags							cullMode;
+			vk::VK_FRONT_FACE_COUNTER_CLOCKWISE,							//	VkFrontFace								frontFace;
+			VK_FALSE,														//	VkBool32								depthBiasEnable;
+			0.0f,															//	float									depthBiasConstantFactor;
+			0.0f,															//	float									depthBiasClamp;
+			0.0f,															//	float									depthBiasSlopeFactor;
+			1.0f,															//	float									lineWidth;
+		};
+
 		// Setup different stencil masks and refs in each quad
 		for (int quadNdx = 0; quadNdx < StencilTest::QUAD_COUNT; quadNdx++)
 		{
@@ -598,7 +611,7 @@
 																0u,										// const deUint32                                subpass
 																0u,										// const deUint32                                patchControlPoints
 																&vertexInputStateParams,				// const VkPipelineVertexInputStateCreateInfo*   vertexInputStateCreateInfo
-																DE_NULL,								// const VkPipelineRasterizationStateCreateInfo* rasterizationStateCreateInfo
+																&rasterizationStateParams,				// const VkPipelineRasterizationStateCreateInfo* rasterizationStateCreateInfo
 																DE_NULL,								// const VkPipelineMultisampleStateCreateInfo*   multisampleStateCreateInfo
 																&depthStencilStateParams);				// const VkPipelineDepthStencilStateCreateInfo*  depthStencilStateCreateInfo
 		}
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineTests.cpp
index 9b5f24a..e00f23f 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineTests.cpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineTests.cpp
@@ -52,6 +52,7 @@
 #include "vktPipelineVertexOnlyTests.hpp"
 #include "vktPipelineMaxVaryingsTests.hpp"
 #include "vktPipelineBlendOperationAdvancedTests.hpp"
+#include "vktPipelineExtendedDynamicStateTests.hpp"
 #include "vktTestGroupUtil.hpp"
 
 namespace vkt
@@ -95,6 +96,7 @@
 	pipelineTests->addChild(createVertexOnlyTests				(testCtx));
 	pipelineTests->addChild(createMaxVaryingsTests				(testCtx));
 	pipelineTests->addChild(createBlendOperationAdvancedTests	(testCtx));
+	pipelineTests->addChild(createExtendedDynamicStateTests		(testCtx));
 }
 
 } // anonymous
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineTimestampTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineTimestampTests.cpp
index 0cc5f76..f385e41 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineTimestampTests.cpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineTimestampTests.cpp
@@ -1189,7 +1189,11 @@
 	DE_ASSERT(hostDomain == VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT ||
 			  hostDomain == VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT);
 
+#if (DE_OS == DE_OS_QNX)
+	clockid_t id = CLOCK_MONOTONIC;
+#else
 	clockid_t id = ((hostDomain == VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT) ? CLOCK_MONOTONIC : CLOCK_MONOTONIC_RAW);
+#endif
 	struct timespec ts;
 	if (clock_gettime(id, &ts) != 0)
 	{
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineVertexUtil.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineVertexUtil.cpp
index 53d7624..b572355 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineVertexUtil.cpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineVertexUtil.cpp
@@ -945,6 +945,77 @@
 	return vertices;
 }
 
+std::vector<Vertex4RGBARGBA> createOverlappingQuadsDualSource (void)
+{
+	using tcu::Vec2;
+	using tcu::Vec4;
+
+	std::vector<Vertex4RGBARGBA> vertices;
+
+	const Vec2 translations[4] =
+	{
+		Vec2(-0.25f, -0.25f),
+		Vec2(-1.0f, -0.25f),
+		Vec2(-1.0f, -1.0f),
+		Vec2(-0.25f, -1.0f)
+	};
+
+	const Vec4 quadColors[4] =
+	{
+		Vec4(1.0f, 0.0f, 0.0f, 1.0),
+		Vec4(0.0f, 1.0f, 0.0f, 1.0),
+		Vec4(0.0f, 0.0f, 1.0f, 1.0),
+		Vec4(1.0f, 0.0f, 1.0f, 1.0)
+	};
+
+	const Vec4 color1 = Vec4(0.0f, 0.5f, 0.5f, 1.0f);
+
+	const float quadSize = 1.25f;
+
+	for (int quadNdx = 0; quadNdx < 4; quadNdx++)
+	{
+		const Vec2&	translation	= translations[quadNdx];
+		const Vec4&	color0		= quadColors[quadNdx];
+
+		const Vertex4RGBARGBA lowerLeftVertex =
+		{
+			Vec4(translation.x(), translation.y(), 0.0f, 1.0f),
+			color0,
+			color1
+		};
+		const Vertex4RGBARGBA upperLeftVertex =
+		{
+			Vec4(translation.x(), translation.y() + quadSize, 0.0f, 1.0f),
+			color0,
+			color1
+		};
+		const Vertex4RGBARGBA lowerRightVertex =
+		{
+			Vec4(translation.x() + quadSize, translation.y(), 0.0f, 1.0f),
+			color0,
+			color1
+		};
+		const Vertex4RGBARGBA upperRightVertex =
+		{
+			Vec4(translation.x() + quadSize, translation.y() + quadSize, 0.0f, 1.0f),
+			color0,
+			color1
+		};
+
+		// Triangle 1, CCW
+		vertices.push_back(lowerLeftVertex);
+		vertices.push_back(lowerRightVertex);
+		vertices.push_back(upperLeftVertex);
+
+		// Triangle 2, CW
+		vertices.push_back(lowerRightVertex);
+		vertices.push_back(upperLeftVertex);
+		vertices.push_back(upperRightVertex);
+	}
+
+	return vertices;
+}
+
 std::vector<Vertex4Tex4> createFullscreenQuad (void)
 {
 	using tcu::Vec4;
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineVertexUtil.hpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineVertexUtil.hpp
index 0da138f..af27ee5 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineVertexUtil.hpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineVertexUtil.hpp
@@ -41,6 +41,13 @@
 	tcu::Vec4 color;
 };
 
+struct Vertex4RGBARGBA
+{
+	tcu::Vec4 position;
+	tcu::Vec4 color0;
+	tcu::Vec4 color1;
+};
+
 struct Vertex4Tex4
 {
 	tcu::Vec4 position;
@@ -72,7 +79,8 @@
  *  Each quad covers one of the quadrants of the scene and partially extends to the other 3 quadrants.
  *  The triangles of each quad have different winding orders (CW/CCW).
  */
-std::vector<Vertex4RGBA>	createOverlappingQuads		(void);
+std::vector<Vertex4RGBA>		createOverlappingQuads				(void);
+std::vector<Vertex4RGBARGBA>	createOverlappingQuadsDualSource	(void);
 
 std::vector<Vertex4Tex4>	createFullscreenQuad		(void);
 std::vector<Vertex4Tex4>	createQuadMosaic			(int rows, int columns);
diff --git a/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemBufferValidator.hpp b/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemBufferValidator.hpp
index e3eaf4a..d9aaddc 100644
--- a/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemBufferValidator.hpp
+++ b/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemBufferValidator.hpp
@@ -196,7 +196,7 @@
 	// Set the reference uniform data
 	{
 		deMemcpy(refUniform->getAllocation().getHostPtr(), getReferenceDataSrc(), refDataSize);
-		vk::flushMappedMemoryRange(vk, device, refUniform->getAllocation().getMemory(), refUniform->getAllocation().getOffset(), refDataSize);
+		flushAlloc(vk, device, refUniform->getAllocation());
 	}
 
 	const deUint32							helperBufferSize	= (deUint32)(2 * sizeof(deUint32));
diff --git a/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemImageValidator.cpp b/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemImageValidator.cpp
index aa4dc56..20107fd 100644
--- a/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemImageValidator.cpp
+++ b/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemImageValidator.cpp
@@ -148,7 +148,7 @@
 	// Set the reference uniform data
 	{
 		deMemcpy(refUniform->getAllocation().getHostPtr(), &refData, refUniformSize);
-		vk::flushMappedMemoryRange(vk, device, refUniform->getAllocation().getMemory(), refUniform->getAllocation().getOffset(), refUniformSize);
+		flushAlloc(vk, device, refUniform->getAllocation());
 	}
 
 	const deUint32							helperBufferSize	= (deUint32)(2 * sizeof(deUint32));
diff --git a/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemShaderImageAccessTests.cpp b/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemShaderImageAccessTests.cpp
index efb4cbf..66dd671 100644
--- a/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemShaderImageAccessTests.cpp
+++ b/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemShaderImageAccessTests.cpp
@@ -989,7 +989,7 @@
 
 		deMemcpy(vertexBuffer->getAllocation().getHostPtr(), positions, positionDataSize);
 		deMemcpy(reinterpret_cast<deUint8*>(vertexBuffer->getAllocation().getHostPtr()) +  positionDataSize, texCoord.data(), textureCoordDataSize);
-		vk::flushMappedMemoryRange(vk, device, vertexBuffer->getAllocation().getMemory(), vertexBuffer->getAllocation().getOffset(), vertexBufferSize);
+		vk::flushAlloc(vk, device, vertexBuffer->getAllocation());
 	}
 
 	// Create pipeline
diff --git a/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemStorageBufferTests.cpp b/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemStorageBufferTests.cpp
index 6d1980e..2466a3d 100644
--- a/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemStorageBufferTests.cpp
+++ b/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemStorageBufferTests.cpp
@@ -377,7 +377,7 @@
 	// Set the test input uniform data
 	{
 		deMemcpy(testUniform->getAllocation().getHostPtr(), &m_testInput, testUniformSize);
-		vk::flushMappedMemoryRange(vk, device, testUniform->getAllocation().getMemory(), testUniform->getAllocation().getOffset(), testUniformSize);
+		vk::flushAlloc(vk, device, testUniform->getAllocation());
 	}
 	const deUint32							testBufferSize		= sizeof(ValidationDataStorage<T>);
 	de::MovePtr<vk::BufferWithMemory>		testBuffer			(makeBuffer(ctx,
@@ -564,7 +564,7 @@
 	// Set the test input uniform data
 	{
 		deMemcpy(testUniform->getAllocation().getHostPtr(), &m_testInput, testUniformSize);
-		vk::flushMappedMemoryRange(vk, device, testUniform->getAllocation().getMemory(), testUniform->getAllocation().getOffset(), testUniformSize);
+		vk::flushAlloc(vk, device, testUniform->getAllocation());
 	}
 
 	const deUint32							testBufferSize		= sizeof(ValidationDataStorage<T>);
diff --git a/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemUtils.cpp b/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemUtils.cpp
index a484925..7ee8499 100644
--- a/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemUtils.cpp
+++ b/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemUtils.cpp
@@ -706,7 +706,7 @@
 
 		tcu::copy(destAccess, access);
 
-		vk::flushMappedMemoryRange(vk, device, stagingBuffer->getAllocation().getMemory(), stagingBuffer->getAllocation().getOffset(), stagingBufferSize);
+		flushAlloc(vk, device, stagingBuffer->getAllocation());
 	}
 
 	const vk::VkImageSubresourceRange	subresourceRange	=
diff --git a/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemWsiSwapchainTests.cpp b/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemWsiSwapchainTests.cpp
index ded17db..50a416c 100644
--- a/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemWsiSwapchainTests.cpp
+++ b/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemWsiSwapchainTests.cpp
@@ -1025,7 +1025,7 @@
 		DE_STATIC_ASSERT(sizeof(vertices) == sizeof(float)*4*3);
 
 		deMemcpy(m_vertexBuffer->getAllocation().getHostPtr(), &vertices[0], sizeof(vertices));
-		vk::flushMappedMemoryRange(m_vkd, context.getDevice(), m_vertexBuffer->getAllocation().getMemory(), m_vertexBuffer->getAllocation().getOffset(), sizeof(vertices));
+		flushAlloc(m_vkd, context.getDevice(), m_vertexBuffer->getAllocation());
 	}
 }
 
diff --git a/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemYCbCrConversionTests.cpp b/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemYCbCrConversionTests.cpp
index f5d4bbe..bc7f39d 100644
--- a/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemYCbCrConversionTests.cpp
+++ b/external/vulkancts/modules/vulkan/protected_memory/vktProtectedMemYCbCrConversionTests.cpp
@@ -357,7 +357,7 @@
 		bufferBarriers.push_back(bufferBarrier);
 
 		deMemcpy(buffer->getAllocation().getHostPtr(), imageData.getPlanePtr(planeNdx), imageData.getPlaneSize(planeNdx));
-		flushMappedMemoryRange(vk, device, buffer->getAllocation().getMemory(), buffer->getAllocation().getOffset(), (deUint32)imageData.getPlaneSize(planeNdx));
+		flushAlloc(vk, device, buffer->getAllocation());
 		stagingBuffers.push_back(de::SharedPtr<de::MovePtr<vk::BufferWithMemory> >(new de::MovePtr<vk::BufferWithMemory>(buffer.release())));
 	}
 
@@ -366,7 +366,7 @@
 
 	for (deUint32 planeNdx = 0; planeNdx < imageData.getDescription().numPlanes; ++planeNdx)
 	{
-		const vk::VkImageAspectFlagBits	aspect	= formatDesc.numPlanes > 1
+		const vk::VkImageAspectFlags	aspect	= formatDesc.numPlanes > 1
 												? vk::getPlaneAspect(planeNdx)
 												: vk::VK_IMAGE_ASPECT_COLOR_BIT;
 
@@ -419,7 +419,7 @@
 
 	for (deUint32 planeNdx = 0; planeNdx < imageData.getDescription().numPlanes; ++planeNdx)
 	{
-		const vk::VkImageAspectFlagBits	aspect	= formatDesc.numPlanes > 1
+		const vk::VkImageAspectFlags	aspect	= formatDesc.numPlanes > 1
 												? vk::getPlaneAspect(planeNdx)
 												: vk::VK_IMAGE_ASPECT_COLOR_BIT;
 
@@ -526,7 +526,7 @@
 	// Set the reference uniform data
 	{
 		deMemcpy(refUniform->getAllocation().getHostPtr(), &refData[0], refUniformSize);
-		vk::flushMappedMemoryRange(vk, device, refUniform->getAllocation().getMemory(), refUniform->getAllocation().getOffset(), refUniformSize);
+		flushAlloc(vk, device, refUniform->getAllocation());
 	}
 
 	const deUint32								helperBufferSize	= (deUint32)(2 * sizeof(deUint32));
@@ -857,7 +857,7 @@
 	// Set the reference uniform data
 	{
 		deMemcpy(refUniform->getAllocation().getHostPtr(), &referenceData[0], refUniformSize);
-		vk::flushMappedMemoryRange(vk, device, refUniform->getAllocation().getMemory(), refUniform->getAllocation().getOffset(), refUniformSize);
+		flushAlloc(vk, device, refUniform->getAllocation());
 	}
 
 	// Update descriptor set
@@ -902,7 +902,7 @@
 								  vk::MemoryRequirement::HostVisible);
 
 		deMemcpy(vertexBuffer->getAllocation().getHostPtr(), &posCoords[0], bufferSize);
-		vk::flushMappedMemoryRange(vk, device, vertexBuffer->getAllocation().getMemory(), vertexBuffer->getAllocation().getOffset(), bufferSize);
+		flushAlloc(vk, device, vertexBuffer->getAllocation());
 	}
 
 	const vk::Unique<vk::VkPipeline>		pipeline			(makeGraphicsPipeline(vk,
diff --git a/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolConcurrentTests.hpp b/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolConcurrentTests.hpp
index 6c49c12..918db51 100644
--- a/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolConcurrentTests.hpp
+++ b/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolConcurrentTests.hpp
@@ -40,7 +40,6 @@
 
 private:
 	QueryPoolConcurrentTests				(const QueryPoolConcurrentTests &other);
-	// TODO: Do I need this operator?
 	QueryPoolConcurrentTests&	operator=	(const QueryPoolConcurrentTests &other);
 };
 
diff --git a/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolPerformanceTests.cpp b/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolPerformanceTests.cpp
index a9b7312..7389651 100644
--- a/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolPerformanceTests.cpp
+++ b/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolPerformanceTests.cpp
@@ -546,7 +546,7 @@
 		tcu::Vec4 *ptr = reinterpret_cast<tcu::Vec4*>(m_vertexBuffer->getBoundMemory().getHostPtr());
 		deMemcpy(ptr, &vertices[0], kBufferSize);
 
-		flushMappedMemoryRange(vkd, device,	m_vertexBuffer->getBoundMemory().getMemory(), m_vertexBuffer->getBoundMemory().getOffset(), VK_WHOLE_SIZE);
+		flushAlloc(vkd, device, m_vertexBuffer->getBoundMemory());
 	}
 }
 
@@ -946,7 +946,7 @@
 	const std::vector<deUint8>	data((size_t)bufferSize, 0u);
 	const Allocation&			allocation = m_buffer->getBoundMemory();
 	void*						allocationData = allocation.getHostPtr();
-	invalidateMappedMemoryRange(vkd, device, allocation.getMemory(), allocation.getOffset(), bufferSize);
+	invalidateAlloc(vkd, device, allocation);
 	deMemcpy(allocationData, &data[0], (size_t)bufferSize);
 
 	const VkBufferMemoryBarrier barrier =
diff --git a/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolStatisticsTests.cpp b/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolStatisticsTests.cpp
index da4cd0e..258f7d2 100644
--- a/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolStatisticsTests.cpp
+++ b/external/vulkancts/modules/vulkan/query_pool/vktQueryPoolStatisticsTests.cpp
@@ -321,7 +321,7 @@
 	const std::vector<deUint8>	data			((size_t)bufferSizeBytes, 0u);
 	const Allocation&			allocation		= buffer->getBoundMemory();
 	void*						allocationData	= allocation.getHostPtr();
-	invalidateMappedMemoryRange(vk, device, allocation.getMemory(), allocation.getOffset(), bufferSizeBytes);
+	invalidateAlloc(vk, device, allocation);
 	deMemcpy(allocationData, &data[0], (size_t)bufferSizeBytes);
 }
 
@@ -552,7 +552,7 @@
 
 		// Validate the results
 		const Allocation& bufferAllocation = buffer->getBoundMemory();
-		invalidateMappedMemoryRange(vk, device, bufferAllocation.getMemory(), bufferAllocation.getOffset(), bufferSizeBytes);
+		invalidateAlloc(vk, device, bufferAllocation);
 
 		if (m_parameters[0].resetType == RESET_TYPE_NORMAL)
 		{
@@ -608,7 +608,6 @@
 																	 const de::SharedPtr<Buffer>	buffer,
 																	 const VkDeviceSize				bufferSizeBytes);
 	virtual tcu::TestStatus	checkResult								(const de::SharedPtr<Buffer>	buffer,
-																	 const VkDeviceSize				bufferSizeBytes,
 																	 const VkQueryPool				queryPool);
 };
 
@@ -728,10 +727,10 @@
 
 	// Wait for completion
 	submitCommandsAndWait(vk, device, queue, *primaryCmdBuffer);
-	return checkResult(buffer, bufferSizeBytes, *queryPool);
+	return checkResult(buffer, *queryPool);
 }
 
-tcu::TestStatus ComputeInvocationsSecondaryTestInstance::checkResult (const de::SharedPtr<Buffer> buffer, const VkDeviceSize bufferSizeBytes, const VkQueryPool queryPool)
+tcu::TestStatus ComputeInvocationsSecondaryTestInstance::checkResult (const de::SharedPtr<Buffer> buffer, const VkQueryPool queryPool)
 {
 	const DeviceInterface&	vk					= m_context.getDeviceInterface();
 	const VkDevice			device				= m_context.getDevice();
@@ -778,7 +777,7 @@
 	{
 		// Validate the results
 		const Allocation&	bufferAllocation	= buffer->getBoundMemory();
-		invalidateMappedMemoryRange(vk, device, bufferAllocation.getMemory(), bufferAllocation.getOffset(), bufferSizeBytes);
+		invalidateAlloc(vk, device, bufferAllocation);
 		const deUint32*		bufferPtr			= static_cast<deUint32*>(bufferAllocation.getHostPtr());
 		deUint32			minSize				= ~0u;
 		for(size_t parametersNdx = 0; parametersNdx < m_parameters.size(); ++parametersNdx)
@@ -936,7 +935,7 @@
 
 	// Wait for completion
 	submitCommandsAndWait(vk, device, queue, *primaryCmdBuffer);
-	return checkResult(buffer, bufferSizeBytes, *queryPool);
+	return checkResult(buffer, *queryPool);
 }
 
 class GraphicBasicTestInstance : public StatisticQueryTestInstance
diff --git a/external/vulkancts/modules/vulkan/rasterization/vktRasterizationTests.cpp b/external/vulkancts/modules/vulkan/rasterization/vktRasterizationTests.cpp
index e199808..3b3f9d7 100644
--- a/external/vulkancts/modules/vulkan/rasterization/vktRasterizationTests.cpp
+++ b/external/vulkancts/modules/vulkan/rasterization/vktRasterizationTests.cpp
@@ -4447,6 +4447,40 @@
 			provokingVertex->addChild(testCase);
 		}
 	}
+
+	// .line_continuity
+	{
+		tcu::TestCaseGroup* const	lineContinuity	= new tcu::TestCaseGroup(testCtx, "line_continuity", "Test line continuity");
+		static const char			dataDir[]		= "rasterization/line_continuity";
+
+		struct Case
+		{
+			std::string	name;
+			std::string	desc;
+			bool		requireFillModeNonSolid;
+		};
+
+		static const Case cases[] =
+		{
+			{	"line-strip",			"Test line strip drawing produces continuous lines",	false	},
+			{	"polygon-mode-lines",	"Test triangles drawn with lines are continuous",		true	}
+		};
+
+		rasterizationTests->addChild(lineContinuity);
+
+		for (int i = 0; i < DE_LENGTH_OF_ARRAY(cases); ++i)
+		{
+			const std::string			fileName	= cases[i].name + ".amber";
+			cts_amber::AmberTestCase*	testCase	= cts_amber::createAmberTestCase(testCtx, cases[i].name.c_str(), cases[i].desc.c_str(), dataDir, fileName);
+
+			if (cases[i].requireFillModeNonSolid)
+			{
+				testCase->addRequirement("Features.fillModeNonSolid");
+			}
+
+			lineContinuity->addChild(testCase);
+		}
+	}
 }
 
 } // anonymous
diff --git a/external/vulkancts/modules/vulkan/renderpass/vktRenderPassFragmentDensityMapTests.cpp b/external/vulkancts/modules/vulkan/renderpass/vktRenderPassFragmentDensityMapTests.cpp
index 01a8803..b25ee17 100644
--- a/external/vulkancts/modules/vulkan/renderpass/vktRenderPassFragmentDensityMapTests.cpp
+++ b/external/vulkancts/modules/vulkan/renderpass/vktRenderPassFragmentDensityMapTests.cpp
@@ -30,7 +30,10 @@
 #include "vkCmdUtil.hpp"
 #include "vkRefUtil.hpp"
 #include "vkObjUtil.hpp"
+#include "vkBarrierUtil.hpp"
 #include "vkBuilderUtil.hpp"
+#include "tcuStringTemplate.hpp"
+#include "tcuTextureUtil.hpp"
 #include "tcuTestLog.hpp"
 #include <sstream>
 #include <vector>
@@ -48,15 +51,23 @@
 // - render_copy tests check if it's possible to copy results using input attachment descriptor ( this simulates deferred rendering behaviour )
 // - non_divisible_density_size tests check if subsampled images work when its dimension is not divisible by minFragmentDensityTexelSize
 // - N_samples tests check if multisampling works with VK_EXT_fragment_density_map extension
-// - static_* tests use density map loaded from CPU.
+// - static_* tests use density map loaded from CPU during vkCmdBeginRenderPass.
 // - dynamic_* tests use density map rendered on a GPU in a separate render pass
+// - deffered_* tests use density map loaded from CPU during VkEndCommandBuffer.
 // - *_nonsubsampled tests check if it's possible to use nonsubsampled images instead of subsampled ones
 
-// There are 3 render passes performed during the test:
+// There are 3 render passes performed during most of the tests:
 //  - render pass that produces density map ( this rp is skipped when density map is static )
 //  - render pass that produces subsampled image using density map and eventually copies results to different image ( render_copy )
 //  - render pass that copies subsampled image to traditional image using sampler with VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT flag.
 //    ( because subsampled images cannot be retrieved to CPU in any other way ).
+// There are few tests that use additional subpass that resamples subsampled image using diferent density map.
+
+// Code of FragmentDensityMapTestInstance is also used to test subsampledLoads, subsampledCoarseReconstructionEarlyAccess,
+// maxDescriptorSetSubsampledSamplers properties.
+
+// set value of DRY_RUN_WITHOUT_FDM_EXTENSION to 1 for dummy run hat checks the correctness of the code without using VK_EXT_fragment_density_map extension
+#define DRY_RUN_WITHOUT_FDM_EXTENSION 0
 
 namespace vkt
 {
@@ -69,24 +80,20 @@
 namespace
 {
 
-// set value of DRY_RUN_WITHOUT_FDM_EXTENSION to 1 if you want to check the correctness of the code without using VK_EXT_fragment_density_map extension
-#define DRY_RUN_WITHOUT_FDM_EXTENSION 0
-
 struct TestParams
 {
-	TestParams(bool dynamicDensity, bool nonSubsampled, bool multiview, bool copy, float renderSizeMultiplier, VkSampleCountFlagBits samples, const tcu::UVec2& area )
-		: dynamicDensityMap{ dynamicDensity }, nonSubsampledImages{ nonSubsampled }, multiView{ multiview }, makeCopy{ copy }, densityMapSize{16,16}, colorSamples{ samples }, fragmentArea{ area }, densityMapFormat{ VK_FORMAT_R8G8_UNORM }
-	{
-		renderSize		= tcu::UVec2(deFloorFloatToInt32(renderSizeMultiplier * static_cast<float>(densityMapSize.x())), deFloorFloatToInt32(renderSizeMultiplier * static_cast<float>(densityMapSize.y())));
-	}
 	bool					dynamicDensityMap;
+	bool					deferredDensityMap;
 	bool					nonSubsampledImages;
-	bool					multiView;
+	bool					subsampledLoads;
+	bool					coarseReconstruction;
+	deUint32				samplersCount;
+	deUint32				viewCount;
 	bool					makeCopy;
-	tcu::UVec2				densityMapSize;
-	tcu::UVec2				renderSize;
+	float					renderMultiplier;
 	VkSampleCountFlagBits	colorSamples;
 	tcu::UVec2				fragmentArea;
+	tcu::UVec2				densityMapSize;
 	VkFormat				densityMapFormat;
 };
 
@@ -97,61 +104,39 @@
 	tcu::Vec4	color;
 };
 
-std::vector<Vertex4RGBA> createFullscreenQuadRG(void)
+std::vector<Vertex4RGBA> createFullscreenMesh(deUint32 viewCount, tcu::Vec2 redGradient, tcu::Vec2 greenGradient)
 {
-	const Vertex4RGBA lowerLeftVertex	= { tcu::Vec4(-1.0f, 1.0f, 0.0f, 1.0f),		tcu::Vec4(0.0f, 1.0f, 0.0f, 1.0f),	tcu::Vec4(0.0f, 1.0f, 0.0f, 1.0f) };
-	const Vertex4RGBA upperLeftVertex	= { tcu::Vec4(-1.0f, -1.0f, 0.0f, 1.0f),	tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f),	tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f) };
-	const Vertex4RGBA lowerRightVertex	= { tcu::Vec4(1.0f, 1.0f, 0.0f, 1.0f),		tcu::Vec4(1.0f, 1.0f, 0.0f, 1.0f),	tcu::Vec4(1.0f, 1.0f, 0.0f, 1.0f) };
-	const Vertex4RGBA upperRightVertex	= { tcu::Vec4(1.0f, -1.0f, 0.0f, 1.0f),		tcu::Vec4(1.0f, 0.0f, 0.0f, 1.0f),	tcu::Vec4(1.0f, 0.0f, 0.0f, 1.0f) };
+	DE_ASSERT(viewCount > 0);
 
-	return
+	const auto&		r		= redGradient;
+	const auto&		g		= greenGradient;
+	const float		step	= 2.0f / static_cast<float>(viewCount);
+	float			xStart	= -1.0f;
+
+	std::vector<Vertex4RGBA> resultMesh;
+	for (deUint32 viewIndex = 0; viewIndex < viewCount ; ++viewIndex)
 	{
-		lowerLeftVertex, lowerRightVertex, upperLeftVertex,
-		upperLeftVertex, lowerRightVertex, upperRightVertex
-	};
-}
+		const float		fIndex		= static_cast<float>(viewIndex);
+		const deUint32	nextIndex	= viewIndex + 1;
+		const float		xEnd		= (nextIndex == viewCount) ? 1.0f : (-1.0f + step * static_cast<float>(nextIndex));
 
-std::vector<Vertex4RGBA> createFullscreenQuadDensity(float densityX, float densityY)
-{
-	const Vertex4RGBA lowerLeftVertex	= { tcu::Vec4(-1.0f, 1.0f, 0.0f, 1.0f),		tcu::Vec4(0.0f, 1.0f, 0.0f, 1.0f),	tcu::Vec4(densityX, densityY, 0.0f, 1.0f) };
-	const Vertex4RGBA upperLeftVertex	= { tcu::Vec4(-1.0f, -1.0f, 0.0f, 1.0f),	tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f),	tcu::Vec4(densityX, densityY, 0.0f, 1.0f) };
-	const Vertex4RGBA lowerRightVertex	= { tcu::Vec4(1.0f, 1.0f, 0.0f, 1.0f),		tcu::Vec4(1.0f, 1.0f, 0.0f, 1.0f),	tcu::Vec4(densityX, densityY, 0.0f, 1.0f) };
-	const Vertex4RGBA upperRightVertex	= { tcu::Vec4(1.0f, -1.0f, 0.0f, 1.0f),		tcu::Vec4(1.0f, 0.0f, 0.0f, 1.0f),	tcu::Vec4(densityX, densityY, 0.0f, 1.0f) };
+		// quad vertex							position						uv								color
+		const Vertex4RGBA lowerLeftVertex	= { { xStart,  1.0f, 0.0f, 1.0f },	{ 0.0f, 1.0f, fIndex, 1.0f },	{ r.x(), g.y(), 0.0f, 1.0f } };
+		const Vertex4RGBA upperLeftVertex	= { { xStart, -1.0f, 0.0f, 1.0f },	{ 0.0f, 0.0f, fIndex, 1.0f },	{ r.x(), g.x(), 0.0f, 1.0f } };
+		const Vertex4RGBA lowerRightVertex	= { {   xEnd,  1.0f, 0.0f, 1.0f },	{ 1.0f, 1.0f, fIndex, 1.0f },	{ r.y(), g.y(), 0.0f, 1.0f } };
+		const Vertex4RGBA upperRightVertex	= { {   xEnd, -1.0f, 0.0f, 1.0f },	{ 1.0f, 0.0f, fIndex, 1.0f },	{ r.y(), g.x(), 0.0f, 1.0f } };
 
-	return
-	{
-		lowerLeftVertex, lowerRightVertex, upperLeftVertex,
-		upperLeftVertex, lowerRightVertex, upperRightVertex
-	};
-};
-
-std::vector<Vertex4RGBA> createFullscreenMeshOutput(bool isMultiview)
-{
-	float midX = isMultiview ? 0.0f : 1.0f;
-
-	const Vertex4RGBA lowerLeftVertex0	= { tcu::Vec4(-1.0f, 1.0f, 0.0f, 1.0f),		tcu::Vec4(0.0f, 1.0f, 0.0f, 1.0f),	tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f) };
-	const Vertex4RGBA upperLeftVertex0	= { tcu::Vec4(-1.0f, -1.0f, 0.0f, 1.0f),	tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f),	tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f) };
-	const Vertex4RGBA lowerRightVertex0	= { tcu::Vec4(midX, 1.0f, 0.0f, 1.0f),		tcu::Vec4(1.0f, 1.0f, 0.0f, 1.0f),	tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f) };
-	const Vertex4RGBA upperRightVertex0	= { tcu::Vec4(midX, -1.0f, 0.0f, 1.0f),		tcu::Vec4(1.0f, 0.0f, 0.0f, 1.0f),	tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f) };
-
-	const Vertex4RGBA lowerLeftVertex1	= { tcu::Vec4(midX, 1.0f, 0.0f, 1.0f),		tcu::Vec4(0.0f, 1.0f, 1.0f, 1.0f),	tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f) };
-	const Vertex4RGBA upperLeftVertex1	= { tcu::Vec4(midX, -1.0f, 0.0f, 1.0f),		tcu::Vec4(0.0f, 0.0f, 1.0f, 1.0f),	tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f) };
-	const Vertex4RGBA lowerRightVertex1	= { tcu::Vec4(1.0f, 1.0f, 0.0f, 1.0f),		tcu::Vec4(1.0f, 1.0f, 1.0f, 1.0f),	tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f) };
-	const Vertex4RGBA upperRightVertex1	= { tcu::Vec4(1.0f, -1.0f, 0.0f, 1.0f),		tcu::Vec4(1.0f, 0.0f, 1.0f, 1.0f),	tcu::Vec4(0.0f, 0.0f, 0.0f, 1.0f) };
-
-	if(isMultiview)
-		return
+		const std::vector<Vertex4RGBA> viewData
 		{
-			lowerLeftVertex0, lowerRightVertex0, upperLeftVertex0,
-			upperLeftVertex0, lowerRightVertex0, upperRightVertex0,
-			lowerLeftVertex1, lowerRightVertex1, upperLeftVertex1,
-			upperLeftVertex1, lowerRightVertex1, upperRightVertex1
+			lowerLeftVertex, lowerRightVertex, upperLeftVertex,
+			upperLeftVertex, lowerRightVertex, upperRightVertex
 		};
-	return
-	{
-		lowerLeftVertex0, lowerRightVertex0, upperLeftVertex0,
-		upperLeftVertex0, lowerRightVertex0, upperRightVertex0
-	};
+
+		resultMesh.insert(resultMesh.end(), viewData.begin(), viewData.end());
+		xStart = xEnd;
+	}
+
+	return resultMesh;
 }
 
 template <typename T>
@@ -243,13 +228,20 @@
 	imageView = createImageView(vk, vkDevice, &imageViewCreateInfo);
 }
 
-template<typename AttachmentDesc, typename AttachmentRef, typename SubpassDesc, typename SubpassDep, typename RenderPassCreateInfo>
 Move<VkRenderPass> createRenderPassProduceDynamicDensityMap(const DeviceInterface&	vk,
 															VkDevice				vkDevice,
+															deUint32				viewMask,
 															const TestParams&		testParams)
 {
-	VkImageLayout densityPassFinalLayout = testParams.dynamicDensityMap ? VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT : VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
-	std::vector<AttachmentDesc>		attachmentDescriptions =
+	DE_ASSERT(testParams.dynamicDensityMap);
+
+	typedef AttachmentDescription2	AttachmentDesc;
+	typedef AttachmentReference2	AttachmentRef;
+	typedef SubpassDescription2		SubpassDesc;
+	typedef SubpassDependency2		SubpassDep;
+	typedef RenderPassCreateInfo2	RenderPassCreateInfo;
+
+	std::vector<AttachmentDesc> attachmentDescriptions
 	{
 		{
 			DE_NULL,															// const void*						pNext
@@ -261,7 +253,11 @@
 			VK_ATTACHMENT_LOAD_OP_DONT_CARE,									// VkAttachmentLoadOp				stencilLoadOp
 			VK_ATTACHMENT_STORE_OP_DONT_CARE,									// VkAttachmentStoreOp				stencilStoreOp
 			VK_IMAGE_LAYOUT_UNDEFINED,											// VkImageLayout					initialLayout
-			densityPassFinalLayout												// VkImageLayout					finalLayout
+#if DRY_RUN_WITHOUT_FDM_EXTENSION
+			VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL							// VkImageLayout					finalLayout
+#else
+			VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT					// VkImageLayout					finalLayout
+#endif
 		}
 	};
 
@@ -270,13 +266,13 @@
 		{ DE_NULL, 0u, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_ASPECT_COLOR_BIT }
 	};
 
-	std::vector<SubpassDesc>	subpassDescriptions
+	std::vector<SubpassDesc> subpassDescriptions
 	{
 		{
 			DE_NULL,
 			(VkSubpassDescriptionFlags)0,										// VkSubpassDescriptionFlags		flags
 			VK_PIPELINE_BIND_POINT_GRAPHICS,									// VkPipelineBindPoint				pipelineBindPoint
-			testParams.multiView ? 0x3u : 0x0u,									// deUint32							viewMask
+			viewMask,															// deUint32							viewMask
 			0u,																	// deUint32							inputAttachmentCount
 			DE_NULL,															// const VkAttachmentReference*		pInputAttachments
 			static_cast<deUint32>(colorAttachmentRefs.size()),					// deUint32							colorAttachmentCount
@@ -288,43 +284,49 @@
 		}
 	};
 
-	std::vector<SubpassDep>		subpassDependencies;
-	if ( testParams.dynamicDensityMap )
+	std::vector<SubpassDep> subpassDependencies
 	{
-		subpassDependencies.emplace_back(
-			SubpassDep(
-				DE_NULL,														// const void*				pNext
-				0u,																// uint32_t					srcSubpass
-				VK_SUBPASS_EXTERNAL,											// uint32_t					dstSubpass
-				VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,					// VkPipelineStageFlags		srcStageMask
-				VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT,				// VkPipelineStageFlags		dstStageMask
-				VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,							// VkAccessFlags			srcAccessMask
-				VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,					// VkAccessFlags			dstAccessMask
-				VK_DEPENDENCY_BY_REGION_BIT,									// VkDependencyFlags		dependencyFlags
-				0u																// deInt32					viewOffset
-			)
-		);
+		{
+			DE_NULL,															// const void*				pNext
+			0u,																	// uint32_t					srcSubpass
+			VK_SUBPASS_EXTERNAL,												// uint32_t					dstSubpass
+#if DRY_RUN_WITHOUT_FDM_EXTENSION
+			VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,						// VkPipelineStageFlags		srcStageMask
+			VK_PIPELINE_STAGE_TRANSFER_BIT,										// VkPipelineStageFlags		dstStageMask
+			VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,								// VkAccessFlags			srcAccessMask
+			VK_ACCESS_COLOR_ATTACHMENT_READ_BIT,								// VkAccessFlags			dstAccessMask
+#else
+			VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,						// VkPipelineStageFlags		srcStageMask
+			VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT,					// VkPipelineStageFlags		dstStageMask
+			VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,								// VkAccessFlags			srcAccessMask
+			VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,						// VkAccessFlags			dstAccessMask
+#endif
+			VK_DEPENDENCY_BY_REGION_BIT,										// VkDependencyFlags		dependencyFlags
+			0u																	// deInt32					viewOffset
+		}
 	};
 
 	vk::VkRenderPassMultiviewCreateInfo	renderPassMultiviewCreateInfo;
-	void*								renderPassInfoPNext	= DE_NULL;
-	std::vector<deUint32>				viewMasks(subpassDescriptions.size(), 0x3u);
+	void*								renderPassInfoPNext = DE_NULL;
+	std::vector<deUint32>				viewMasks(subpassDescriptions.size(), viewMask);
 
-	if (testParams.multiView)
+	if (testParams.viewCount > 1)
 	{
-
-		renderPassMultiviewCreateInfo.sType					= VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO;
-		renderPassMultiviewCreateInfo.pNext					= renderPassInfoPNext;
-		renderPassMultiviewCreateInfo.subpassCount			= static_cast<deUint32>(viewMasks.size());
-		renderPassMultiviewCreateInfo.pViewMasks			= viewMasks.data();
-		renderPassMultiviewCreateInfo.dependencyCount		= 0;
-		renderPassMultiviewCreateInfo.pViewOffsets			= DE_NULL;
-		renderPassMultiviewCreateInfo.correlationMaskCount	= 0U;
-		renderPassMultiviewCreateInfo.pCorrelationMasks		= DE_NULL;
-		renderPassInfoPNext									= (void*)&renderPassMultiviewCreateInfo;
+		renderPassMultiviewCreateInfo =
+		{
+			VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
+			renderPassInfoPNext,
+			static_cast<deUint32>(viewMasks.size()),
+			viewMasks.data(),
+			0,
+			DE_NULL,
+			0U,
+			DE_NULL
+		};
+		renderPassInfoPNext = (void*)&renderPassMultiviewCreateInfo;
 	}
 
-	const RenderPassCreateInfo	renderPassInfo(
+	const RenderPassCreateInfo renderPassInfo(
 		renderPassInfoPNext,													// const void*						pNext
 		(VkRenderPassCreateFlags)0,												// VkRenderPassCreateFlags			flags
 		static_cast<deUint32>(attachmentDescriptions.size()),					// deUint32							attachmentCount
@@ -340,214 +342,225 @@
 	return renderPassInfo.createRenderPass(vk, vkDevice);
 }
 
-template<typename AttachmentDesc, typename AttachmentRef, typename SubpassDesc, typename SubpassDep, typename RenderPassCreateInfo>
-Move<VkRenderPass> createRenderPassProduceSubsampledImage(const				DeviceInterface&	vk,
-														  VkDevice			vkDevice,
-														  const TestParams&	testParams)
+Move<VkRenderPass> createRenderPassProduceSubsampledImage(const DeviceInterface&	vk,
+														  VkDevice					vkDevice,
+														  deUint32					viewMask,
+														  bool						makeCopySubpass,
+														  bool						resampleSubsampled,
+														  const TestParams&			testParams)
 {
+	typedef AttachmentDescription2	AttachmentDesc;
+	typedef AttachmentReference2	AttachmentRef;
+	typedef SubpassDescription2		SubpassDesc;
+	typedef SubpassDependency2		SubpassDep;
+	typedef RenderPassCreateInfo2	RenderPassCreateInfo;
+
+	const void* constNullPtr				= DE_NULL;
+	deUint32	multisampleAttachmentIndex	= 0;
+	deUint32	copyAttachmentIndex			= 0;
+	deUint32	densityMapAttachmentIndex	= 0;
+
 	// add color image
-	std::vector<AttachmentDesc>		attachmentDescriptions
+	VkAttachmentLoadOp			loadOp = resampleSubsampled ? VK_ATTACHMENT_LOAD_OP_LOAD : VK_ATTACHMENT_LOAD_OP_CLEAR;
+	std::vector<AttachmentDesc> attachmentDescriptions
 	{
 		// Output color attachment
 		{
-			DE_NULL,																// const void*						pNext
-			(VkAttachmentDescriptionFlags)0,										// VkAttachmentDescriptionFlags		flags
-			VK_FORMAT_R8G8B8A8_UNORM,												// VkFormat							format
-			testParams.colorSamples,												// VkSampleCountFlagBits			samples
-			VK_ATTACHMENT_LOAD_OP_CLEAR,											// VkAttachmentLoadOp				loadOp
-			VK_ATTACHMENT_STORE_OP_STORE,											// VkAttachmentStoreOp				storeOp
-			VK_ATTACHMENT_LOAD_OP_DONT_CARE,										// VkAttachmentLoadOp				stencilLoadOp
-			VK_ATTACHMENT_STORE_OP_DONT_CARE,										// VkAttachmentStoreOp				stencilStoreOp
-			VK_IMAGE_LAYOUT_UNDEFINED,												// VkImageLayout					initialLayout
-			VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL								// VkImageLayout					finalLayout
+			DE_NULL,															// const void*						pNext
+			(VkAttachmentDescriptionFlags)0,									// VkAttachmentDescriptionFlags		flags
+			VK_FORMAT_R8G8B8A8_UNORM,											// VkFormat							format
+			testParams.colorSamples,											// VkSampleCountFlagBits			samples
+			loadOp,																// VkAttachmentLoadOp				loadOp
+			VK_ATTACHMENT_STORE_OP_STORE,										// VkAttachmentStoreOp				storeOp
+			VK_ATTACHMENT_LOAD_OP_DONT_CARE,									// VkAttachmentLoadOp				stencilLoadOp
+			VK_ATTACHMENT_STORE_OP_DONT_CARE,									// VkAttachmentStoreOp				stencilStoreOp
+			VK_IMAGE_LAYOUT_UNDEFINED,											// VkImageLayout					initialLayout
+			VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL							// VkImageLayout					finalLayout
 		}
 	};
-	deUint32 multisampleAttachmentIndex	= 0;
-	deUint32 copyAttachmentIndex		= 0;
-	deUint32 densityMapAttachmentIndex	= 0;
 
 	// add resolve image when we use more than one sample per fragment
 	if (testParams.colorSamples != VK_SAMPLE_COUNT_1_BIT)
 	{
 		multisampleAttachmentIndex = static_cast<deUint32>(attachmentDescriptions.size());
 		attachmentDescriptions.emplace_back(
-			AttachmentDesc(
-				DE_NULL,															// const void*						pNext
-				(VkAttachmentDescriptionFlags)0,									// VkAttachmentDescriptionFlags		flags
-				VK_FORMAT_R8G8B8A8_UNORM,											// VkFormat							format
-				VK_SAMPLE_COUNT_1_BIT,												// VkSampleCountFlagBits			samples
-				VK_ATTACHMENT_LOAD_OP_CLEAR,										// VkAttachmentLoadOp				loadOp
-				VK_ATTACHMENT_STORE_OP_STORE,										// VkAttachmentStoreOp				storeOp
-				VK_ATTACHMENT_LOAD_OP_DONT_CARE,									// VkAttachmentLoadOp				stencilLoadOp
-				VK_ATTACHMENT_STORE_OP_DONT_CARE,									// VkAttachmentStoreOp				stencilStoreOp
-				VK_IMAGE_LAYOUT_UNDEFINED,											// VkImageLayout					initialLayout
-				VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL							// VkImageLayout					finalLayout
-			)
+			constNullPtr,														// const void*						pNext
+			(VkAttachmentDescriptionFlags)0,									// VkAttachmentDescriptionFlags		flags
+			VK_FORMAT_R8G8B8A8_UNORM,											// VkFormat							format
+			VK_SAMPLE_COUNT_1_BIT,												// VkSampleCountFlagBits			samples
+			VK_ATTACHMENT_LOAD_OP_CLEAR,										// VkAttachmentLoadOp				loadOp
+			VK_ATTACHMENT_STORE_OP_STORE,										// VkAttachmentStoreOp				storeOp
+			VK_ATTACHMENT_LOAD_OP_DONT_CARE,									// VkAttachmentLoadOp				stencilLoadOp
+			VK_ATTACHMENT_STORE_OP_DONT_CARE,									// VkAttachmentStoreOp				stencilStoreOp
+			VK_IMAGE_LAYOUT_UNDEFINED,											// VkImageLayout					initialLayout
+			VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL							// VkImageLayout					finalLayout
 		);
 	}
 
 	// add color image copy ( when render_copy is used )
-	if (testParams.makeCopy)
+	if (makeCopySubpass)
 	{
 		copyAttachmentIndex = static_cast<deUint32>(attachmentDescriptions.size());
 		attachmentDescriptions.emplace_back(
-			AttachmentDesc(
-				DE_NULL,															// const void*						pNext
-				(VkAttachmentDescriptionFlags)0,									// VkAttachmentDescriptionFlags		flags
-				VK_FORMAT_R8G8B8A8_UNORM,											// VkFormat							format
-				testParams.colorSamples,											// VkSampleCountFlagBits			samples
-				VK_ATTACHMENT_LOAD_OP_CLEAR,										// VkAttachmentLoadOp				loadOp
-				VK_ATTACHMENT_STORE_OP_STORE,										// VkAttachmentStoreOp				storeOp
-				VK_ATTACHMENT_LOAD_OP_DONT_CARE,									// VkAttachmentLoadOp				stencilLoadOp
-				VK_ATTACHMENT_STORE_OP_DONT_CARE,									// VkAttachmentStoreOp				stencilStoreOp
-				VK_IMAGE_LAYOUT_UNDEFINED,											// VkImageLayout					initialLayout
-				VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL							// VkImageLayout					finalLayout
-			)
+			constNullPtr,														// const void*						pNext
+			(VkAttachmentDescriptionFlags)0,									// VkAttachmentDescriptionFlags		flags
+			VK_FORMAT_R8G8B8A8_UNORM,											// VkFormat							format
+			testParams.colorSamples,											// VkSampleCountFlagBits			samples
+			VK_ATTACHMENT_LOAD_OP_CLEAR,										// VkAttachmentLoadOp				loadOp
+			VK_ATTACHMENT_STORE_OP_STORE,										// VkAttachmentStoreOp				storeOp
+			VK_ATTACHMENT_LOAD_OP_DONT_CARE,									// VkAttachmentLoadOp				stencilLoadOp
+			VK_ATTACHMENT_STORE_OP_DONT_CARE,									// VkAttachmentStoreOp				stencilStoreOp
+			VK_IMAGE_LAYOUT_UNDEFINED,											// VkImageLayout					initialLayout
+			VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL							// VkImageLayout					finalLayout
 		);
 	}
 
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
 	// add density map
-	{
-		densityMapAttachmentIndex = static_cast<deUint32>(attachmentDescriptions.size());
-		attachmentDescriptions.emplace_back(
-			AttachmentDesc(
-				DE_NULL,															// const void*						pNext
-				(VkAttachmentDescriptionFlags)0,									// VkAttachmentDescriptionFlags		flags
-				testParams.densityMapFormat,										// VkFormat							format
-				VK_SAMPLE_COUNT_1_BIT,												// VkSampleCountFlagBits			samples
-				VK_ATTACHMENT_LOAD_OP_LOAD,											// VkAttachmentLoadOp				loadOp
-				VK_ATTACHMENT_STORE_OP_DONT_CARE,									// VkAttachmentStoreOp				storeOp
-				VK_ATTACHMENT_LOAD_OP_DONT_CARE,									// VkAttachmentLoadOp				stencilLoadOp
-				VK_ATTACHMENT_STORE_OP_DONT_CARE,									// VkAttachmentStoreOp				stencilStoreOp
-				VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT,					// VkImageLayout					initialLayout
-				VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT					// VkImageLayout					finalLayout
-			)
-		);
-	}
-#endif
+	densityMapAttachmentIndex = static_cast<deUint32>(attachmentDescriptions.size());
+	attachmentDescriptions.emplace_back(
+		constNullPtr,															// const void*						pNext
+		(VkAttachmentDescriptionFlags)0,										// VkAttachmentDescriptionFlags		flags
+		testParams.densityMapFormat,											// VkFormat							format
+		VK_SAMPLE_COUNT_1_BIT,													// VkSampleCountFlagBits			samples
+		VK_ATTACHMENT_LOAD_OP_LOAD,												// VkAttachmentLoadOp				loadOp
+		VK_ATTACHMENT_STORE_OP_DONT_CARE,										// VkAttachmentStoreOp				storeOp
+		VK_ATTACHMENT_LOAD_OP_DONT_CARE,										// VkAttachmentLoadOp				stencilLoadOp
+		VK_ATTACHMENT_STORE_OP_DONT_CARE,										// VkAttachmentStoreOp				stencilStoreOp
+		VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT,						// VkImageLayout					initialLayout
+		VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT						// VkImageLayout					finalLayout
+	);
 
 	std::vector<AttachmentRef> colorAttachmentRefs0
 	{
 		{ DE_NULL, 0u, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_ASPECT_COLOR_BIT }
 	};
 
-	std::vector<AttachmentRef> resolveAttachmentRefs0;
-
-	// for multisampled scenario without copying results - we need to add resolve attachment
-	if(testParams.colorSamples!= VK_SAMPLE_COUNT_1_BIT && !testParams.makeCopy)
+	// for multisampled scenario we need to add resolve attachment
+	// (for makeCopy scenario it is used in second subpass)
+	AttachmentRef*	pResolveAttachments		= DE_NULL;
+	AttachmentRef	resolveAttachmentRef
 	{
-		resolveAttachmentRefs0.push_back( { DE_NULL, multisampleAttachmentIndex, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_ASPECT_COLOR_BIT } );
+		DE_NULL,
+		multisampleAttachmentIndex,
+		VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
+		VK_IMAGE_ASPECT_COLOR_BIT
 	};
+	if (testParams.colorSamples != VK_SAMPLE_COUNT_1_BIT)
+		pResolveAttachments = &resolveAttachmentRef;
 
 	std::vector<SubpassDesc> subpassDescriptions
 	{
 		{
 			DE_NULL,
-			(VkSubpassDescriptionFlags)0,												// VkSubpassDescriptionFlags	flags
-			VK_PIPELINE_BIND_POINT_GRAPHICS,											// VkPipelineBindPoint			pipelineBindPoint
-			testParams.multiView ? 0x3u : 0x0u,											// deUint32						viewMask
-			0u,																			// deUint32						inputAttachmentCount
-			DE_NULL,																	// const VkAttachmentReference*	pInputAttachments
-			static_cast<deUint32>(colorAttachmentRefs0.size()),							// deUint32						colorAttachmentCount
-			colorAttachmentRefs0.data(),												// const VkAttachmentReference*	pColorAttachments
-			resolveAttachmentRefs0.empty() ? DE_NULL : resolveAttachmentRefs0.data(),	// const VkAttachmentReference*	pResolveAttachments
-			DE_NULL,																	// const VkAttachmentReference*	pDepthStencilAttachment
-			0u,																			// deUint32						preserveAttachmentCount
-			DE_NULL																		// const deUint32*				pPreserveAttachments
+			(VkSubpassDescriptionFlags)0,							// VkSubpassDescriptionFlags	flags
+			VK_PIPELINE_BIND_POINT_GRAPHICS,						// VkPipelineBindPoint			pipelineBindPoint
+			viewMask,												// deUint32						viewMask
+			0u,														// deUint32						inputAttachmentCount
+			DE_NULL,												// const VkAttachmentReference*	pInputAttachments
+			static_cast<deUint32>(colorAttachmentRefs0.size()),		// deUint32						colorAttachmentCount
+			colorAttachmentRefs0.data(),							// const VkAttachmentReference*	pColorAttachments
+			makeCopySubpass ? DE_NULL : pResolveAttachments,		// const VkAttachmentReference*	pResolveAttachments
+			DE_NULL,												// const VkAttachmentReference*	pDepthStencilAttachment
+			0u,														// deUint32						preserveAttachmentCount
+			DE_NULL													// const deUint32*				pPreserveAttachments
 		}
 	};
 
-	std::vector<AttachmentRef> inputAttachmentRefs1
+	std::vector<AttachmentRef>	inputAttachmentRefs1
 	{
 		{ DE_NULL, 0u, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_ASPECT_COLOR_BIT }
 	};
-	std::vector<AttachmentRef> colorAttachmentRefs1
+	std::vector<AttachmentRef>	colorAttachmentRefs1
 	{
 		{ DE_NULL, copyAttachmentIndex, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_ASPECT_COLOR_BIT }
 	};
-	std::vector<AttachmentRef> resolveAttachmentRefs1;
-	if (testParams.makeCopy)
-	{
-		if (testParams.colorSamples != VK_SAMPLE_COUNT_1_BIT)
-			resolveAttachmentRefs1.push_back({ DE_NULL, multisampleAttachmentIndex, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_ASPECT_COLOR_BIT });
+	std::vector<SubpassDep>		subpassDependencies;
 
-		subpassDescriptions.push_back(
-			{
-				DE_NULL,
-				(VkSubpassDescriptionFlags)0,												// VkSubpassDescriptionFlags	flags
-				VK_PIPELINE_BIND_POINT_GRAPHICS,											// VkPipelineBindPoint			pipelineBindPoint
-				testParams.multiView ? 0x3u : 0x0u,											// deUint32						viewMask
-				static_cast<deUint32>(inputAttachmentRefs1.size()),							// deUint32						inputAttachmentCount
-				inputAttachmentRefs1.data(),												// const VkAttachmentReference*	pInputAttachments
-				static_cast<deUint32>(colorAttachmentRefs1.size()),							// deUint32						colorAttachmentCount
-				colorAttachmentRefs1.data(),												// const VkAttachmentReference*	pColorAttachments
-				resolveAttachmentRefs1.empty() ? DE_NULL : resolveAttachmentRefs1.data(),	// const VkAttachmentReference*	pResolveAttachments
-				DE_NULL,																	// const VkAttachmentReference*	pDepthStencilAttachment
-				0u,																			// deUint32						preserveAttachmentCount
-				DE_NULL																		// const deUint32*				pPreserveAttachments
-			}
+	if (makeCopySubpass)
+	{
+		subpassDescriptions.push_back({
+			DE_NULL,
+			(VkSubpassDescriptionFlags)0,							// VkSubpassDescriptionFlags	flags
+			VK_PIPELINE_BIND_POINT_GRAPHICS,						// VkPipelineBindPoint			pipelineBindPoint
+			viewMask,												// deUint32						viewMask
+			static_cast<deUint32>(inputAttachmentRefs1.size()),		// deUint32						inputAttachmentCount
+			inputAttachmentRefs1.data(),							// const VkAttachmentReference*	pInputAttachments
+			static_cast<deUint32>(colorAttachmentRefs1.size()),		// deUint32						colorAttachmentCount
+			colorAttachmentRefs1.data(),							// const VkAttachmentReference*	pColorAttachments
+			pResolveAttachments,									// const VkAttachmentReference*	pResolveAttachments
+			DE_NULL,												// const VkAttachmentReference*	pDepthStencilAttachment
+			0u,														// deUint32						preserveAttachmentCount
+			DE_NULL													// const deUint32*				pPreserveAttachments
+		});
+
+		VkDependencyFlags dependencyFlags = VK_DEPENDENCY_BY_REGION_BIT;
+		if (testParams.viewCount > 1)
+			dependencyFlags |= VK_DEPENDENCY_VIEW_LOCAL_BIT;
+
+		subpassDependencies.emplace_back(
+			constNullPtr,																// const void*				pNext
+			0u,																			// uint32_t					srcSubpass
+			1u,																			// uint32_t					dstSubpass
+			VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,								// VkPipelineStageFlags		srcStageMask
+			VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,										// VkPipelineStageFlags		dstStageMask
+			VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,										// VkAccessFlags			srcAccessMask
+			VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,										// VkAccessFlags			dstAccessMask
+			dependencyFlags,															// VkDependencyFlags		dependencyFlags
+			0u																			// deInt32					viewOffset
 		);
 	}
 
-	std::vector<SubpassDep> subpassDependencies;
-	if(testParams.makeCopy)
+	VkPipelineStageFlags dstStageMask = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT;
+
+	// for coarse reconstruction we need to put barrier on vertex stage
+	if (testParams.coarseReconstruction)
+		dstStageMask = VK_PIPELINE_STAGE_VERTEX_SHADER_BIT;
+
+	subpassDependencies.emplace_back(
+		constNullPtr,																	// const void*				pNext
+		static_cast<deUint32>(subpassDescriptions.size())-1u,							// uint32_t					srcSubpass
+		VK_SUBPASS_EXTERNAL,															// uint32_t					dstSubpass
+		VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,									// VkPipelineStageFlags		srcStageMask
+		dstStageMask,																	// VkPipelineStageFlags		dstStageMask
+		VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,											// VkAccessFlags			srcAccessMask
+		VK_ACCESS_SHADER_READ_BIT,														// VkAccessFlags			dstAccessMask
+		VK_DEPENDENCY_BY_REGION_BIT,													// VkDependencyFlags		dependencyFlags
+		0u																				// deInt32					viewOffset
+	);
+
+	VkRenderPassFragmentDensityMapCreateInfoEXT renderPassFragmentDensityMap =
 	{
-		VkDependencyFlags dependencyFlags = VK_DEPENDENCY_BY_REGION_BIT;
-		if (testParams.multiView)
-			dependencyFlags |= VK_DEPENDENCY_VIEW_LOCAL_BIT;
+		VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT,
+		DE_NULL,
+		{ densityMapAttachmentIndex, VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT }
+	};
 
-		subpassDependencies.push_back({
-				DE_NULL,															// const void*				pNext
-				0u,																	// uint32_t					srcSubpass
-				1u,																	// uint32_t					dstSubpass
-				VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,						// VkPipelineStageFlags		srcStageMask
-				VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,								// VkPipelineStageFlags		dstStageMask
-				VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,								// VkAccessFlags			srcAccessMask
-				VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,								// VkAccessFlags			dstAccessMask
-				dependencyFlags,													// VkDependencyFlags		dependencyFlags
-				0u																	// deInt32					viewOffset
-		});
-	}
-	subpassDependencies.push_back({
-			DE_NULL,																// const void*				pNext
-			testParams.makeCopy ? 1u : 0u,											// uint32_t					srcSubpass
-			VK_SUBPASS_EXTERNAL,													// uint32_t					dstSubpass
-			VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,							// VkPipelineStageFlags		srcStageMask
-			VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,									// VkPipelineStageFlags		dstStageMask
-			VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,									// VkAccessFlags			srcAccessMask
-			VK_ACCESS_SHADER_READ_BIT,												// VkAccessFlags			dstAccessMask
-			VK_DEPENDENCY_BY_REGION_BIT,											// VkDependencyFlags		dependencyFlags
-			0u																		// deInt32					viewOffset
-		});
-
-	VkRenderPassFragmentDensityMapCreateInfoEXT renderPassFragmentDensityMap;
-	renderPassFragmentDensityMap.sType							= VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT;
-	renderPassFragmentDensityMap.pNext							= DE_NULL;
-	renderPassFragmentDensityMap.fragmentDensityMapAttachment	= { densityMapAttachmentIndex, VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT };
-
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
 	void* renderPassInfoPNext = (void*)&renderPassFragmentDensityMap;
-#else
-	void* renderPassInfoPNext = DE_NULL;
+
+#if DRY_RUN_WITHOUT_FDM_EXTENSION
+	// density map description is at the end - pop it from vector
+	attachmentDescriptions.pop_back();
+	renderPassInfoPNext = DE_NULL;
 #endif
 
 	vk::VkRenderPassMultiviewCreateInfo	renderPassMultiviewCreateInfo;
-	std::vector<deUint32>				viewMasks(subpassDescriptions.size(), 0x3u);
-	deInt32								pViewOffsets = 0;
+	std::vector<deUint32>				viewMasks		(subpassDescriptions.size(), viewMask);
+	deInt32								pViewOffsets	(0);
 
-	if (testParams.multiView)
+	if (testParams.viewCount > 1)
 	{
-
-		renderPassMultiviewCreateInfo.sType					= VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO;
-		renderPassMultiviewCreateInfo.pNext					= renderPassInfoPNext;
-		renderPassMultiviewCreateInfo.subpassCount			= static_cast<deUint32>(viewMasks.size());
-		renderPassMultiviewCreateInfo.pViewMasks			= viewMasks.data();
-		renderPassMultiviewCreateInfo.dependencyCount		= testParams.makeCopy ? 1 : 0;
-		renderPassMultiviewCreateInfo.pViewOffsets			= testParams.makeCopy ? &pViewOffsets : DE_NULL;
-		renderPassMultiviewCreateInfo.correlationMaskCount	= 0U;
-		renderPassMultiviewCreateInfo.pCorrelationMasks		= DE_NULL;
-		renderPassInfoPNext									= (void*)&renderPassMultiviewCreateInfo;
+		renderPassMultiviewCreateInfo =
+		{
+			VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
+			renderPassInfoPNext,
+			static_cast<deUint32>(viewMasks.size()),								// deUint32				subpassCount
+			viewMasks.data(),														// const deUint32*		pViewMasks
+			makeCopySubpass ? 1u : 0u,												// deUint32				dependencyCount
+			makeCopySubpass ? &pViewOffsets : DE_NULL,								// const deInt32*		pViewOffsets
+			0u,																		// deUint32				correlationMaskCount
+			DE_NULL,																// const deUint32*		pCorrelationMasks
+		};
+		renderPassInfoPNext = (void*)&renderPassMultiviewCreateInfo;
 	}
 
 	const RenderPassCreateInfo	renderPassInfo(
@@ -566,17 +579,20 @@
 	return renderPassInfo.createRenderPass(vk, vkDevice);
 }
 
-template<typename AttachmentDesc, typename AttachmentRef, typename SubpassDesc, typename SubpassDep, typename RenderPassCreateInfo>
 Move<VkRenderPass> createRenderPassOutputSubsampledImage(const DeviceInterface&	vk,
-													VkDevice				vkDevice,
-													const TestParams&		testParams)
+														 VkDevice				vkDevice)
 {
-	DE_UNREF(testParams);
-	// copy subsampled image to ordinary image - you cannot retrieve subsampled image to CPU in any way. You must first convert it into plain image through rendering
-	std::vector<AttachmentDesc>		attachmentDescriptions =
+	typedef AttachmentDescription2	AttachmentDesc;
+	typedef AttachmentReference2	AttachmentRef;
+	typedef SubpassDescription2		SubpassDesc;
+	typedef RenderPassCreateInfo2	RenderPassCreateInfo;
+
+	// copy subsampled image to ordinary image - you cannot retrieve subsampled image to CPU in any way.
+	// You must first convert it into plain image through rendering
+	std::vector<AttachmentDesc> attachmentDescriptions =
 	{
 		// output attachment
-		AttachmentDesc(
+		{
 			DE_NULL,											// const void*						pNext
 			(VkAttachmentDescriptionFlags)0,					// VkAttachmentDescriptionFlags		flags
 			VK_FORMAT_R8G8B8A8_UNORM,							// VkFormat							format
@@ -587,7 +603,7 @@
 			VK_ATTACHMENT_STORE_OP_DONT_CARE,					// VkAttachmentStoreOp				stencilStoreOp
 			VK_IMAGE_LAYOUT_UNDEFINED,							// VkImageLayout					initialLayout
 			VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL			// VkImageLayout					finalLayout
-		),
+		},
 	};
 
 	std::vector<AttachmentRef> colorAttachmentRefs
@@ -595,7 +611,7 @@
 		{ DE_NULL, 0u, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_ASPECT_COLOR_BIT }
 	};
 
-	std::vector<SubpassDesc>	subpassDescriptions =
+	std::vector<SubpassDesc> subpassDescriptions =
 	{
 		{
 			DE_NULL,
@@ -629,9 +645,9 @@
 	return renderPassInfo.createRenderPass(vk, vkDevice);
 }
 
-Move<VkFramebuffer> createFrameBuffer( const DeviceInterface& vk, VkDevice vkDevice, VkRenderPass renderPass, deUint32 width, deUint32 height, const std::vector<VkImageView>& imageViews)
+Move<VkFramebuffer> createFrameBuffer( const DeviceInterface& vk, VkDevice vkDevice, VkRenderPass renderPass, VkExtent3D size, const std::vector<VkImageView>& imageViews)
 {
-	const VkFramebufferCreateInfo	framebufferParams =
+	const VkFramebufferCreateInfo framebufferParams =
 	{
 		VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,	// VkStructureType			sType;
 		DE_NULL,									// const void*				pNext;
@@ -639,109 +655,233 @@
 		renderPass,									// VkRenderPass				renderPass;
 		static_cast<deUint32>(imageViews.size()),	// deUint32					attachmentCount;
 		imageViews.data(),							// const VkImageView*		pAttachments;
-		width,										// deUint32					width;
-		height,										// deUint32					height;
+		size.width,									// deUint32					width;
+		size.height,								// deUint32					height;
 		1u											// deUint32					layers;
 	};
 
 	return createFramebuffer(vk, vkDevice, &framebufferParams);
 }
 
+void copyBufferToImage(const DeviceInterface&					vk,
+					   VkDevice									device,
+					   VkQueue									queue,
+					   deUint32									queueFamilyIndex,
+					   const VkBuffer&							buffer,
+					   VkDeviceSize								bufferSize,
+					   const VkExtent3D&						imageSize,
+					   deUint32									arrayLayers,
+					   VkImage									destImage)
+{
+	Move<VkCommandPool>		cmdPool					= createCommandPool(vk, device, VK_COMMAND_POOL_CREATE_TRANSIENT_BIT, queueFamilyIndex);
+	Move<VkCommandBuffer>	cmdBuffer				= allocateCommandBuffer(vk, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY);
+	Move<VkFence>			fence					= createFence(vk, device);
+	VkImageLayout			destImageLayout			= VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT;
+	VkPipelineStageFlags	destImageDstStageFlags	= VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT;
+	VkAccessFlags			finalAccessMask			= VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT;
+
+#if DRY_RUN_WITHOUT_FDM_EXTENSION
+	destImageLayout			= VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
+	destImageDstStageFlags	= VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT;
+	finalAccessMask			= VK_ACCESS_SHADER_READ_BIT;
+#endif
+
+	const VkCommandBufferBeginInfo cmdBufferBeginInfo =
+	{
+		VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,		// VkStructureType					sType;
+		DE_NULL,											// const void*						pNext;
+		VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,		// VkCommandBufferUsageFlags		flags;
+		(const VkCommandBufferInheritanceInfo*)DE_NULL,
+	};
+
+	const VkBufferImageCopy copyRegion =
+	{
+		0,													// VkDeviceSize					bufferOffset
+		0,													// deUint32						bufferRowLength
+		0,													// deUint32						bufferImageHeight
+		{ VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, arrayLayers },	// VkImageSubresourceLayers		imageSubresource
+		{ 0, 0, 0 },										// VkOffset3D					imageOffset
+		imageSize											// VkExtent3D					imageExtent
+	};
+
+	// Barriers for copying buffer to image
+	const VkBufferMemoryBarrier preBufferBarrier = makeBufferMemoryBarrier(
+		VK_ACCESS_HOST_WRITE_BIT,							// VkAccessFlags	srcAccessMask;
+		VK_ACCESS_TRANSFER_READ_BIT,						// VkAccessFlags	dstAccessMask;
+		buffer,												// VkBuffer			buffer;
+		0u,													// VkDeviceSize		offset;
+		bufferSize											// VkDeviceSize		size;
+	);
+
+	const VkImageSubresourceRange subresourceRange
+	{														// VkImageSubresourceRange	subresourceRange;
+		VK_IMAGE_ASPECT_COLOR_BIT,							// VkImageAspectFlags		aspect;
+		0u,													// deUint32					baseMipLevel;
+		1u,													// deUint32					mipLevels;
+		0u,													// deUint32					baseArraySlice;
+		arrayLayers											// deUint32					arraySize;
+	};
+
+	const VkImageMemoryBarrier preImageBarrier = makeImageMemoryBarrier(
+		0u,													// VkAccessFlags			srcAccessMask;
+		VK_ACCESS_TRANSFER_WRITE_BIT,						// VkAccessFlags			dstAccessMask;
+		VK_IMAGE_LAYOUT_UNDEFINED,							// VkImageLayout			oldLayout;
+		VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,				// VkImageLayout			newLayout;
+		destImage,											// VkImage					image;
+		subresourceRange									// VkImageSubresourceRange	subresourceRange;
+	);
+
+	const VkImageMemoryBarrier postImageBarrier = makeImageMemoryBarrier(
+		VK_ACCESS_TRANSFER_WRITE_BIT,						// VkAccessFlags			srcAccessMask;
+		finalAccessMask,									// VkAccessFlags			dstAccessMask;
+		VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,				// VkImageLayout			oldLayout;
+		destImageLayout,									// VkImageLayout			newLayout;
+		destImage,											// VkImage					image;
+		subresourceRange									// VkImageSubresourceRange	subresourceRange;
+	);
+
+	VK_CHECK(vk.beginCommandBuffer(*cmdBuffer, &cmdBufferBeginInfo));
+	vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_HOST_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 1, &preBufferBarrier, 1, &preImageBarrier);
+	vk.cmdCopyBufferToImage(*cmdBuffer, buffer, destImage, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1u, &copyRegion);
+	vk.cmdPipelineBarrier(*cmdBuffer, VK_PIPELINE_STAGE_TRANSFER_BIT, destImageDstStageFlags, (VkDependencyFlags)0, 0, (const VkMemoryBarrier*)DE_NULL, 0, (const VkBufferMemoryBarrier*)DE_NULL, 1, &postImageBarrier);
+	VK_CHECK(vk.endCommandBuffer(*cmdBuffer));
+
+	const VkPipelineStageFlags pipelineStageFlags = VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT;
+
+	const VkSubmitInfo submitInfo =
+	{
+		VK_STRUCTURE_TYPE_SUBMIT_INFO,	// VkStructureType				sType;
+		DE_NULL,						// const void*					pNext;
+		0u,								// deUint32						waitSemaphoreCount;
+		DE_NULL,						// const VkSemaphore*			pWaitSemaphores;
+		&pipelineStageFlags,			// const VkPipelineStageFlags*	pWaitDstStageMask;
+		1u,								// deUint32						commandBufferCount;
+		&cmdBuffer.get(),				// const VkCommandBuffer*		pCommandBuffers;
+		0u,								// deUint32						signalSemaphoreCount;
+		DE_NULL							// const VkSemaphore*			pSignalSemaphores;
+	};
+
+	try
+	{
+		VK_CHECK(vk.queueSubmit(queue, 1, &submitInfo, *fence));
+		VK_CHECK(vk.waitForFences(device, 1, &fence.get(), true, ~(0ull) /* infinity */));
+	}
+	catch (...)
+	{
+		VK_CHECK(vk.deviceWaitIdle(device));
+		throw;
+	}
+}
+
 class FragmentDensityMapTest : public vkt::TestCase
 {
 public:
-										FragmentDensityMapTest	(tcu::TestContext&	testContext,
-																 const std::string&	name,
-																 const std::string&	description,
-																 const TestParams&	testParams);
-	virtual void						initPrograms			(SourceCollections&	sourceCollections) const;
-	virtual TestInstance*				createInstance			(Context&			context) const;
-	virtual void						checkSupport			(Context& context) const;
+							FragmentDensityMapTest	(tcu::TestContext&	testContext,
+													 const std::string&	name,
+													 const std::string&	description,
+													 const TestParams&	testParams);
+	virtual void			initPrograms			(SourceCollections&	sourceCollections) const;
+	virtual TestInstance*	createInstance			(Context&			context) const;
+	virtual void			checkSupport			(Context&			context) const;
 
 private:
-	const TestParams					m_testParams;
+	const TestParams		m_testParams;
 };
 
 class FragmentDensityMapTestInstance : public vkt::TestInstance
 {
 public:
-													FragmentDensityMapTestInstance	(Context&					context,
-																					 const TestParams&			testParams);
-	virtual tcu::TestStatus							iterate							(void);
+									FragmentDensityMapTestInstance	(Context&			context,
+																	 const TestParams&	testParams);
+	virtual tcu::TestStatus			iterate							(void);
+
 private:
-	tcu::TestStatus									verifyImage						(void);
 
-	TestParams										m_testParams;
+	tcu::TestStatus					verifyImage						(void);
 
-	VkPhysicalDeviceFragmentDensityMapPropertiesEXT	m_fragmentDensityMapProperties;
+private:
 
-	Move<VkCommandPool>								m_cmdPool;
+	typedef de::SharedPtr<Unique<VkSampler> >	VkSamplerSp;
+	typedef de::SharedPtr<Unique<VkImage> >		VkImageSp;
+	typedef de::SharedPtr<Allocation>			AllocationSp;
+	typedef de::SharedPtr<Unique<VkImageView> >	VkImageViewSp;
 
-	Move<VkImage>									m_densityMapImage;
-	de::MovePtr<Allocation>							m_densityMapImageAlloc;
-	Move<VkImageView>								m_densityMapImageView;
+	TestParams						m_testParams;
+	tcu::UVec2						m_renderSize;
+	tcu::Vec2						m_densityValue;
+	deUint32						m_viewMask;
 
-	Move<VkImage>									m_colorImage;
-	de::MovePtr<Allocation>							m_colorImageAlloc;
-	Move<VkImageView>								m_colorImageView;
+	Move<VkCommandPool>				m_cmdPool;
 
-	Move<VkImage>									m_colorCopyImage;
-	de::MovePtr<Allocation>							m_colorCopyImageAlloc;
-	Move<VkImageView>								m_colorCopyImageView;
+	std::vector<VkImageSp>			m_densityMapImages;
+	std::vector<AllocationSp>		m_densityMapImageAllocs;
+	std::vector<VkImageViewSp>		m_densityMapImageViews;
 
-	Move<VkImage>									m_colorResolvedImage;
-	de::MovePtr<Allocation>							m_colorResolvedImageAlloc;
-	Move<VkImageView>								m_colorResolvedImageView;
+	Move<VkImage>					m_colorImage;
+	de::MovePtr<Allocation>			m_colorImageAlloc;
+	Move<VkImageView>				m_colorImageView;
 
-	Move<VkImage>									m_outputImage;
-	de::MovePtr<Allocation>							m_outputImageAlloc;
-	Move<VkImageView>								m_outputImageView;
+	Move<VkImage>					m_colorCopyImage;
+	de::MovePtr<Allocation>			m_colorCopyImageAlloc;
+	Move<VkImageView>				m_colorCopyImageView;
 
-	Move<VkSampler>									m_colorSampler;
+	Move<VkImage>					m_colorResolvedImage;
+	de::MovePtr<Allocation>			m_colorResolvedImageAlloc;
+	Move<VkImageView>				m_colorResolvedImageView;
 
-	Move<VkRenderPass>								m_renderPassProduceDynamicDensityMap;
-	Move<VkRenderPass>								m_renderPassProduceSubsampledImage;
-	Move<VkRenderPass>								m_renderPassOutputSubsampledImage;
-	Move<VkFramebuffer>								m_framebufferProduceDynamicDensityMap;
-	Move<VkFramebuffer>								m_framebufferProduceSubsampledImage;
-	Move<VkFramebuffer>								m_framebufferOutputSubsampledImage;
+	Move<VkImage>					m_outputImage;
+	de::MovePtr<Allocation>			m_outputImageAlloc;
+	Move<VkImageView>				m_outputImageView;
 
-	Move<VkDescriptorSetLayout>						m_descriptorSetLayoutProduceSubsampled;
+	std::vector<VkSamplerSp>		m_colorSamplers;
 
-	Move<VkDescriptorSetLayout>						m_descriptorSetLayoutCopySubsampledImage;
-	Move<VkDescriptorPool>							m_descriptorPoolCopySubsampledImage;
-	Move<VkDescriptorSet>							m_descriptorSetCopySubsampledImage;
+	Move<VkRenderPass>				m_renderPassProduceDynamicDensityMap;
+	Move<VkRenderPass>				m_renderPassProduceSubsampledImage;
+	Move<VkRenderPass>				m_renderPassUpdateSubsampledImage;
+	Move<VkRenderPass>				m_renderPassOutputSubsampledImage;
+	Move<VkFramebuffer>				m_framebufferProduceDynamicDensityMap;
+	Move<VkFramebuffer>				m_framebufferProduceSubsampledImage;
+	Move<VkFramebuffer>				m_framebufferUpdateSubsampledImage;
+	Move<VkFramebuffer>				m_framebufferOutputSubsampledImage;
 
-	Move<VkDescriptorSetLayout>						m_descriptorSetLayoutOutputSubsampledImage;
-	Move<VkDescriptorPool>							m_descriptorPoolOutputSubsampledImage;
-	Move<VkDescriptorSet>							m_descriptorSetOutputSubsampledImage;
+	Move<VkDescriptorSetLayout>		m_descriptorSetLayoutProduceSubsampled;
 
-	Move<VkShaderModule>							m_vertexCommonShaderModule;
-	Move<VkShaderModule>							m_fragmentShaderModuleProduceSubsampledImage;
-	Move<VkShaderModule>							m_fragmentShaderModuleCopySubsampledImage;
-	Move<VkShaderModule>							m_fragmentShaderModuleOutputSubsampledImage;
+	Move<VkDescriptorSetLayout>		m_descriptorSetLayoutOperateOnSubsampledImage;
+	Move<VkDescriptorPool>			m_descriptorPoolOperateOnSubsampledImage;
+	Move<VkDescriptorSet>			m_descriptorSetOperateOnSubsampledImage;
 
-	std::vector<Vertex4RGBA>						m_verticesDDM;
-	Move<VkBuffer>									m_vertexBufferDDM;
-	de::MovePtr<Allocation>							m_vertexBufferAllocDDM;
+	Move<VkDescriptorSetLayout>		m_descriptorSetLayoutOutputSubsampledImage;
+	Move<VkDescriptorPool>			m_descriptorPoolOutputSubsampledImage;
+	Move<VkDescriptorSet>			m_descriptorSetOutputSubsampledImage;
 
-	std::vector<Vertex4RGBA>						m_vertices;
-	Move<VkBuffer>									m_vertexBuffer;
-	de::MovePtr<Allocation>							m_vertexBufferAlloc;
+	Move<VkShaderModule>			m_vertexCommonShaderModule;
+	Move<VkShaderModule>			m_fragmentShaderModuleProduceSubsampledImage;
+	Move<VkShaderModule>			m_fragmentShaderModuleCopySubsampledImage;
+	Move<VkShaderModule>			m_fragmentShaderModuleUpdateSubsampledImage;
+	Move<VkShaderModule>			m_fragmentShaderModuleOutputSubsampledImage;
 
-	std::vector<Vertex4RGBA>						m_verticesOutput;
-	Move<VkBuffer>									m_vertexBufferOutput;
-	de::MovePtr<Allocation>							m_vertexBufferOutputAlloc;
+	std::vector<Vertex4RGBA>		m_verticesDDM;
+	Move<VkBuffer>					m_vertexBufferDDM;
+	de::MovePtr<Allocation>			m_vertexBufferAllocDDM;
 
-	Move<VkPipelineLayout>							m_pipelineLayoutNoDescriptors;
-	Move<VkPipelineLayout>							m_pipelineLayoutCopySubsampledImage;
-	Move<VkPipelineLayout>							m_pipelineLayoutOutputSubsampledImage;
-	Move<VkPipeline>								m_graphicsPipelineProduceDynamicDensityMap;
-	Move<VkPipeline>								m_graphicsPipelineProduceSubsampledImage;
-	Move<VkPipeline>								m_graphicsPipelineCopySubsampledImage;
-	Move<VkPipeline>								m_graphicsPipelineOutputSubsampledImage;
+	std::vector<Vertex4RGBA>		m_vertices;
+	Move<VkBuffer>					m_vertexBuffer;
+	de::MovePtr<Allocation>			m_vertexBufferAlloc;
 
-	Move<VkCommandBuffer>							m_cmdBuffer;
+	std::vector<Vertex4RGBA>		m_verticesOutput;
+	Move<VkBuffer>					m_vertexBufferOutput;
+	de::MovePtr<Allocation>			m_vertexBufferOutputAlloc;
+
+	Move<VkPipelineLayout>			m_pipelineLayoutNoDescriptors;
+	Move<VkPipelineLayout>			m_pipelineLayoutOperateOnSubsampledImage;
+	Move<VkPipelineLayout>			m_pipelineLayoutOutputSubsampledImage;
+	Move<VkPipeline>				m_graphicsPipelineProduceDynamicDensityMap;
+	Move<VkPipeline>				m_graphicsPipelineProduceSubsampledImage;
+	Move<VkPipeline>				m_graphicsPipelineCopySubsampledImage;
+	Move<VkPipeline>				m_graphicsPipelineUpdateSubsampledImage;
+	Move<VkPipeline>				m_graphicsPipelineOutputSubsampledImage;
+
+	Move<VkCommandBuffer>			m_cmdBuffer;
 };
 
 FragmentDensityMapTest::FragmentDensityMapTest (tcu::TestContext&	testContext,
@@ -751,12 +891,12 @@
 	: vkt::TestCase	(testContext, name, description)
 	, m_testParams	(testParams)
 {
+	DE_ASSERT(testParams.samplersCount > 0);
 }
 
 void FragmentDensityMapTest::initPrograms(SourceCollections& sourceCollections) const
 {
-	std::ostringstream densityVertexGLSL;
-	densityVertexGLSL <<
+	sourceCollections.glslSources.add("vert") << glu::VertexSource(
 		"#version 450\n"
 		"#extension GL_EXT_multiview : enable\n"
 		"layout(location = 0) in  vec4 inPosition;\n"
@@ -769,11 +909,37 @@
 		"	gl_Position = inPosition;\n"
 		"	outUV = inUV;\n"
 		"	outColor = inColor;\n"
-		"}\n";
-	sourceCollections.glslSources.add("densitymap_vert") << glu::VertexSource(densityVertexGLSL.str());
+		"}\n"
+	);
 
-	std::ostringstream densityFragmentProduceGLSL;
-	densityFragmentProduceGLSL <<
+#if DRY_RUN_WITHOUT_FDM_EXTENSION
+	sourceCollections.glslSources.add("frag_produce_subsampled") << glu::FragmentSource(
+		"#version 450\n"
+		"#extension GL_EXT_multiview : enable\n"
+		"layout(location = 0) in vec4 inUV;\n"
+		"layout(location = 1) in vec4 inColor;\n"
+		"layout(location = 0) out vec4 fragColor;\n"
+		"void main(void)\n"
+		"{\n"
+		"	fragColor = vec4(inColor.x, inColor.y, 0.5, 0.5);\n"
+		"}\n"
+	);
+
+	sourceCollections.glslSources.add("frag_update_subsampled") << glu::FragmentSource(
+		"#version 450\n"
+		"#extension GL_EXT_multiview : enable\n"
+		"layout(location = 0) in vec4 inUV;\n"
+		"layout(location = 1) in vec4 inColor;\n"
+		"layout(location = 0) out vec4 fragColor;\n"
+		"void main(void)\n"
+		"{\n"
+		"	if (gl_FragCoord.y < 0.5)\n"
+		"		discard;\n"
+		"	fragColor = vec4(inColor.x, inColor.y, 0.5, 0.5);\n"
+		"}\n"
+	);
+#else
+	sourceCollections.glslSources.add("frag_produce_subsampled") << glu::FragmentSource(
 		"#version 450\n"
 		"#extension GL_EXT_fragment_invocation_density : enable\n"
 		"#extension GL_EXT_multiview : enable\n"
@@ -783,11 +949,25 @@
 		"void main(void)\n"
 		"{\n"
 		"	fragColor = vec4(inColor.x, inColor.y, 1.0/float(gl_FragSizeEXT.x), 1.0/(gl_FragSizeEXT.y));\n"
-		"}\n";
-	sourceCollections.glslSources.add("densitymap_frag_produce") << glu::FragmentSource(densityFragmentProduceGLSL.str());
+		"}\n"
+	);
 
-	std::ostringstream densityFragmentCopyGLSL;
-	densityFragmentCopyGLSL <<
+	sourceCollections.glslSources.add("frag_update_subsampled") << glu::FragmentSource(
+		"#version 450\n"
+		"#extension GL_EXT_fragment_invocation_density : enable\n"
+		"#extension GL_EXT_multiview : enable\n"
+		"layout(location = 0) in vec4 inUV;\n"
+		"layout(location = 1) in vec4 inColor;\n"
+		"layout(location = 0) out vec4 fragColor;\n"
+		"void main(void)\n"
+		"{\n"
+		"	if (gl_FragCoord.y < 0.5)\n"
+		"		discard;\n"
+		"	fragColor = vec4(inColor.x, inColor.y, 1.0/float(gl_FragSizeEXT.x), 1.0/(gl_FragSizeEXT.y));\n"
+		"}\n"
+	);
+#endif
+	sourceCollections.glslSources.add("frag_copy_subsampled") << glu::FragmentSource(
 		"#version 450\n"
 		"#extension GL_EXT_fragment_invocation_density : enable\n"
 		"#extension GL_EXT_multiview : enable\n"
@@ -798,11 +978,10 @@
 		"void main(void)\n"
 		"{\n"
 		"	fragColor = subpassLoad(inputAtt);\n"
-		"}\n";
-	sourceCollections.glslSources.add("densitymap_frag_copy") << glu::FragmentSource(densityFragmentCopyGLSL.str());
+		"}\n"
+	);
 
-	std::ostringstream densityFragmentCopyMultisampledGLSL;
-	densityFragmentCopyMultisampledGLSL <<
+	sourceCollections.glslSources.add("frag_copy_subsampled_ms") << glu::FragmentSource(
 		"#version 450\n"
 		"#extension GL_EXT_fragment_invocation_density : enable\n"
 		"#extension GL_EXT_multiview : enable\n"
@@ -813,35 +992,65 @@
 		"void main(void)\n"
 		"{\n"
 		"	fragColor = subpassLoad(inputAtt, gl_SampleID);\n"
-		"}\n";
-	sourceCollections.glslSources.add("densitymap_frag_copy_ms") << glu::FragmentSource(densityFragmentCopyMultisampledGLSL.str());
+		"}\n"
+	);
 
-	std::ostringstream densityFragmentOutput2DGLSL;
-	densityFragmentOutput2DGLSL <<
+	const char* samplersDefTemplate =
+		"layout(binding = ${BINDING})  uniform ${SAMPLER} subsampledImage${BINDING};\n";
+	const char* sumColorsTemplate =
+		"	fragColor += texture(subsampledImage${BINDING}, inUV.${COMPONENTS});\n";
+
+	const char* densitymapOutputTemplate =
 		"#version 450\n"
 		"layout(location = 0) in vec4 inUV;\n"
 		"layout(location = 1) in vec4 inColor;\n"
-		"layout(binding = 0)  uniform sampler2D subsampledImage;\n"
+		"${SAMPLERS_DEF}"
 		"layout(location = 0) out vec4 fragColor;\n"
 		"void main(void)\n"
 		"{\n"
-		"	fragColor = texture(subsampledImage, inUV.xy);\n"
+		"	fragColor = vec4(0);\n"
+		"${SUM_COLORS}"
+		"	fragColor /= float(${COUNT});\n"
 		"}\n";
-	sourceCollections.glslSources.add("densitymap_frag_output_2d") << glu::FragmentSource(densityFragmentOutput2DGLSL.str());
 
-	std::ostringstream densityFragmentOutput2DArrayGLSL;
-	densityFragmentOutput2DArrayGLSL <<
-		"#version 450\n"
-		"layout(location = 0) in vec4 inUV;\n"
-		"layout(location = 1) in vec4 inColor;\n"
-		"layout(binding = 0)  uniform sampler2DArray subsampledImage;\n"
-		"layout(location = 0) out vec4 fragColor;\n"
-		"void main(void)\n"
-		"{\n"
-		"	fragColor = texture(subsampledImage, inUV.xyz);\n"
-		"}\n";
-	sourceCollections.glslSources.add("densitymap_frag_output_2darray") << glu::FragmentSource(densityFragmentOutput2DArrayGLSL.str());
+	std::map<std::string, std::string> parameters
+	{
+		{ "SAMPLER",		"" },
+		{ "BINDING",		"" },
+		{ "COMPONENTS",		"" },
+		{ "COUNT",			std::to_string(m_testParams.samplersCount) },
+		{ "SAMPLERS_DEF",	"" },
+		{ "SUM_COLORS",		"" },
+	};
 
+	std::string sampler2dDefs;
+	std::string sampler2dSumColors;
+	std::string sampler2dArrayDefs;
+	std::string sampler2dArraySumColors;
+	for (deUint32 samplerIndex = 0; samplerIndex < m_testParams.samplersCount; ++samplerIndex)
+	{
+		parameters["BINDING"]		 = std::to_string(samplerIndex);
+
+		parameters["COMPONENTS"]	 = "xy";
+		parameters["SAMPLER"]		 = "sampler2D";
+		sampler2dDefs				+= tcu::StringTemplate(samplersDefTemplate).specialize(parameters);
+		sampler2dSumColors			+= tcu::StringTemplate(sumColorsTemplate).specialize(parameters);
+
+		parameters["COMPONENTS"]	 = "xyz";
+		parameters["SAMPLER"]		 = "sampler2DArray";
+		sampler2dArrayDefs			+= tcu::StringTemplate(samplersDefTemplate).specialize(parameters);
+		sampler2dArraySumColors		+= tcu::StringTemplate(sumColorsTemplate).specialize(parameters);
+	}
+
+	parameters["SAMPLERS_DEF"]	= sampler2dDefs;
+	parameters["SUM_COLORS"]	= sampler2dSumColors;
+	sourceCollections.glslSources.add("frag_output_2d")
+		<< glu::FragmentSource(tcu::StringTemplate(densitymapOutputTemplate).specialize(parameters));
+
+	parameters["SAMPLERS_DEF"]	= sampler2dArrayDefs;
+	parameters["SUM_COLORS"]	= sampler2dArraySumColors;
+	sourceCollections.glslSources.add("frag_output_2darray")
+		<< glu::FragmentSource(tcu::StringTemplate(densitymapOutputTemplate).specialize(parameters));
 }
 
 TestInstance* FragmentDensityMapTest::createInstance(Context& context) const
@@ -854,19 +1063,18 @@
 	const InstanceInterface&	vki					= context.getInstanceInterface();
 	const VkPhysicalDevice		vkPhysicalDevice	= context.getPhysicalDevice();
 
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
+#if DRY_RUN_WITHOUT_FDM_EXTENSION
+	if (m_testParams.viewCount > 1)
+	{
+		context.requireDeviceFunctionality("VK_KHR_multiview");
+		if (!context.getMultiviewFeatures().multiview)
+			TCU_THROW(NotSupportedError, "Implementation does not support multiview feature");
+	}
+#else
 	context.requireDeviceFunctionality("VK_EXT_fragment_density_map");
 
-	VkPhysicalDeviceFeatures2 features;
-	deMemset(&features, 0, sizeof(VkPhysicalDeviceFeatures2));
-	features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
-
-	VkPhysicalDeviceFragmentDensityMapFeaturesEXT fragmentDensityMapFeatures;
-	deMemset(&fragmentDensityMapFeatures, 0, sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT));
-	fragmentDensityMapFeatures.sType	= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT;
-	features.pNext						= &fragmentDensityMapFeatures;
-
-	vki.getPhysicalDeviceFeatures2(vkPhysicalDevice, &features);
+	const auto& fragmentDensityMapFeatures		= context.getFragmentDensityMapFeaturesEXT();
+	const auto& fragmentDensityMap2Properties	= context.getFragmentDensityMap2PropertiesEXT();
 
 	if (!fragmentDensityMapFeatures.fragmentDensityMap)
 		TCU_THROW(NotSupportedError, "fragmentDensityMap feature is not supported");
@@ -874,115 +1082,134 @@
 		TCU_THROW(NotSupportedError, "fragmentDensityMapDynamic feature is not supported");
 	if (m_testParams.nonSubsampledImages && !fragmentDensityMapFeatures.fragmentDensityMapNonSubsampledImages)
 		TCU_THROW(NotSupportedError, "fragmentDensityMapNonSubsampledImages feature is not supported");
-#endif
-	if (m_testParams.multiView)
+
+	if (m_testParams.deferredDensityMap)
+	{
+		context.requireDeviceFunctionality("VK_EXT_fragment_density_map2");
+		if (!context.getFragmentDensityMap2FeaturesEXT().fragmentDensityMapDeferred)
+			TCU_THROW(NotSupportedError, "fragmentDensityMapDeferred feature is not supported");
+	}
+	if (m_testParams.subsampledLoads)
+	{
+		context.requireDeviceFunctionality("VK_EXT_fragment_density_map2");
+		if (!fragmentDensityMap2Properties.subsampledLoads)
+			TCU_THROW(NotSupportedError, "subsampledLoads property is not supported");
+	}
+	if (m_testParams.coarseReconstruction)
+	{
+		context.requireDeviceFunctionality("VK_EXT_fragment_density_map2");
+		if (!fragmentDensityMap2Properties.subsampledCoarseReconstructionEarlyAccess)
+			TCU_THROW(NotSupportedError, "subsampledCoarseReconstructionEarlyAccess property is not supported");
+	}
+
+	if (m_testParams.viewCount > 1)
 	{
 		context.requireDeviceFunctionality("VK_KHR_multiview");
-		const vk::VkPhysicalDeviceMultiviewFeatures& multiviewFeatures = context.getMultiviewFeatures();
-		if (!multiviewFeatures.multiview)
+		if (!context.getMultiviewFeatures().multiview)
 			TCU_THROW(NotSupportedError, "Implementation does not support multiview feature");
+
+		if (m_testParams.viewCount > 2)
+		{
+			context.requireDeviceFunctionality("VK_EXT_fragment_density_map2");
+			if (m_testParams.viewCount > fragmentDensityMap2Properties.maxSubsampledArrayLayers)
+				TCU_THROW(NotSupportedError, "Maximum number of VkImageView array layers for usages supporting subsampled samplers is to small");
+		}
 	}
+
+	if (!m_testParams.nonSubsampledImages && (m_testParams.samplersCount > 1))
 	{
-		vk::VkImageUsageFlags	colorImageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT;
-		if (m_testParams.makeCopy)
-			colorImageUsage |= VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT;
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
-		deUint32				colorImageCreateFlags			= m_testParams.nonSubsampledImages ? 0u : (deUint32)VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT;
-#else
-		deUint32				colorImageCreateFlags			= 0u;
-#endif
-		VkImageFormatProperties	imageFormatProperties(getPhysicalDeviceImageFormatProperties(vki, vkPhysicalDevice, VK_FORMAT_R8G8B8A8_UNORM, VK_IMAGE_TYPE_2D, VK_IMAGE_TILING_OPTIMAL, colorImageUsage, colorImageCreateFlags));
-		if ((imageFormatProperties.sampleCounts & m_testParams.colorSamples) == 0)
-			TCU_THROW(NotSupportedError, "Color image type not supported");
+		context.requireDeviceFunctionality("VK_EXT_fragment_density_map2");
+		if (m_testParams.samplersCount > fragmentDensityMap2Properties.maxDescriptorSetSubsampledSamplers)
+			TCU_THROW(NotSupportedError, "Required number of subsampled samplers is not supported");
 	}
+#endif
+
+	vk::VkImageUsageFlags	colorImageUsage			= VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT;
+	if (m_testParams.makeCopy)
+		colorImageUsage |= VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT;
+
+	deUint32				colorImageCreateFlags	= m_testParams.nonSubsampledImages ? 0u : (deUint32)VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT;
+	VkImageFormatProperties	imageFormatProperties	(getPhysicalDeviceImageFormatProperties(vki, vkPhysicalDevice, VK_FORMAT_R8G8B8A8_UNORM, VK_IMAGE_TYPE_2D, VK_IMAGE_TILING_OPTIMAL, colorImageUsage, colorImageCreateFlags));
+
+	if ((imageFormatProperties.sampleCounts & m_testParams.colorSamples) == 0)
+		TCU_THROW(NotSupportedError, "Color image type not supported");
 }
 
-FragmentDensityMapTestInstance::FragmentDensityMapTestInstance(Context&			context,
-															const TestParams&	testParams)
-	: vkt::TestInstance	( context )
-	, m_testParams		( testParams )
+FragmentDensityMapTestInstance::FragmentDensityMapTestInstance(Context&				context,
+															   const TestParams&	testParams)
+	: vkt::TestInstance	(context)
+	, m_testParams		(testParams)
 {
-	const DeviceInterface&		vk						= m_context.getDeviceInterface();
-	const VkDevice				vkDevice				= m_context.getDevice();
-	const VkPhysicalDevice		vkPhysicalDevice		= m_context.getPhysicalDevice();
-	const deUint32				queueFamilyIndex		= m_context.getUniversalQueueFamilyIndex();
-	SimpleAllocator				memAlloc				(vk, vkDevice, getPhysicalDeviceMemoryProperties(m_context.getInstanceInterface(), vkPhysicalDevice));
-	const VkComponentMapping	componentMappingRGBA	= { VK_COMPONENT_SWIZZLE_R, VK_COMPONENT_SWIZZLE_G, VK_COMPONENT_SWIZZLE_B, VK_COMPONENT_SWIZZLE_A };
+	m_renderSize		= tcu::UVec2(deFloorFloatToInt32(m_testParams.renderMultiplier * static_cast<float>(m_testParams.densityMapSize.x())),
+									 deFloorFloatToInt32(m_testParams.renderMultiplier * static_cast<float>(m_testParams.densityMapSize.y())));
+	m_densityValue		= tcu::Vec2(1.0f / static_cast<float>(m_testParams.fragmentArea.x()),
+									1.0f / static_cast<float>(m_testParams.fragmentArea.y()));
+	m_viewMask			= (m_testParams.viewCount > 1) ? ((1u << m_testParams.viewCount) - 1u) : 0u;
 
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
-	{
-		VkPhysicalDeviceProperties2 properties;
-		deMemset(&properties, 0, sizeof(VkPhysicalDeviceProperties2));
-		properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
-
-		deMemset(&m_fragmentDensityMapProperties, 0, sizeof(VkPhysicalDeviceFragmentDensityMapPropertiesEXT));
-		m_fragmentDensityMapProperties.sType	= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT;
-		properties.pNext						= &m_fragmentDensityMapProperties;
-
-		context.getInstanceInterface().getPhysicalDeviceProperties2(vkPhysicalDevice, &properties);
-	}
-#else
-	{
-		m_fragmentDensityMapProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT;
-		m_fragmentDensityMapProperties.minFragmentDensityTexelSize.width	= 1u;
-		m_fragmentDensityMapProperties.maxFragmentDensityTexelSize.width	= 1u;
-		m_fragmentDensityMapProperties.minFragmentDensityTexelSize.height	= 1u;
-		m_fragmentDensityMapProperties.maxFragmentDensityTexelSize.height	= 1u;
-		m_fragmentDensityMapProperties.fragmentDensityInvocations			= DE_FALSE;
-		m_testParams.fragmentArea.x()										= 1u;
-		m_testParams.fragmentArea.y()										= 1u;
-	}
-#endif
+	const DeviceInterface&		vk							= m_context.getDeviceInterface();
+	const VkDevice				vkDevice					= m_context.getDevice();
+	const VkPhysicalDevice		vkPhysicalDevice			= m_context.getPhysicalDevice();
+	const deUint32				queueFamilyIndex			= m_context.getUniversalQueueFamilyIndex();
+	SimpleAllocator				memAlloc					(vk, vkDevice, getPhysicalDeviceMemoryProperties(m_context.getInstanceInterface(), vkPhysicalDevice));
+	const VkComponentMapping	componentMappingRGBA		= makeComponentMappingRGBA();
 
 	// calculate all image sizes, image usage flags, view types etc.
-	VkExtent3D				densityMapImageSize				{ m_testParams.densityMapSize.x(), m_testParams.densityMapSize.y(), 1 };
-	deUint32				densityMapImageLayers			= m_testParams.multiView ? 2 : 1 ;
-	VkImageViewType			densityImageViewType			= m_testParams.multiView ? VK_IMAGE_VIEW_TYPE_2D_ARRAY : VK_IMAGE_VIEW_TYPE_2D;
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
-	vk::VkImageUsageFlags	densityMapImageUsage			= m_testParams.dynamicDensityMap ? VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT : VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT;
-#else
-	vk::VkImageUsageFlags	densityMapImageUsage			= VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
-#endif
-	deUint32				densityMapImageViewCreateFlags	= m_testParams.dynamicDensityMap ? (deUint32)VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT : 0u;
+	deUint32					densitiMapCount				= 1 + m_testParams.subsampledLoads;
+	VkExtent3D					densityMapImageSize			{ m_testParams.densityMapSize.x(), m_testParams.densityMapSize.y(), 1 };
+	deUint32					densityMapImageLayers		= m_testParams.viewCount;
+	VkImageViewType				densityMapImageViewType		= (m_testParams.viewCount > 1) ? VK_IMAGE_VIEW_TYPE_2D_ARRAY : VK_IMAGE_VIEW_TYPE_2D;
+	vk::VkImageUsageFlags		densityMapImageUsage		= VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;
+	deUint32					densityMapImageViewFlags	= 0u;
 
-	VkExtent3D				colorMapImageSize				= m_testParams.multiView ?
-															  VkExtent3D{ m_testParams.renderSize.x() / 2, m_testParams.renderSize.y(), 1 } :
-															  VkExtent3D{ m_testParams.renderSize.x(), m_testParams.renderSize.y(), 1 };
-	deUint32				colorImageLayers				= m_testParams.multiView ? 2 : 1 ;
-	VkImageViewType			colorImageViewType				= m_testParams.multiView ? VK_IMAGE_VIEW_TYPE_2D_ARRAY : VK_IMAGE_VIEW_TYPE_2D;
-	vk::VkImageUsageFlags	colorImageUsage					= VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT;
+	VkExtent3D					colorImageSize				{ m_renderSize.x() / m_testParams.viewCount, m_renderSize.y(), 1 };
+	deUint32					colorImageLayers			= densityMapImageLayers;
+	VkImageViewType				colorImageViewType			= densityMapImageViewType;
+	vk::VkImageUsageFlags		colorImageUsage				= VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT;
+	deUint32					colorImageCreateFlags		= m_testParams.nonSubsampledImages ? 0u : (deUint32)VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT;
+	bool						isColorImageMultisampled	= m_testParams.colorSamples != VK_SAMPLE_COUNT_1_BIT;
+
+	VkExtent3D					outputImageSize				{ m_renderSize.x(), m_renderSize.y(), 1 };
+
+	if (m_testParams.dynamicDensityMap)
+	{
+		DE_ASSERT(!m_testParams.subsampledLoads);
+
+		densityMapImageUsage		= VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT | VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
+		densityMapImageViewFlags	= (deUint32)VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT;
+	}
+	else if (m_testParams.deferredDensityMap)
+		densityMapImageViewFlags	= (deUint32)VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT;
 	if (m_testParams.makeCopy)
-		colorImageUsage  |= VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT;
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
-	deUint32				colorImageCreateFlags			= m_testParams.nonSubsampledImages ? 0u : (deUint32)VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT;
-#else
-	deUint32				colorImageCreateFlags			= 0u;
-#endif
+		colorImageUsage				|= VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT;
 
-	VkExtent3D				outputMapImageSize				{ m_testParams.renderSize.x(), m_testParams.renderSize.y(), 1 };
+#if DRY_RUN_WITHOUT_FDM_EXTENSION
+	colorImageCreateFlags		= 0u;
+	densityMapImageUsage		= VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;
+	densityMapImageViewFlags	= 0u;
+#endif
 
 	// Create subsampled color image
 	prepareImageAndImageView(vk, vkDevice, memAlloc, colorImageCreateFlags, VK_FORMAT_R8G8B8A8_UNORM,
-		colorMapImageSize, colorImageLayers, m_testParams.colorSamples,
+		colorImageSize, colorImageLayers, m_testParams.colorSamples,
 		colorImageUsage, queueFamilyIndex, 0u, colorImageViewType,
 		componentMappingRGBA, { VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, colorImageLayers },
 		m_colorImage, m_colorImageAlloc, m_colorImageView);
 
 	// Create subsampled color image for resolve operation ( when multisampling is used )
-	if( m_testParams.colorSamples != VK_SAMPLE_COUNT_1_BIT)
+	if (isColorImageMultisampled)
 	{
 		prepareImageAndImageView(vk, vkDevice, memAlloc, colorImageCreateFlags, VK_FORMAT_R8G8B8A8_UNORM,
-			colorMapImageSize, colorImageLayers, VK_SAMPLE_COUNT_1_BIT,
+			colorImageSize, colorImageLayers, VK_SAMPLE_COUNT_1_BIT,
 			VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT, queueFamilyIndex, 0u, colorImageViewType,
 			componentMappingRGBA, { VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, colorImageLayers },
 			m_colorResolvedImage, m_colorResolvedImageAlloc, m_colorResolvedImageView);
 	}
 
-	// create subsampled image copy
+	// Create subsampled image copy
 	if (m_testParams.makeCopy)
 	{
 		prepareImageAndImageView(vk, vkDevice, memAlloc, colorImageCreateFlags, VK_FORMAT_R8G8B8A8_UNORM,
-			colorMapImageSize, colorImageLayers, m_testParams.colorSamples,
+			colorImageSize, colorImageLayers, m_testParams.colorSamples,
 			VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_SAMPLED_BIT, queueFamilyIndex, 0u, colorImageViewType,
 			componentMappingRGBA, { VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, colorImageLayers },
 			m_colorCopyImage, m_colorCopyImageAlloc, m_colorCopyImageView);
@@ -990,23 +1217,33 @@
 
 	// Create output image ( data from subsampled color image will be copied into it using sampler with VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT )
 	prepareImageAndImageView(vk, vkDevice, memAlloc, 0u, VK_FORMAT_R8G8B8A8_UNORM,
-		outputMapImageSize, 1u, VK_SAMPLE_COUNT_1_BIT,
+		outputImageSize, 1u, VK_SAMPLE_COUNT_1_BIT,
 		VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT, queueFamilyIndex, 0u, VK_IMAGE_VIEW_TYPE_2D,
 		componentMappingRGBA, { VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u },
 		m_outputImage, m_outputImageAlloc, m_outputImageView);
 
-	// Create density map image
-	prepareImageAndImageView(vk, vkDevice, memAlloc, 0u, m_testParams.densityMapFormat,
-		densityMapImageSize, densityMapImageLayers, VK_SAMPLE_COUNT_1_BIT,
-		densityMapImageUsage, queueFamilyIndex, densityMapImageViewCreateFlags, densityImageViewType,
-		componentMappingRGBA, { VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, densityMapImageLayers },
-		m_densityMapImage, m_densityMapImageAlloc, m_densityMapImageView);
-
-	// create and fill staging buffer, copy its data to density map image
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
-	if ( !m_testParams.dynamicDensityMap )
+	// Create density map image/images
+	for (deUint32 mapIndex = 0; mapIndex < densitiMapCount; ++mapIndex)
 	{
-		tcu::TextureFormat				densityMapTextureFormat	= vk::mapVkFormat(m_testParams.densityMapFormat);
+		Move<VkImage>			densityMapImage;
+		de::MovePtr<Allocation>	densityMapImageAlloc;
+		Move<VkImageView>		densityMapImageView;
+
+		prepareImageAndImageView(vk, vkDevice, memAlloc, 0u, m_testParams.densityMapFormat,
+			densityMapImageSize, densityMapImageLayers, VK_SAMPLE_COUNT_1_BIT,
+			densityMapImageUsage, queueFamilyIndex, densityMapImageViewFlags, densityMapImageViewType,
+			componentMappingRGBA, { VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, densityMapImageLayers },
+			densityMapImage, densityMapImageAlloc, densityMapImageView);
+
+		m_densityMapImages.push_back(VkImageSp(new Unique<VkImage>(densityMapImage)));
+		m_densityMapImageAllocs.push_back(AllocationSp(densityMapImageAlloc.release()));
+		m_densityMapImageViews.push_back(VkImageViewSp(new Unique<VkImageView>(densityMapImageView)));
+	}
+
+	// Create and fill staging buffer, copy its data to density map image
+	if (!m_testParams.dynamicDensityMap)
+	{
+		tcu::TextureFormat				densityMapTextureFormat = vk::mapVkFormat(m_testParams.densityMapFormat);
 		VkDeviceSize					stagingBufferSize		= tcu::getPixelSize(densityMapTextureFormat) * densityMapImageSize.width * densityMapImageSize.height * densityMapImageLayers;
 		const vk::VkBufferCreateInfo	stagingBufferCreateInfo =
 		{
@@ -1023,100 +1260,114 @@
 		const vk::VkMemoryRequirements	stagingRequirements = vk::getBufferMemoryRequirements(vk, vkDevice, *stagingBuffer);
 		de::MovePtr<vk::Allocation>		stagingAllocation	= memAlloc.allocate(stagingRequirements, MemoryRequirement::HostVisible);
 		VK_CHECK(vk.bindBufferMemory(vkDevice, *stagingBuffer, stagingAllocation->getMemory(), stagingAllocation->getOffset()));
-		tcu::PixelBufferAccess			stagingBufferAccess	= tcu::PixelBufferAccess(densityMapTextureFormat, densityMapImageSize.width, densityMapImageSize.height, densityMapImageLayers, stagingAllocation->getHostPtr());
+		tcu::PixelBufferAccess			stagingBufferAccess	(densityMapTextureFormat, densityMapImageSize.width, densityMapImageSize.height, densityMapImageLayers, stagingAllocation->getHostPtr());
+		tcu::Vec4						fragmentArea		(m_densityValue.x(), m_densityValue.y(), 0.0f, 1.0f);
 
-		tcu::Vec4 fragmentArea { 1.0f / static_cast<float>(testParams.fragmentArea.x()), 1.0f / static_cast<float>(testParams.fragmentArea.y()), 0.0f, 1.0f };
-		for (int z = 0; z < stagingBufferAccess.getDepth(); z++)
-			for (int y = 0; y < stagingBufferAccess.getHeight(); y++)
-				for (int x = 0; x < stagingBufferAccess.getWidth(); x++)
-					stagingBufferAccess.setPixel(fragmentArea, x, y, z);
-		flushAlloc(vk, vkDevice, *stagingAllocation);
-
-		std::vector<VkBufferImageCopy> copyRegions =
+		for (deUint32 mapIndex = 0; mapIndex < densitiMapCount; ++mapIndex)
 		{
-			{
-				0,															// VkDeviceSize					bufferOffset
-				0,															// deUint32						bufferRowLength
-				0,															// deUint32						bufferImageHeight
-				{ VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, densityMapImageLayers },	// VkImageSubresourceLayers		imageSubresource
-				{ 0, 0, 0 },												// VkOffset3D					imageOffset
-				densityMapImageSize											// VkExtent3D					imageExtent
-			}
-		};
+			// Fill staging buffer with one color
+			tcu::clear(stagingBufferAccess, fragmentArea);
+			flushAlloc(vk, vkDevice, *stagingAllocation);
 
-		vk::copyBufferToImage
-		(
-			vk, vkDevice, m_context.getUniversalQueue(), queueFamilyIndex,
-			*stagingBuffer, stagingBufferSize, copyRegions, DE_NULL,
-			VK_IMAGE_ASPECT_COLOR_BIT, 1, densityMapImageLayers,
-			*m_densityMapImage,
-			VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT,
-			VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
-		);
+			copyBufferToImage
+			(
+				vk, vkDevice, m_context.getUniversalQueue(), queueFamilyIndex,
+				*stagingBuffer, stagingBufferSize,
+				densityMapImageSize, densityMapImageLayers, **m_densityMapImages[mapIndex]
+			);
+
+			std::swap(fragmentArea.m_data[0], fragmentArea.m_data[1]);
+		}
 	}
+
+	deUint32 samplerCreateFlags = (deUint32)VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT;
+	if (m_testParams.coarseReconstruction)
+		samplerCreateFlags		|= (deUint32)VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT;
+	if (m_testParams.nonSubsampledImages)
+		samplerCreateFlags		= 0u;
+
+#if DRY_RUN_WITHOUT_FDM_EXTENSION
+	samplerCreateFlags = 0u;
 #endif
 
-	// create a sampler that is able to read from subsampled image
+	const struct VkSamplerCreateInfo samplerInfo
 	{
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
-		deUint32 samplerCreateFlags = m_testParams.nonSubsampledImages ? 0u : (deUint32)VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT;
-#else
-		deUint32 samplerCreateFlags = 0u;
-#endif
-		const struct VkSamplerCreateInfo		samplerInfo
-		{
-			VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO,			// sType
-			DE_NULL,										// pNext
-			(VkSamplerCreateFlags)samplerCreateFlags,		// flags
-			VK_FILTER_NEAREST,								// magFilter
-			VK_FILTER_NEAREST,								// minFilter
-			VK_SAMPLER_MIPMAP_MODE_NEAREST,					// mipmapMode
-			VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,			// addressModeU
-			VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,			// addressModeV
-			VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,			// addressModeW
-			0.0f,											// mipLodBias
-			VK_FALSE,										// anisotropyEnable
-			1.0f,											// maxAnisotropy
-			DE_FALSE,										// compareEnable
-			VK_COMPARE_OP_ALWAYS,							// compareOp
-			0.0f,											// minLod
-			0.0f,											// maxLod
-			VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,		// borderColor
-			VK_FALSE,										// unnormalizedCoords
-		};
-		m_colorSampler = createSampler(vk, vkDevice, &samplerInfo);
-	}
+		VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO,			// sType
+		DE_NULL,										// pNext
+		(VkSamplerCreateFlags)samplerCreateFlags,		// flags
+		VK_FILTER_NEAREST,								// magFilter
+		VK_FILTER_NEAREST,								// minFilter
+		VK_SAMPLER_MIPMAP_MODE_NEAREST,					// mipmapMode
+		VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,			// addressModeU
+		VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,			// addressModeV
+		VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,			// addressModeW
+		0.0f,											// mipLodBias
+		VK_FALSE,										// anisotropyEnable
+		1.0f,											// maxAnisotropy
+		DE_FALSE,										// compareEnable
+		VK_COMPARE_OP_ALWAYS,							// compareOp
+		0.0f,											// minLod
+		0.0f,											// maxLod
+		VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,		// borderColor
+		VK_FALSE,										// unnormalizedCoords
+	};
+
+	// Create a sampler that are able to read from subsampled image
+	// (more than one sampler is needed only for 4 maxDescriptorSetSubsampledSamplers tests)
+	for (deUint32 samplerIndex = 0; samplerIndex < testParams.samplersCount; ++samplerIndex)
+		m_colorSamplers.push_back(VkSamplerSp(new Unique<VkSampler>(createSampler(vk, vkDevice, &samplerInfo))));
 
 	// Create render passes
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
-	if ( testParams.dynamicDensityMap )
-#endif
-		m_renderPassProduceDynamicDensityMap	= createRenderPassProduceDynamicDensityMap<AttachmentDescription2, AttachmentReference2, SubpassDescription2, SubpassDependency2, RenderPassCreateInfo2>(vk, vkDevice, testParams);
-	m_renderPassProduceSubsampledImage		= createRenderPassProduceSubsampledImage<AttachmentDescription2, AttachmentReference2, SubpassDescription2, SubpassDependency2, RenderPassCreateInfo2>(vk, vkDevice, testParams);
-	m_renderPassOutputSubsampledImage		= createRenderPassOutputSubsampledImage<AttachmentDescription2, AttachmentReference2, SubpassDescription2, SubpassDependency2, RenderPassCreateInfo2>(vk, vkDevice, testParams);
+	if (testParams.dynamicDensityMap)
+		m_renderPassProduceDynamicDensityMap	= createRenderPassProduceDynamicDensityMap(vk, vkDevice, m_viewMask, testParams);
+	m_renderPassProduceSubsampledImage			= createRenderPassProduceSubsampledImage(vk, vkDevice, m_viewMask, testParams.makeCopy, false, testParams);
+	if (testParams.subsampledLoads)
+		m_renderPassUpdateSubsampledImage		= createRenderPassProduceSubsampledImage(vk, vkDevice, m_viewMask, false, true, testParams);
+	m_renderPassOutputSubsampledImage			= createRenderPassOutputSubsampledImage(vk, vkDevice);
 
-	// Create framebuffers
-#if  !DRY_RUN_WITHOUT_FDM_EXTENSION
-	if ( testParams.dynamicDensityMap )
-#endif
-		m_framebufferProduceDynamicDensityMap = createFrameBuffer(vk, vkDevice, *m_renderPassProduceDynamicDensityMap, densityMapImageSize.width, densityMapImageSize.height, { *m_densityMapImageView });
-
-	std::vector<VkImageView> imageViewsProduceSubsampledImage;
-	imageViewsProduceSubsampledImage.push_back(*m_colorImageView);
-	if (testParams.colorSamples != VK_SAMPLE_COUNT_1_BIT)
+	std::vector<VkImageView> imageViewsProduceSubsampledImage = { *m_colorImageView };
+	if (isColorImageMultisampled)
 		imageViewsProduceSubsampledImage.push_back(*m_colorResolvedImageView);
 	if (testParams.makeCopy)
 		imageViewsProduceSubsampledImage.push_back(*m_colorCopyImageView);
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
-	imageViewsProduceSubsampledImage.push_back(*m_densityMapImageView);
-#endif
-	m_framebufferProduceSubsampledImage = createFrameBuffer(vk, vkDevice, *m_renderPassProduceSubsampledImage, colorMapImageSize.width, colorMapImageSize.height, imageViewsProduceSubsampledImage);
+	imageViewsProduceSubsampledImage.push_back(**m_densityMapImageViews[0]);
 
-	m_framebufferOutputSubsampledImage	= createFrameBuffer( vk, vkDevice, *m_renderPassOutputSubsampledImage, outputMapImageSize.width, outputMapImageSize.height, { *m_outputImageView } );
+	std::vector<VkImageView> imageViewsUpdateSubsampledImage = { *m_colorImageView };
+	if (testParams.subsampledLoads)
+		imageViewsUpdateSubsampledImage.push_back(**m_densityMapImageViews[1]);
+
+#if DRY_RUN_WITHOUT_FDM_EXTENSION
+	imageViewsProduceSubsampledImage.pop_back();
+	imageViewsUpdateSubsampledImage.pop_back();
+#endif
+
+	// Create framebuffers
+	if (testParams.dynamicDensityMap)
+	{
+		m_framebufferProduceDynamicDensityMap = createFrameBuffer(vk, vkDevice,
+			*m_renderPassProduceDynamicDensityMap,
+			densityMapImageSize,
+			{ **m_densityMapImageViews[0] });
+	}
+	m_framebufferProduceSubsampledImage = createFrameBuffer(vk, vkDevice,
+		*m_renderPassProduceSubsampledImage,
+		colorImageSize,
+		imageViewsProduceSubsampledImage);
+	if (testParams.subsampledLoads)
+	{
+		m_framebufferUpdateSubsampledImage = createFrameBuffer(vk, vkDevice,
+			*m_renderPassUpdateSubsampledImage,
+			colorImageSize,
+			imageViewsUpdateSubsampledImage);
+	}
+	m_framebufferOutputSubsampledImage = createFrameBuffer(vk, vkDevice,
+		*m_renderPassOutputSubsampledImage,
+		outputImageSize,
+		{ *m_outputImageView });
 
 	// Create pipeline layout for subpasses that do not use any descriptors
 	{
-		const VkPipelineLayoutCreateInfo		pipelineLayoutParams		=
+		const VkPipelineLayoutCreateInfo pipelineLayoutParams =
 		{
 			VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,	// VkStructureType				sType;
 			DE_NULL,										// const void*					pNext;
@@ -1130,97 +1381,102 @@
 		m_pipelineLayoutNoDescriptors = createPipelineLayout(vk, vkDevice, &pipelineLayoutParams);
 	}
 
-	// Create pipeline layout for subpass that copies data
-	if(m_testParams.makeCopy)
+	// Create pipeline layout for subpass that copies data or resamples subsampled image
+	if (m_testParams.makeCopy || m_testParams.subsampledLoads)
 	{
-		m_descriptorSetLayoutCopySubsampledImage =
+		m_descriptorSetLayoutOperateOnSubsampledImage =
 			DescriptorSetLayoutBuilder()
 			.addSingleSamplerBinding(VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, VK_SHADER_STAGE_FRAGMENT_BIT, DE_NULL)
 			.build(vk, vkDevice);
 
 		// Create and bind descriptor set
-		m_descriptorPoolCopySubsampledImage =
+		m_descriptorPoolOperateOnSubsampledImage =
 			DescriptorPoolBuilder()
 			.addType(VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, 1u)
 			.build(vk, vkDevice, VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, 1u);
 
-		m_pipelineLayoutCopySubsampledImage = makePipelineLayout(vk, vkDevice, *m_descriptorSetLayoutCopySubsampledImage);
+		m_pipelineLayoutOperateOnSubsampledImage	= makePipelineLayout(vk, vkDevice, *m_descriptorSetLayoutOperateOnSubsampledImage);
+		m_descriptorSetOperateOnSubsampledImage		= makeDescriptorSet(vk, vkDevice, *m_descriptorPoolOperateOnSubsampledImage, *m_descriptorSetLayoutOperateOnSubsampledImage);
 
-		m_descriptorSetCopySubsampledImage = makeDescriptorSet(vk, vkDevice, *m_descriptorPoolCopySubsampledImage, *m_descriptorSetLayoutCopySubsampledImage);
-
-		const VkDescriptorImageInfo			inputImageInfo =
+		const VkDescriptorImageInfo inputImageInfo =
 		{
 			DE_NULL,											// VkSampleri		sampler;
 			*m_colorImageView,									// VkImageView		imageView;
 			VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL			// VkImageLayout	imageLayout;
 		};
 		DescriptorSetUpdateBuilder()
-			.writeSingle(*m_descriptorSetCopySubsampledImage, DescriptorSetUpdateBuilder::Location::binding(0u), VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, &inputImageInfo)
+			.writeSingle(*m_descriptorSetOperateOnSubsampledImage, DescriptorSetUpdateBuilder::Location::binding(0u), VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, &inputImageInfo)
 			.update(vk, vkDevice);
 	}
 
-	// Create pipeline layout for last render pass ( output subsampled image )
+	// Create pipeline layout for last render pass (output subsampled image)
 	{
-		m_descriptorSetLayoutOutputSubsampledImage =
-			DescriptorSetLayoutBuilder()
-			.addSingleSamplerBinding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, &(m_colorSampler.get()))
-			.build(vk, vkDevice);
+		DescriptorSetLayoutBuilder	descriptorSetLayoutBuilder;
+		DescriptorPoolBuilder		descriptorPoolBuilder;
+		for (deUint32 samplerIndex = 0; samplerIndex < testParams.samplersCount; ++samplerIndex)
+		{
+			descriptorSetLayoutBuilder.addSingleSamplerBinding(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT, &(*m_colorSamplers[samplerIndex]).get());
+			descriptorPoolBuilder.addType(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, samplerIndex + 1u);
+		}
 
-		// Create and bind descriptor set
-		m_descriptorPoolOutputSubsampledImage =
-			DescriptorPoolBuilder()
-			.addType(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1u)
-			.build(vk, vkDevice, VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, 1u);
+		m_descriptorSetLayoutOutputSubsampledImage	= descriptorSetLayoutBuilder.build(vk, vkDevice);
+		m_descriptorPoolOutputSubsampledImage		= descriptorPoolBuilder.build(vk, vkDevice, VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, 1u);
+		m_pipelineLayoutOutputSubsampledImage		= makePipelineLayout(vk, vkDevice, *m_descriptorSetLayoutOutputSubsampledImage);
+		m_descriptorSetOutputSubsampledImage		= makeDescriptorSet(vk, vkDevice, *m_descriptorPoolOutputSubsampledImage, *m_descriptorSetLayoutOutputSubsampledImage);
 
-		m_pipelineLayoutOutputSubsampledImage = makePipelineLayout(vk, vkDevice, *m_descriptorSetLayoutOutputSubsampledImage);
+		VkImageView srcImageView = *m_colorImageView;
+		if (isColorImageMultisampled)
+			srcImageView = *m_colorResolvedImageView;
+		else if (m_testParams.makeCopy)
+			srcImageView = *m_colorCopyImageView;
 
-		m_descriptorSetOutputSubsampledImage = makeDescriptorSet(vk, vkDevice, *m_descriptorPoolOutputSubsampledImage, *m_descriptorSetLayoutOutputSubsampledImage);
-
-		VkImageView srcImageView = (m_testParams.colorSamples != VK_SAMPLE_COUNT_1_BIT) ? *m_colorResolvedImageView : ((m_testParams.makeCopy) ? *m_colorCopyImageView : *m_colorImageView);
-		const VkDescriptorImageInfo			inputImageInfo =
+		const VkDescriptorImageInfo inputImageInfo =
 		{
 			DE_NULL,									// VkSampleri		sampler;
 			srcImageView,								// VkImageView		imageView;
 			VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL	// VkImageLayout	imageLayout;
 		};
-		DescriptorSetUpdateBuilder()
-			.writeSingle(*m_descriptorSetOutputSubsampledImage, DescriptorSetUpdateBuilder::Location::binding(0u), VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, &inputImageInfo)
-			.update(vk, vkDevice);
+
+		DescriptorSetUpdateBuilder descriptorSetUpdateBuilder;
+		for (deUint32 samplerIndex = 0; samplerIndex < testParams.samplersCount; ++samplerIndex)
+			descriptorSetUpdateBuilder.writeSingle(*m_descriptorSetOutputSubsampledImage, DescriptorSetUpdateBuilder::Location::binding(samplerIndex), VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, &inputImageInfo);
+		descriptorSetUpdateBuilder.update(vk, vkDevice);
 	}
 
-	// load vertex and fragment shaders
-
-	m_vertexCommonShaderModule							= createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("densitymap_vert"), 0);
-	m_fragmentShaderModuleProduceSubsampledImage		= createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("densitymap_frag_produce"), 0);
+	// Load vertex and fragment shaders
+	auto& bc = m_context.getBinaryCollection();
+	m_vertexCommonShaderModule						= createShaderModule(vk, vkDevice, bc.get("vert"), 0);
+	m_fragmentShaderModuleProduceSubsampledImage	= createShaderModule(vk, vkDevice, bc.get("frag_produce_subsampled"), 0);
 	if (m_testParams.makeCopy)
 	{
-		if (m_testParams.colorSamples != VK_SAMPLE_COUNT_1_BIT)
-			m_fragmentShaderModuleCopySubsampledImage	= createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("densitymap_frag_copy_ms"), 0);
-		else
-			m_fragmentShaderModuleCopySubsampledImage	= createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("densitymap_frag_copy"), 0);
+		const char* moduleName = isColorImageMultisampled ? "frag_copy_subsampled_ms" : "frag_copy_subsampled";
+		m_fragmentShaderModuleCopySubsampledImage = createShaderModule(vk, vkDevice, bc.get(moduleName), 0);
 	}
-	if( m_testParams.multiView)
-		m_fragmentShaderModuleOutputSubsampledImage		= createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("densitymap_frag_output_2darray"), 0);
-	else
-		m_fragmentShaderModuleOutputSubsampledImage		= createShaderModule(vk, vkDevice, m_context.getBinaryCollection().get("densitymap_frag_output_2d"), 0);
+	if (m_testParams.subsampledLoads)
+	{
+		const char* moduleName = "frag_update_subsampled";
+		m_fragmentShaderModuleUpdateSubsampledImage = createShaderModule(vk, vkDevice, bc.get(moduleName), 0);
+	}
+	const char* moduleName = (m_testParams.viewCount > 1) ? "frag_output_2darray" : "frag_output_2d";
+	m_fragmentShaderModuleOutputSubsampledImage = createShaderModule(vk, vkDevice, bc.get(moduleName), 0);
 
 	// Create pipelines
 	{
-		const VkVertexInputBindingDescription		vertexInputBindingDescription		=
+		const VkVertexInputBindingDescription vertexInputBindingDescription =
 		{
 			0u,																// deUint32					binding;
 			sizeof(Vertex4RGBA),											// deUint32					strideInBytes;
 			VK_VERTEX_INPUT_RATE_VERTEX										// VkVertexInputStepRate	inputRate;
 		};
 
-		std::vector<VkVertexInputAttributeDescription>	vertexInputAttributeDescriptions	=
+		std::vector<VkVertexInputAttributeDescription> vertexInputAttributeDescriptions =
 		{
 			{ 0u, 0u, VK_FORMAT_R32G32B32A32_SFLOAT, 0u },
 			{ 1u, 0u, VK_FORMAT_R32G32B32A32_SFLOAT, (deUint32)(sizeof(float) * 4) },
 			{ 2u, 0u, VK_FORMAT_R32G32B32A32_SFLOAT, (deUint32)(sizeof(float) * 8) }
 		};
 
-		const VkPipelineVertexInputStateCreateInfo	vertexInputStateParams				=
+		const VkPipelineVertexInputStateCreateInfo vertexInputStateParams =
 		{
 			VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,		// VkStructureType							sType;
 			DE_NULL,														// const void*								pNext;
@@ -1231,7 +1487,7 @@
 			vertexInputAttributeDescriptions.data()							// const VkVertexInputAttributeDescription*	pVertexAttributeDescriptions;
 		};
 
-		const VkPipelineMultisampleStateCreateInfo		multisampleStateCreateInfo =
+		const VkPipelineMultisampleStateCreateInfo multisampleStateCreateInfo
 		{
 			VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,	// VkStructureType							sType
 			DE_NULL,													// const void*								pNext
@@ -1244,18 +1500,14 @@
 			VK_FALSE													// VkBool32									alphaToOneEnable
 		};
 
-		const std::vector<VkViewport>				viewportsProduceDynamicDensityMap	{ makeViewport(densityMapImageSize.width, densityMapImageSize.height) };
-		const std::vector<VkRect2D>					scissorsProduceDynamicDensityMap	{ makeRect2D(densityMapImageSize.width, densityMapImageSize.height) };
-		const std::vector<VkViewport>				viewportsProduceSubsampledImage		{ makeViewport(colorMapImageSize.width, colorMapImageSize.height) };
-		const std::vector<VkRect2D>					scissorsProduceSubsampledImage		{ makeRect2D(colorMapImageSize.width, colorMapImageSize.height) };
-		const std::vector<VkViewport>				viewportsCopySubsampledImage		{ makeViewport(colorMapImageSize.width, colorMapImageSize.height) };
-		const std::vector<VkRect2D>					scissorsCopySubsampledImage			{ makeRect2D(colorMapImageSize.width, colorMapImageSize.height) };
-		const std::vector<VkViewport>				viewportsOutputSubsampledImage		{ makeViewport(outputMapImageSize.width, outputMapImageSize.height) };
-		const std::vector<VkRect2D>					scissorsOutputSubsampledImage		{ makeRect2D(outputMapImageSize.width, outputMapImageSize.height) };
+		const std::vector<VkViewport>	viewportsProduceDynamicDensityMap	{ makeViewport(densityMapImageSize.width, densityMapImageSize.height) };
+		const std::vector<VkRect2D>		scissorsProduceDynamicDensityMap	{ makeRect2D(densityMapImageSize.width, densityMapImageSize.height) };
+		const std::vector<VkViewport>	viewportsSubsampledImage			{ makeViewport(colorImageSize.width, colorImageSize.height) };
+		const std::vector<VkRect2D>		scissorsSubsampledImage				{ makeRect2D(colorImageSize.width, colorImageSize.height) };
+		const std::vector<VkViewport>	viewportsOutputSubsampledImage		{ makeViewport(outputImageSize.width, outputImageSize.height) };
+		const std::vector<VkRect2D>		scissorsOutputSubsampledImage		{ makeRect2D(outputImageSize.width, outputImageSize.height) };
 
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
 		if (testParams.dynamicDensityMap)
-#endif
 			m_graphicsPipelineProduceDynamicDensityMap = makeGraphicsPipeline(vk,							// const DeviceInterface&							vk
 															vkDevice,										// const VkDevice									device
 															*m_pipelineLayoutNoDescriptors,					// const VkPipelineLayout							pipelineLayout
@@ -1281,32 +1533,49 @@
 															DE_NULL,										// const VkShaderModule								geometryShaderModule
 															*m_fragmentShaderModuleProduceSubsampledImage,	// const VkShaderModule								fragmentShaderModule
 															*m_renderPassProduceSubsampledImage,			// const VkRenderPass								renderPass
-															viewportsProduceSubsampledImage,				// const std::vector<VkViewport>&					viewports
-															scissorsProduceSubsampledImage,					// const std::vector<VkRect2D>&						scissors
+															viewportsSubsampledImage,						// const std::vector<VkViewport>&					viewports
+															scissorsSubsampledImage,						// const std::vector<VkRect2D>&						scissors
 															VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,			// const VkPrimitiveTopology						topology
 															0u,												// const deUint32									subpass
 															0u,												// const deUint32									patchControlPoints
 															&vertexInputStateParams,						// const VkPipelineVertexInputStateCreateInfo*		vertexInputStateCreateInfo
-															DE_NULL,										// const VkPipelineRasterizationStateCreateInfo*	rasterizationStateCreateInfo,
+															DE_NULL,										// const VkPipelineRasterizationStateCreateInfo*	rasterizationStateCreateInfo
 															&multisampleStateCreateInfo);					// const VkPipelineMultisampleStateCreateInfo*		multisampleStateCreateInfo
-
 		if(m_testParams.makeCopy)
-			m_graphicsPipelineCopySubsampledImage =		makeGraphicsPipeline(vk,							// const DeviceInterface&							vk
+			m_graphicsPipelineCopySubsampledImage = makeGraphicsPipeline(vk,								// const DeviceInterface&							vk
 															vkDevice,										// const VkDevice									device
-															*m_pipelineLayoutCopySubsampledImage,			// const VkPipelineLayout							pipelineLayout
+															*m_pipelineLayoutOperateOnSubsampledImage,		// const VkPipelineLayout							pipelineLayout
 															*m_vertexCommonShaderModule,					// const VkShaderModule								vertexShaderModule
 															DE_NULL,										// const VkShaderModule								tessellationControlModule
 															DE_NULL,										// const VkShaderModule								tessellationEvalModule
 															DE_NULL,										// const VkShaderModule								geometryShaderModule
 															*m_fragmentShaderModuleCopySubsampledImage,		// const VkShaderModule								fragmentShaderModule
 															*m_renderPassProduceSubsampledImage,			// const VkRenderPass								renderPass
-															viewportsProduceSubsampledImage,				// const std::vector<VkViewport>&					viewports
-															scissorsProduceSubsampledImage,					// const std::vector<VkRect2D>&						scissors
+															viewportsSubsampledImage,						// const std::vector<VkViewport>&					viewports
+															scissorsSubsampledImage,						// const std::vector<VkRect2D>&						scissors
 															VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,			// const VkPrimitiveTopology						topology
 															1u,												// const deUint32									subpass
 															0u,												// const deUint32									patchControlPoints
 															&vertexInputStateParams,						// const VkPipelineVertexInputStateCreateInfo*		vertexInputStateCreateInfo
-															DE_NULL,										// const VkPipelineRasterizationStateCreateInfo*	rasterizationStateCreateInfo,
+															DE_NULL,										// const VkPipelineRasterizationStateCreateInfo*	rasterizationStateCreateInfo
+															&multisampleStateCreateInfo);					// const VkPipelineMultisampleStateCreateInfo*		multisampleStateCreateInfo
+		if (m_testParams.subsampledLoads)
+			m_graphicsPipelineUpdateSubsampledImage = makeGraphicsPipeline(vk,								// const DeviceInterface&							vk
+															vkDevice,										// const VkDevice									device
+															*m_pipelineLayoutOperateOnSubsampledImage,		// const VkPipelineLayout							pipelineLayout
+															*m_vertexCommonShaderModule,					// const VkShaderModule								vertexShaderModule
+															DE_NULL,										// const VkShaderModule								tessellationControlModule
+															DE_NULL,										// const VkShaderModule								tessellationEvalModule
+															DE_NULL,										// const VkShaderModule								geometryShaderModule
+															*m_fragmentShaderModuleUpdateSubsampledImage,	// const VkShaderModule								fragmentShaderModule
+															*m_renderPassUpdateSubsampledImage,				// const VkRenderPass								renderPass
+															viewportsSubsampledImage,						// const std::vector<VkViewport>&					viewports
+															scissorsSubsampledImage,						// const std::vector<VkRect2D>&						scissors
+															VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,			// const VkPrimitiveTopology						topology
+															0u,												// const deUint32									subpass
+															0u,												// const deUint32									patchControlPoints
+															&vertexInputStateParams,						// const VkPipelineVertexInputStateCreateInfo*		vertexInputStateCreateInfo
+															DE_NULL,										// const VkPipelineRasterizationStateCreateInfo*	rasterizationStateCreateInfo
 															&multisampleStateCreateInfo);					// const VkPipelineMultisampleStateCreateInfo*		multisampleStateCreateInfo
 
 		m_graphicsPipelineOutputSubsampledImage = makeGraphicsPipeline(vk,									// const DeviceInterface&							vk
@@ -1327,14 +1596,15 @@
 	}
 
 	// Create vertex buffers
-	m_vertices			= createFullscreenQuadRG();
-	m_verticesDDM		= createFullscreenQuadDensity(1.0f / static_cast<float>(m_testParams.fragmentArea.x()), 1.0f / static_cast<float>(m_testParams.fragmentArea.y()));
-	m_verticesOutput	= createFullscreenMeshOutput(m_testParams.multiView);
+	const tcu::Vec2 densityX(m_densityValue.x());
+	const tcu::Vec2 densityY(m_densityValue.y());
+	m_vertices			= createFullscreenMesh(1, {0.0f, 1.0f}, {0.0f, 1.0f});							// create fullscreen quad with gradient
+	if (testParams.dynamicDensityMap)
+		m_verticesDDM	= createFullscreenMesh(1, densityX, densityY);									// create fullscreen quad with single color
+	m_verticesOutput	= createFullscreenMesh(m_testParams.viewCount, { 0.0f, 0.0f }, { 0.0f, 0.0f });	// create fullscreen mesh with black color
 
 	createVertexBuffer(vk, vkDevice, queueFamilyIndex, memAlloc, m_vertices, m_vertexBuffer, m_vertexBufferAlloc);
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
 	if (testParams.dynamicDensityMap)
-#endif
 		createVertexBuffer(vk, vkDevice, queueFamilyIndex, memAlloc, m_verticesDDM, m_vertexBufferDDM, m_vertexBufferAllocDDM);
 	createVertexBuffer(vk, vkDevice, queueFamilyIndex, memAlloc, m_verticesOutput, m_vertexBufferOutput, m_vertexBufferOutputAlloc);
 
@@ -1342,24 +1612,21 @@
 	m_cmdPool	= createCommandPool(vk, vkDevice, VK_COMMAND_POOL_CREATE_TRANSIENT_BIT, queueFamilyIndex);
 	m_cmdBuffer = allocateCommandBuffer(vk, vkDevice, *m_cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY);
 
-	const typename				RenderpassSubpass2::SubpassBeginInfo	subpassBeginInfo(DE_NULL, VK_SUBPASS_CONTENTS_INLINE);
-	const typename				RenderpassSubpass2::SubpassEndInfo		subpassEndInfo(DE_NULL);
-	const						VkDeviceSize							vertexBufferOffset = 0;
-	std::vector<VkClearValue>	attachmentClearValuesDDM				= { makeClearValueColorF32(1.0f, 1.0f, 1.0f, 1.0f) };
-	std::vector<VkClearValue>	attachmentClearValues					= { makeClearValueColorF32(0.0f, 0.0f, 0.0f, 1.0f) };
-	if (testParams.colorSamples != VK_SAMPLE_COUNT_1_BIT)
-		attachmentClearValues.push_back(makeClearValueColorF32(0.0f, 0.0f, 0.0f, 1.0f));
-	if (testParams.makeCopy)
-		attachmentClearValues.push_back(makeClearValueColorF32(0.0f, 0.0f, 0.0f, 1.0f));
+	typedef RenderpassSubpass2 RPS2;
+	const typename RPS2::SubpassBeginInfo	subpassBeginInfo		(DE_NULL, VK_SUBPASS_CONTENTS_INLINE);
+	const typename RPS2::SubpassEndInfo		subpassEndInfo			(DE_NULL);
+	const VkDeviceSize						vertexBufferOffset		= 0;
+	const VkClearValue						attachmentClearValue	= makeClearValueColorF32(0.0f, 0.0f, 0.0f, 1.0f);
+	const deUint32							attachmentCount			= 1 + testParams.makeCopy + isColorImageMultisampled;
+	const std::vector<VkClearValue>			attachmentClearValues	(attachmentCount, attachmentClearValue);
 
 	beginCommandBuffer(vk, *m_cmdBuffer, 0u);
 
-	// first render pass - render dynamic density map
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
-	if ( testParams.dynamicDensityMap )
-#endif
+	// First render pass - render dynamic density map
+	if (testParams.dynamicDensityMap)
 	{
-		const VkRenderPassBeginInfo renderPassBeginInfoProduceDynamicDensityMap =
+		std::vector<VkClearValue>	attachmentClearValuesDDM { makeClearValueColorF32(1.0f, 1.0f, 1.0f, 1.0f) };
+		const VkRenderPassBeginInfo renderPassBeginInfoProduceDynamicDensityMap
 		{
 			VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,							// VkStructureType		sType;
 			DE_NULL,															// const void*			pNext;
@@ -1369,68 +1636,93 @@
 			static_cast<deUint32>(attachmentClearValuesDDM.size()),				// uint32_t				clearValueCount;
 			attachmentClearValuesDDM.data()										// const VkClearValue*	pClearValues;
 		};
-		RenderpassSubpass2::cmdBeginRenderPass(vk, *m_cmdBuffer, &renderPassBeginInfoProduceDynamicDensityMap, &subpassBeginInfo);
+		RPS2::cmdBeginRenderPass(vk, *m_cmdBuffer, &renderPassBeginInfoProduceDynamicDensityMap, &subpassBeginInfo);
 		vk.cmdBindPipeline(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_graphicsPipelineProduceDynamicDensityMap);
 		vk.cmdBindVertexBuffers(*m_cmdBuffer, 0, 1, &m_vertexBufferDDM.get(), &vertexBufferOffset);
 		vk.cmdDraw(*m_cmdBuffer, (deUint32)m_verticesDDM.size(), 1, 0, 0);
-		RenderpassSubpass2::cmdEndRenderPass(vk, *m_cmdBuffer, &subpassEndInfo);
+		RPS2::cmdEndRenderPass(vk, *m_cmdBuffer, &subpassEndInfo);
 	}
 
-	// render subsampled image
-	const VkRenderPassBeginInfo renderPassBeginInfoProduceSubsampledImage =
+	// Render subsampled image
+	const VkRenderPassBeginInfo renderPassBeginInfoProduceSubsampledImage
 	{
 		VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,						// VkStructureType		sType;
 		DE_NULL,														// const void*			pNext;
 		*m_renderPassProduceSubsampledImage,							// VkRenderPass			renderPass;
 		*m_framebufferProduceSubsampledImage,							// VkFramebuffer		framebuffer;
-		makeRect2D(colorMapImageSize.width, colorMapImageSize.height),	// VkRect2D				renderArea;
+		makeRect2D(colorImageSize.width, colorImageSize.height),		// VkRect2D				renderArea;
 		static_cast<deUint32>(attachmentClearValues.size()),			// uint32_t				clearValueCount;
 		attachmentClearValues.data()									// const VkClearValue*	pClearValues;
 	};
-
-	RenderpassSubpass2::cmdBeginRenderPass(vk, *m_cmdBuffer, &renderPassBeginInfoProduceSubsampledImage, &subpassBeginInfo);
+	RPS2::cmdBeginRenderPass(vk, *m_cmdBuffer, &renderPassBeginInfoProduceSubsampledImage, &subpassBeginInfo);
 	vk.cmdBindPipeline(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_graphicsPipelineProduceSubsampledImage);
 	vk.cmdBindVertexBuffers(*m_cmdBuffer, 0, 1, &m_vertexBuffer.get(), &vertexBufferOffset);
 	vk.cmdDraw(*m_cmdBuffer, (deUint32)m_vertices.size(), 1, 0, 0);
 	if (testParams.makeCopy)
 	{
-		RenderpassSubpass2::cmdNextSubpass(vk, *m_cmdBuffer, &subpassBeginInfo, &subpassEndInfo);
+		RPS2::cmdNextSubpass(vk, *m_cmdBuffer, &subpassBeginInfo, &subpassEndInfo);
 		vk.cmdBindPipeline(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_graphicsPipelineCopySubsampledImage);
-		vk.cmdBindDescriptorSets(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipelineLayoutCopySubsampledImage, 0, 1, &m_descriptorSetCopySubsampledImage.get(), 0, DE_NULL);
+		vk.cmdBindDescriptorSets(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipelineLayoutOperateOnSubsampledImage, 0, 1, &m_descriptorSetOperateOnSubsampledImage.get(), 0, DE_NULL);
 		vk.cmdBindVertexBuffers(*m_cmdBuffer, 0, 1, &m_vertexBuffer.get(), &vertexBufferOffset);
 		vk.cmdDraw(*m_cmdBuffer, (deUint32)m_vertices.size(), 1, 0, 0);
 	}
-	RenderpassSubpass2::cmdEndRenderPass(vk, *m_cmdBuffer, &subpassEndInfo);
+	RPS2::cmdEndRenderPass(vk, *m_cmdBuffer, &subpassEndInfo);
 
-	// copy subsampled image to ordinary image using sampler that is able to read from subsampled images( subsampled image cannot be copied using vkCmdCopyImageToBuffer )
-	const VkRenderPassBeginInfo renderPassBeginInfoOutputSubsampledImage =
+	// Resample subsampled image
+	if (testParams.subsampledLoads)
+	{
+		const VkRenderPassBeginInfo renderPassBeginInfoUpdateSubsampledImage
+		{
+			VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,					// VkStructureType		sType;
+			DE_NULL,													// const void*			pNext;
+			*m_renderPassUpdateSubsampledImage,							// VkRenderPass			renderPass;
+			*m_framebufferUpdateSubsampledImage,						// VkFramebuffer		framebuffer;
+			makeRect2D(colorImageSize.width, colorImageSize.height),	// VkRect2D				renderArea;
+			0u,															// uint32_t				clearValueCount;
+			DE_NULL														// const VkClearValue*	pClearValues;
+		};
+		RPS2::cmdBeginRenderPass(vk, *m_cmdBuffer, &renderPassBeginInfoUpdateSubsampledImage, &subpassBeginInfo);
+		vk.cmdBindPipeline(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_graphicsPipelineUpdateSubsampledImage);
+		vk.cmdBindDescriptorSets(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipelineLayoutOperateOnSubsampledImage, 0, 1, &m_descriptorSetOperateOnSubsampledImage.get(), 0, DE_NULL);
+		vk.cmdBindVertexBuffers(*m_cmdBuffer, 0, 1, &m_vertexBuffer.get(), &vertexBufferOffset);
+		vk.cmdDraw(*m_cmdBuffer, (deUint32)m_vertices.size(), 1, 0, 0);
+		RPS2::cmdEndRenderPass(vk, *m_cmdBuffer, &subpassEndInfo);
+	}
+
+	// Copy subsampled image to normal image using sampler that is able to read from subsampled images
+	// (subsampled image cannot be copied using vkCmdCopyImageToBuffer)
+	const VkRenderPassBeginInfo renderPassBeginInfoOutputSubsampledImage
 	{
 		VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,							// VkStructureType		sType;
 		DE_NULL,															// const void*			pNext;
 		*m_renderPassOutputSubsampledImage,									// VkRenderPass			renderPass;
 		*m_framebufferOutputSubsampledImage,								// VkFramebuffer		framebuffer;
-		makeRect2D(outputMapImageSize.width, outputMapImageSize.height),	// VkRect2D				renderArea;
+		makeRect2D(outputImageSize.width, outputImageSize.height),			// VkRect2D				renderArea;
 		static_cast<deUint32>(attachmentClearValues.size()),				// uint32_t				clearValueCount;
 		attachmentClearValues.data()										// const VkClearValue*	pClearValues;
 	};
-	RenderpassSubpass2::cmdBeginRenderPass(vk, *m_cmdBuffer, &renderPassBeginInfoOutputSubsampledImage, &subpassBeginInfo);
+	RPS2::cmdBeginRenderPass(vk, *m_cmdBuffer, &renderPassBeginInfoOutputSubsampledImage, &subpassBeginInfo);
 	vk.cmdBindPipeline(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_graphicsPipelineOutputSubsampledImage);
 	vk.cmdBindDescriptorSets(*m_cmdBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, *m_pipelineLayoutOutputSubsampledImage, 0, 1, &m_descriptorSetOutputSubsampledImage.get(), 0, DE_NULL);
 	vk.cmdBindVertexBuffers(*m_cmdBuffer, 0, 1, &m_vertexBufferOutput.get(), &vertexBufferOffset);
 	vk.cmdDraw(*m_cmdBuffer, (deUint32)m_verticesOutput.size(), 1, 0, 0);
-	RenderpassSubpass2::cmdEndRenderPass(vk, *m_cmdBuffer, &subpassEndInfo);
+	RPS2::cmdEndRenderPass(vk, *m_cmdBuffer, &subpassEndInfo);
 
 	endCommandBuffer(vk, *m_cmdBuffer);
 }
 
 tcu::TestStatus FragmentDensityMapTestInstance::iterate (void)
 {
-	const DeviceInterface&		vk			= m_context.getDeviceInterface();
-	const VkDevice				vkDevice	= m_context.getDevice();
-	const VkQueue				queue		= m_context.getUniversalQueue();
+	const DeviceInterface&	vk			= m_context.getDeviceInterface();
+	const VkDevice			vkDevice	= m_context.getDevice();
+	const VkQueue			queue		= m_context.getUniversalQueue();
 
 	submitCommandsAndWait(vk, vkDevice, queue, m_cmdBuffer.get());
 
+	// approximations used when coarse reconstruction is specified are implementation defined
+	if (m_testParams.coarseReconstruction)
+		return tcu::TestStatus::pass("Pass");
+
 	return verifyImage();
 }
 
@@ -1450,43 +1742,41 @@
 
 tcu::TestStatus FragmentDensityMapTestInstance::verifyImage (void)
 {
-	const DeviceInterface&				vk						= m_context.getDeviceInterface();
-	const VkDevice						vkDevice				= m_context.getDevice();
-	const VkQueue						queue					= m_context.getUniversalQueue();
-	const deUint32						queueFamilyIndex		= m_context.getUniversalQueueFamilyIndex();
-	SimpleAllocator						memAlloc				(vk, vkDevice, getPhysicalDeviceMemoryProperties(m_context.getInstanceInterface(), m_context.getPhysicalDevice()));
-	tcu::UVec2							renderSize				{ m_testParams.renderSize.x(), m_testParams.renderSize.y() };
-	de::UniquePtr<tcu::TextureLevel>	outputImage				(pipeline::readColorAttachment(vk, vkDevice, queue, queueFamilyIndex, memAlloc, *m_outputImage, VK_FORMAT_R8G8B8A8_UNORM, renderSize).release());
-	const tcu::ConstPixelBufferAccess&	outputAccess			= outputImage->getAccess();
-	tcu::TestLog&						log						= m_context.getTestContext().getLog();
+	const DeviceInterface&				vk					= m_context.getDeviceInterface();
+	const VkDevice						vkDevice			= m_context.getDevice();
+	const VkQueue						queue				= m_context.getUniversalQueue();
+	const deUint32						queueFamilyIndex	= m_context.getUniversalQueueFamilyIndex();
+	SimpleAllocator						memAlloc			(vk, vkDevice, getPhysicalDeviceMemoryProperties(m_context.getInstanceInterface(), m_context.getPhysicalDevice()));
+	tcu::UVec2							renderSize			(m_renderSize.x(), m_renderSize.y());
+	de::UniquePtr<tcu::TextureLevel>	outputImage			(pipeline::readColorAttachment(vk, vkDevice, queue, queueFamilyIndex, memAlloc, *m_outputImage, VK_FORMAT_R8G8B8A8_UNORM, renderSize).release());
+	const tcu::ConstPixelBufferAccess&	outputAccess		(outputImage->getAccess());
+	tcu::TestLog&						log					(m_context.getTestContext().getLog());
 
-	// log images
+	// Log images
 	log << tcu::TestLog::ImageSet("Result", "Result images")
 		<< tcu::TestLog::Image("Rendered", "Rendered output image", outputAccess)
 		<< tcu::TestLog::EndImageSet;
 
-	deUint32 colorCountCoeff = m_testParams.multiView ? 2u : 1u;
-#if !DRY_RUN_WITHOUT_FDM_EXTENSION
-	deUint32 estimatedColorCount = colorCountCoeff * m_testParams.fragmentArea.x() * m_testParams.fragmentArea.y();
-#else
-	deUint32 estimatedColorCount = colorCountCoeff;
-#endif
-	tcu::Vec2 density{
-		1.0f / static_cast<float>(m_testParams.fragmentArea.x()),
-		1.0f / static_cast<float>(m_testParams.fragmentArea.y())
-	};
-	float densityMult = density.x() * density.y();
+	deUint32	estimatedColorCount	= m_testParams.viewCount * m_testParams.fragmentArea.x() * m_testParams.fragmentArea.y();
+	float		densityMult			= m_densityValue.x() * m_densityValue.y();
 
-	// create histogram of all image colors, check the value of inverted FragSizeEXT
+#if DRY_RUN_WITHOUT_FDM_EXTENSION
+	estimatedColorCount = m_testParams.viewCount + 2;
+	densityMult			= 0.0f;
+#endif
+
+	// Create histogram of all image colors, check the value of inverted FragSizeEXT
 	std::map<tcu::Vec4, deUint32, Vec4Sorter> colorCount;
 	for (int y = 0; y < outputAccess.getHeight(); y++)
 	{
 		for (int x = 0; x < outputAccess.getWidth(); x++)
 		{
-			tcu::Vec4 outputColor	= outputAccess.getPixel(x, y);
-			float densityClamped	= outputColor.z() * outputColor.w();
+			tcu::Vec4	outputColor		= outputAccess.getPixel(x, y);
+			float		densityClamped	= outputColor.z() * outputColor.w();
+
 			if ((densityClamped + 0.01) < densityMult)
 				return tcu::TestStatus::fail("Wrong value of FragSizeEXT variable");
+
 			auto it = colorCount.find(outputColor);
 			if (it == end(colorCount))
 				it = colorCount.insert({ outputColor, 0u }).first;
@@ -1494,7 +1784,7 @@
 		}
 	}
 
-	// check if color count is the same as estimated one
+	// Check if color count is the same as estimated one
 	for (const auto& color : colorCount)
 	{
 		if (color.second > estimatedColorCount)
@@ -1508,22 +1798,24 @@
 
 tcu::TestCaseGroup* createFragmentDensityMapTests (tcu::TestContext& testCtx)
 {
-	de::MovePtr<tcu::TestCaseGroup>		fdmTests		(new tcu::TestCaseGroup(testCtx, "fragment_density_map", "VK_EXT_fragment_density_map extension tests"));
+	de::MovePtr<tcu::TestCaseGroup> fdmTests(new tcu::TestCaseGroup(testCtx, "fragment_density_map", "VK_EXT_fragment_density_map and VK_EXT_fragment_density_map2 extensions tests"));
 
 	const struct
 	{
-		std::string				name;
-		bool					multiview;
+		std::string		name;
+		deUint32		viewCount;
 	} views[] =
 	{
-		{ "single_view",	false },
-		{ "multi_view",		true }
+		{ "1_view",		1 },
+		{ "2_views",	2 },
+		{ "4_views",	4 },
+		{ "6_views",	6 },
 	};
 
 	const struct
 	{
-		std::string				name;
-		bool					makeCopy;
+		std::string			name;
+		bool				makeCopy;
 	} renders[] =
 	{
 		{ "render",			false },
@@ -1532,8 +1824,8 @@
 
 	const struct
 	{
-		std::string				name;
-		float					renderSizeToDensitySize;
+		std::string		name;
+		float			renderSizeToDensitySize;
 	} sizes[] =
 	{
 		{ "divisible_density_size",		4.0f },
@@ -1561,24 +1853,56 @@
 
 	for (const auto& view : views)
 	{
-		de::MovePtr<tcu::TestCaseGroup>		viewGroup(new tcu::TestCaseGroup(testCtx, view.name.c_str(), ""));
+		de::MovePtr<tcu::TestCaseGroup> viewGroup(new tcu::TestCaseGroup(testCtx, view.name.c_str(), ""));
 		for (const auto& render : renders)
 		{
-			de::MovePtr<tcu::TestCaseGroup>		renderGroup(new tcu::TestCaseGroup(testCtx, render.name.c_str(), ""));
+			de::MovePtr<tcu::TestCaseGroup> renderGroup(new tcu::TestCaseGroup(testCtx, render.name.c_str(), ""));
 			for (const auto& size : sizes)
 			{
-				de::MovePtr<tcu::TestCaseGroup>		sizeGroup(new tcu::TestCaseGroup(testCtx, size.name.c_str(), ""));
+				de::MovePtr<tcu::TestCaseGroup> sizeGroup(new tcu::TestCaseGroup(testCtx, size.name.c_str(), ""));
 				for (const auto& sample : samples)
 				{
-					de::MovePtr<tcu::TestCaseGroup>		sampleGroup(new tcu::TestCaseGroup(testCtx, sample.name.c_str(), ""));
+					de::MovePtr<tcu::TestCaseGroup> sampleGroup(new tcu::TestCaseGroup(testCtx, sample.name.c_str(), ""));
 					for (const auto& area : fragmentArea)
 					{
 						std::stringstream str;
 						str << "_" << area.x() << "_" << area.y();
-						sampleGroup->addChild(new FragmentDensityMapTest(testCtx, std::string("static_subsampled") + str.str(), "", TestParams(false, false, view.multiview, render.makeCopy, size.renderSizeToDensitySize, sample.samples, area)));
-						sampleGroup->addChild(new FragmentDensityMapTest(testCtx, std::string("dynamic_subsampled") + str.str(), "", TestParams(true, false, view.multiview, render.makeCopy, size.renderSizeToDensitySize, sample.samples, area)));
-						sampleGroup->addChild(new FragmentDensityMapTest(testCtx, std::string("static_nonsubsampled") + str.str(), "", TestParams(false, true, view.multiview, render.makeCopy, size.renderSizeToDensitySize, sample.samples, area)));
-						sampleGroup->addChild(new FragmentDensityMapTest(testCtx, std::string("dynamic_nonsubsampled") + str.str(), "", TestParams(true, true, view.multiview, render.makeCopy, size.renderSizeToDensitySize, sample.samples, area)));
+
+						TestParams params
+						{
+							false,							// bool						dynamicDensityMap;
+							false,							// bool						deferredDensityMap;
+							false,							// bool						nonSubsampledImages;
+							false,							// bool						subsampledLoads;
+							false,							// bool						coarseReconstruction;
+							1,								// deUint32					samplersCount;
+							view.viewCount,					// deUint32					viewCount;
+							render.makeCopy,				// bool						makeCopy;
+							size.renderSizeToDensitySize,	// float					renderMultiplier;
+							sample.samples,					// VkSampleCountFlagBits	colorSamples;
+							area,							// tcu::UVec2				fragmentArea;
+							{ 16, 16 },						// tcu::UVec2				densityMapSize;
+							VK_FORMAT_R8G8_UNORM			// VkFormat					densityMapFormat;
+						};
+
+						sampleGroup->addChild(new FragmentDensityMapTest(testCtx, std::string("static_subsampled") + str.str(), "", params));
+						params.deferredDensityMap	= true;
+						sampleGroup->addChild(new FragmentDensityMapTest(testCtx, std::string("deferred_subsampled") + str.str(), "", params));
+						params.deferredDensityMap	= false;
+						params.dynamicDensityMap	= true;
+						sampleGroup->addChild(new FragmentDensityMapTest(testCtx, std::string("dynamic_subsampled") + str.str(), "", params));
+
+						// generate nonsubsampled tests just for single view and double view cases
+						if (view.viewCount < 3)
+						{
+							params.nonSubsampledImages	= true;
+							sampleGroup->addChild(new FragmentDensityMapTest(testCtx, std::string("static_nonsubsampled") + str.str(), "", params));
+							params.deferredDensityMap	= true;
+							sampleGroup->addChild(new FragmentDensityMapTest(testCtx, std::string("deferred_nonsubsampled") + str.str(), "", params));
+							params.deferredDensityMap	= false;
+							params.dynamicDensityMap	= true;
+							sampleGroup->addChild(new FragmentDensityMapTest(testCtx, std::string("dynamic_nonsubsampled") + str.str(), "", params));
+						}
 					}
 					sizeGroup->addChild(sampleGroup.release());
 				}
@@ -1588,6 +1912,62 @@
 		}
 		fdmTests->addChild(viewGroup.release());
 	}
+
+	const struct
+	{
+		std::string		name;
+		deUint32		count;
+	} subsampledSamplers[] =
+	{
+		{ "2_subsampled_samplers",	2 },
+		{ "4_subsampled_samplers",	4 },
+		{ "6_subsampled_samplers",	6 },
+		{ "8_subsampled_samplers",	8 }
+	};
+
+	de::MovePtr<tcu::TestCaseGroup> propertiesGroup(new tcu::TestCaseGroup(testCtx, "properties", ""));
+	for (const auto& sampler : subsampledSamplers)
+	{
+		TestParams params
+		{
+			false,							// bool						dynamicDensityMap;
+			false,							// bool						deferredDensityMap;
+			false,							// bool						nonSubsampledImages;
+			false,							// bool						subsampledLoads;
+			false,							// bool						coarseReconstruction;
+			sampler.count,					// deUint32					samplersCount;
+			1,								// deUint32					viewCount;
+			false,							// bool						makeCopy;
+			4.0f,							// float					renderMultiplier;
+			VK_SAMPLE_COUNT_1_BIT,			// VkSampleCountFlagBits	colorSamples;
+			{  2,  2 },						// tcu::UVec2				fragmentArea;
+			{ 16, 16 },						// tcu::UVec2				densityMapSize;
+			VK_FORMAT_R8G8_UNORM			// VkFormat					densityMapFormat;
+		};
+		propertiesGroup->addChild(new FragmentDensityMapTest(testCtx, sampler.name, "", params));
+	}
+	TestParams params
+	{
+		false,							// bool						dynamicDensityMap;
+		false,							// bool						deferredDensityMap;
+		false,							// bool						nonSubsampledImages;
+		true,							// bool						subsampledLoads;
+		false,							// bool						coarseReconstruction;
+		1,								// deUint32					samplersCount;
+		2,								// deUint32					viewCount;
+		false,							// bool						makeCopy;
+		4.0f,							// float					renderMultiplier;
+		VK_SAMPLE_COUNT_1_BIT,			// VkSampleCountFlagBits	colorSamples;
+		{  1,  2 },						// tcu::UVec2				fragmentArea;
+		{ 16, 16 },						// tcu::UVec2				densityMapSize;
+		VK_FORMAT_R8G8_UNORM			// VkFormat					densityMapFormat;
+	};
+	propertiesGroup->addChild(new FragmentDensityMapTest(testCtx, "subsampled_loads", "", params));
+	params.subsampledLoads		= false;
+	params.coarseReconstruction	= true;
+	propertiesGroup->addChild(new FragmentDensityMapTest(testCtx, "subsampled_coarse_reconstruction", "", params));
+	fdmTests->addChild(propertiesGroup.release());
+
 	return fdmTests.release();
 }
 
diff --git a/external/vulkancts/modules/vulkan/renderpass/vktRenderPassMultipleSubpassesMultipleCommandBuffersTests.cpp b/external/vulkancts/modules/vulkan/renderpass/vktRenderPassMultipleSubpassesMultipleCommandBuffersTests.cpp
index 91f64fd..69d58b4 100644
--- a/external/vulkancts/modules/vulkan/renderpass/vktRenderPassMultipleSubpassesMultipleCommandBuffersTests.cpp
+++ b/external/vulkancts/modules/vulkan/renderpass/vktRenderPassMultipleSubpassesMultipleCommandBuffersTests.cpp
@@ -101,7 +101,6 @@
 	static constexpr deUint32				kImageHeight		= 32;
 	const tcu::UVec2						m_renderSize		= { kImageWidth, kImageHeight };
 
-	// FIXME: check if I need all of this.
 	VkClearValue							m_initialColor;
 	VkClearValue							m_clearColor;
 
@@ -180,7 +179,6 @@
 // Create a render pass for this use case.
 Move<VkRenderPass> createRenderPass (const DeviceInterface&	vk, VkDevice vkDevice)
 {
-	// XXX: Add more code to this
 	// Create attachment descriptions.
 	const VkAttachmentDescription		attachmentDescription	=
 	{
@@ -195,7 +193,6 @@
 		VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL	// VkImageLayout					finalLayout
 	};
 
-	// XXX: Review this parameters, I think I am doing it wrong.
 	// Mark attachments as used or not depending on the test parameters.
 	const VkAttachmentReference			attachmentReference
 	{
@@ -820,7 +817,6 @@
 		VK_CHECK(vk.waitForFences(vkDevice, 1u, &fence.get(), DE_TRUE, ~0ull));
 	}
 
-	// XXX: Add code for image verification for both color attachments
 	{
 		// Colors to compare to.
 		const tcu::Vec4			red			= {1.0f, 0.0f, 0.0f, 1.0f};
diff --git a/external/vulkancts/modules/vulkan/renderpass/vktRenderPassSubpassDependencyTests.cpp b/external/vulkancts/modules/vulkan/renderpass/vktRenderPassSubpassDependencyTests.cpp
index b4c91d2..24002d9 100644
--- a/external/vulkancts/modules/vulkan/renderpass/vktRenderPassSubpassDependencyTests.cpp
+++ b/external/vulkancts/modules/vulkan/renderpass/vktRenderPassSubpassDependencyTests.cpp
@@ -1455,6 +1455,39 @@
 
 	beginCommandBuffer(vkd, *commandBuffer);
 
+	// Transition stencil aspects to the final layout directly.
+	if (isDepthStencilFormat(m_format))
+	{
+		const VkImageSubresourceRange imageSubresourceRange =
+		{
+			VK_IMAGE_ASPECT_STENCIL_BIT,	// VkImageAspectFlags	aspectMask
+			0u,								// uint32_t				baseMipLevel
+			1u,								// uint32_t				levelCount
+			0u,								// uint32_t				baseArrayLayer
+			1u								// uint32_t				layerCount
+		};
+
+		VkImageMemoryBarrier barrier =
+		{
+			VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,				// VkStructureType			sType
+			DE_NULL,											// const void*				pNext
+			0u,													// VkAccessFlags			srcAccessMask
+			VK_ACCESS_TRANSFER_READ_BIT,						// VkAccessFlags			dstAccessMask
+			VK_IMAGE_LAYOUT_UNDEFINED,							// VkImageLayout			oldLayout
+			VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,	// VkImageLayout			newLayout
+			VK_QUEUE_FAMILY_IGNORED,							// uint32_t					srcQueueFamilyIndex
+			VK_QUEUE_FAMILY_IGNORED,							// uint32_t					dstQueueFamilyIndex
+			DE_NULL,											// VkImage					image
+			imageSubresourceRange								// VkImageSubresourceRange	subresourceRange
+		};
+
+		for (deUint32 attachmentNdx = 0; attachmentNdx < attachmentCount; ++attachmentNdx)
+		{
+			barrier.image = **m_images[attachmentNdx];
+			vkd.cmdPipelineBarrier(*commandBuffer, VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, 0u, 0u, DE_NULL, 0u, DE_NULL, 1u, &barrier);
+		}
+	}
+
 	// Begin render pass
 	{
 		VkRect2D					renderArea			=
@@ -2968,6 +3001,9 @@
 		dst.glslSources.add("vert") << glu::VertexSource(
 				"#version 450\n"
 				"layout(location = 0) in highp vec4 position;\n"
+				"out gl_PerVertex {\n"
+				"    vec4 gl_Position;\n"
+				"};\n"
 				"void main (void)\n"
 				"{\n"
 				"    gl_Position = position;\n"
diff --git a/external/vulkancts/modules/vulkan/renderpass/vktRenderPassTests.cpp b/external/vulkancts/modules/vulkan/renderpass/vktRenderPassTests.cpp
index 44cf7b2..39f5a12 100644
--- a/external/vulkancts/modules/vulkan/renderpass/vktRenderPassTests.cpp
+++ b/external/vulkancts/modules/vulkan/renderpass/vktRenderPassTests.cpp
@@ -71,6 +71,7 @@
 #include <set>
 #include <string>
 #include <vector>
+#include <memory>
 
 using namespace vk;
 
@@ -1579,8 +1580,8 @@
 					   VkDeviceSize				nonCoherentAtomSize)
 {
 	// Expand the range to flush to account for the nonCoherentAtomSize
-	VkDeviceSize roundedOffset = (VkDeviceSize)deAlignSize(deUint32(memory.getOffset()), deUint32(nonCoherentAtomSize));
-	VkDeviceSize roundedSize = (VkDeviceSize)deAlignSize(deUint32(memory.getOffset() + size - roundedOffset), deUint32(nonCoherentAtomSize));
+	const VkDeviceSize roundedOffset	= de::roundDown(memory.getOffset(), nonCoherentAtomSize);
+	const VkDeviceSize roundedSize		= de::roundUp(memory.getOffset() - roundedOffset + static_cast<VkDeviceSize>(size), nonCoherentAtomSize);
 
 	const VkMappedMemoryRange range =
 	{
@@ -2111,13 +2112,16 @@
 			m_pipelineLayout		= createPipelineLayout(vk, device, &pipelineLayoutParams);
 			m_pipeline				= createSubpassPipeline(vk, device, renderPass, *m_vertexShaderModule, *m_fragmentShaderModule, *m_pipelineLayout, m_renderInfo);
 
-			m_vertexBuffer			= createBuffer(vk, device, 0u, (VkDeviceSize)renderQuad.getVertexDataSize(), VK_BUFFER_USAGE_VERTEX_BUFFER_BIT, VK_SHARING_MODE_EXCLUSIVE, 1u, &queueFamilyIndex);
+			// Round up the vertex buffer size to honor nonCoherentAtomSize.
+			const auto	properties			= vk::getPhysicalDeviceProperties(context.getInstanceInterface(), context.getPhysicalDevice());
+			const auto	vertexBufferSize	= de::roundUp(static_cast<VkDeviceSize>(renderQuad.getVertexDataSize()), properties.limits.nonCoherentAtomSize);
+
+			m_vertexBuffer			= createBuffer(vk, device, 0u, vertexBufferSize, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT, VK_SHARING_MODE_EXCLUSIVE, 1u, &queueFamilyIndex);
 			m_vertexBufferMemory	= allocateBuffer(vki, vk, physDevice, device, *m_vertexBuffer, MemoryRequirement::HostVisible, allocator, allocationKind);
 
 			bindBufferMemory(vk, device, *m_vertexBuffer, m_vertexBufferMemory->getMemory(), m_vertexBufferMemory->getOffset());
 
-			const vk::VkPhysicalDeviceProperties properties = vk::getPhysicalDeviceProperties(context.getInstanceInterface(), context.getPhysicalDevice());
-			uploadBufferData(vk, device, *m_vertexBufferMemory, renderQuad.getVertexDataSize(), renderQuad.getVertexPointer(), properties.limits.nonCoherentAtomSize);
+			uploadBufferData(vk, device, *m_vertexBufferMemory, static_cast<size_t>(vertexBufferSize), renderQuad.getVertexPointer(), properties.limits.nonCoherentAtomSize);
 
 			if (renderInfo.getInputAttachmentCount() > 0)
 			{
@@ -3579,6 +3583,70 @@
 	return ok;
 }
 
+// Setting the alpha value to 1.0f by default helps visualization when the alpha channel is not used.
+const tcu::Vec4	kDefaultColorForLog	{0.0f, 0.0f, 0.0f, 1.0f};
+const float		kTrueComponent		= 1.0f;
+const float		kFalseComponent		= 0.5f;
+const float		kUnsetComponentLow	= 0.0f;
+const float		kUnsetComponentHigh	= 0.25f;
+
+std::unique_ptr<tcu::TextureLevel> renderColorImageForLog (const ConstPixelBufferAccess& image, int numChannels)
+{
+	// Same channel order, but using UNORM_INT8 for the color format.
+	const auto							order			= image.getFormat().order;
+	const tcu::TextureFormat			loggableFormat	{order, tcu::TextureFormat::UNORM_INT8};
+	const int							width			= image.getWidth();
+	const int							height			= image.getHeight();
+	std::unique_ptr<tcu::TextureLevel>	result			{new tcu::TextureLevel{loggableFormat, width, height}};
+	auto								access			= result->getAccess();
+	tcu::Vec4							outColor		= kDefaultColorForLog;
+
+	for (int x = 0; x < width; ++x)
+	for (int y = 0; y < height; ++y)
+	{
+		const auto value = image.getPixel(x, y);
+		for (int c = 0; c < numChannels; ++c)
+		{
+			if (value[c] == 0.0f)
+				outColor[c] = kFalseComponent;
+			else if (value[c] == 1.0f)
+				outColor[c] = kTrueComponent;
+			else
+				DE_ASSERT(false);
+		}
+		access.setPixel(outColor, x, y);
+	}
+
+	return result;
+}
+
+std::unique_ptr<tcu::TextureLevel> renderColorImageForLog (const vector<PixelValue>& reference, const UVec2& targetSize, int numChannels)
+{
+	const tcu::TextureFormat			loggableFormat	{tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8};
+	const int							width			= static_cast<int>(targetSize.x());
+	const int							height			= static_cast<int>(targetSize.y());
+	std::unique_ptr<tcu::TextureLevel>	result			{new tcu::TextureLevel{loggableFormat, width, height}};
+	auto								access			= result->getAccess();
+	tcu::Vec4							outColor		= kDefaultColorForLog;
+
+	for (int x = 0; x < width; ++x)
+	for (int y = 0; y < height; ++y)
+	{
+		const int index = x + y * width;
+		for (int c = 0; c < numChannels; ++c)
+		{
+			const auto maybeValue = reference[index].getValue(c);
+			if (maybeValue)
+				outColor[c] = ((*maybeValue) ? kTrueComponent : kFalseComponent);
+			else
+				outColor[c] = ((((x / 3) % 2) == ((y / 3) % 2)) ? kUnsetComponentLow : kUnsetComponentHigh);
+		}
+		access.setPixel(outColor, x, y);
+	}
+
+	return result;
+}
+
 bool verifyDepthAttachment (const vector<PixelValue>&		reference,
 							const ConstPixelBufferAccess&	result,
 							const PixelBufferAccess&		errorImage,
@@ -3690,6 +3758,7 @@
 	{
 		if (!attachmentIsLazy[attachmentNdx])
 		{
+			bool						attachmentOK	= true;
 			const Attachment			attachment		= renderPassInfo.getAttachments()[attachmentNdx];
 			const tcu::TextureFormat	format			= mapVkFormat(attachment.getFormat());
 
@@ -3705,28 +3774,41 @@
 				invalidateAlloc(vk, device, attachmentResources[attachmentNdx]->getSecondaryResultMemory());
 
 				{
+					bool							depthOK				= true;
+					bool							stencilOK			= true;
 					const ConstPixelBufferAccess	depthAccess			(depthFormat, targetSize.x(), targetSize.y(), 1, depthPtr);
 					const ConstPixelBufferAccess	stencilAccess		(stencilFormat, targetSize.x(), targetSize.y(), 1, stencilPtr);
 					tcu::TextureLevel				depthErrorImage		(tcu::TextureFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8), targetSize.x(), targetSize.y());
 					tcu::TextureLevel				stencilErrorImage	(tcu::TextureFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8), targetSize.x(), targetSize.y());
 
-					log << TestLog::Image("Attachment" + de::toString(attachmentNdx) + "Depth", "Attachment " + de::toString(attachmentNdx) + " Depth", depthAccess);
-					log << TestLog::Image("Attachment" + de::toString(attachmentNdx) + "Stencil", "Attachment " + de::toString(attachmentNdx) + " Stencil", stencilAccess);
-
-					log << TestLog::Image("AttachmentReference" + de::toString(attachmentNdx), "Attachment reference " + de::toString(attachmentNdx), referenceAttachments[attachmentNdx].getAccess());
-
 					if (renderPassInfo.getAttachments()[attachmentNdx].getStoreOp() == VK_ATTACHMENT_STORE_OP_STORE
 						&& !verifyDepthAttachment(referenceValues[attachmentNdx], depthAccess, depthErrorImage.getAccess(), config.depthValues, requiredDepthEpsilon(attachment.getFormat())))
 					{
-						log << TestLog::Image("DepthAttachmentError" + de::toString(attachmentNdx), "Depth Attachment Error " + de::toString(attachmentNdx), depthErrorImage.getAccess());
-						isOk = false;
+						depthOK = false;
 					}
 
 					if (renderPassInfo.getAttachments()[attachmentNdx].getStencilStoreOp() == VK_ATTACHMENT_STORE_OP_STORE
 						&& !verifyStencilAttachment(referenceValues[attachmentNdx], stencilAccess, stencilErrorImage.getAccess()))
 					{
-						log << TestLog::Image("StencilAttachmentError" + de::toString(attachmentNdx), "Stencil Attachment Error " + de::toString(attachmentNdx), stencilErrorImage.getAccess());
-						isOk = false;
+						stencilOK = false;
+					}
+
+					if (!depthOK || !stencilOK)
+					{
+						log << TestLog::ImageSet("TestImages", "Output depth and stencil attachments, reference images and error masks");
+						log << TestLog::Image("Attachment" + de::toString(attachmentNdx) + "Depth", "Attachment " + de::toString(attachmentNdx) + " Depth", depthAccess);
+						log << TestLog::Image("Attachment" + de::toString(attachmentNdx) + "Stencil", "Attachment " + de::toString(attachmentNdx) + " Stencil", stencilAccess);
+						log << TestLog::Image("AttachmentReference" + de::toString(attachmentNdx), "Attachment reference " + de::toString(attachmentNdx), referenceAttachments[attachmentNdx].getAccess());
+
+						if (!depthOK)
+							log << TestLog::Image("DepthAttachmentError" + de::toString(attachmentNdx), "Depth Attachment Error " + de::toString(attachmentNdx), depthErrorImage.getAccess());
+
+						if (!stencilOK)
+							log << TestLog::Image("StencilAttachmentError" + de::toString(attachmentNdx), "Stencil Attachment Error " + de::toString(attachmentNdx), stencilErrorImage.getAccess());
+
+						log << TestLog::EndImageSet;
+
+						attachmentOK = false;
 					}
 				}
 			}
@@ -3736,19 +3818,18 @@
 
 				invalidateAlloc(vk, device, attachmentResources[attachmentNdx]->getResultMemory());
 
+				bool							depthOK		= true;
+				bool							stencilOK	= true;
+				bool							colorOK		= true;
 				const ConstPixelBufferAccess	access		(format, targetSize.x(), targetSize.y(), 1, ptr);
-				tcu::TextureLevel errorImage	(tcu::TextureFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8), targetSize.x(), targetSize.y());
-
-				log << TestLog::Image("Attachment" + de::toString(attachmentNdx), "Attachment " + de::toString(attachmentNdx), access);
-				log << TestLog::Image("AttachmentReference" + de::toString(attachmentNdx), "Attachment reference " + de::toString(attachmentNdx), referenceAttachments[attachmentNdx].getAccess());
+				tcu::TextureLevel				errorImage	(tcu::TextureFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8), targetSize.x(), targetSize.y());
 
 				if (tcu::hasDepthComponent(format.order))
 				{
 					if ((renderPassInfo.getAttachments()[attachmentNdx].getStoreOp() == VK_ATTACHMENT_STORE_OP_STORE || renderPassInfo.getAttachments()[attachmentNdx].getStencilStoreOp() == VK_ATTACHMENT_STORE_OP_STORE)
 						&& !verifyDepthAttachment(referenceValues[attachmentNdx], access, errorImage.getAccess(), config.depthValues, requiredDepthEpsilon(attachment.getFormat())))
 					{
-						log << TestLog::Image("AttachmentError" + de::toString(attachmentNdx), "Attachment Error " + de::toString(attachmentNdx), errorImage.getAccess());
-						isOk = false;
+						depthOK = false;
 					}
 				}
 				else if (tcu::hasStencilComponent(format.order))
@@ -3756,8 +3837,7 @@
 					if ((renderPassInfo.getAttachments()[attachmentNdx].getStoreOp() == VK_ATTACHMENT_STORE_OP_STORE || renderPassInfo.getAttachments()[attachmentNdx].getStencilStoreOp() == VK_ATTACHMENT_STORE_OP_STORE)
 						&& !verifyStencilAttachment(referenceValues[attachmentNdx], access, errorImage.getAccess()))
 					{
-						log << TestLog::Image("AttachmentError" + de::toString(attachmentNdx), "Attachment Error " + de::toString(attachmentNdx), errorImage.getAccess());
-						isOk = false;
+						stencilOK = false;
 					}
 				}
 				else
@@ -3765,11 +3845,42 @@
 					if ((renderPassInfo.getAttachments()[attachmentNdx].getStoreOp() == VK_ATTACHMENT_STORE_OP_STORE || renderPassInfo.getAttachments()[attachmentNdx].getStencilStoreOp() == VK_ATTACHMENT_STORE_OP_STORE)
 						&& !verifyColorAttachment(referenceValues[attachmentNdx], access, errorImage.getAccess(), config.useFormatCompCount))
 					{
-						log << TestLog::Image("AttachmentError" + de::toString(attachmentNdx), "Attachment Error " + de::toString(attachmentNdx), errorImage.getAccess());
-						isOk = false;
+						colorOK = false;
 					}
 				}
+
+				if (!depthOK || !stencilOK || !colorOK)
+				{
+					log << TestLog::ImageSet("TestImages", "Output attachment, reference image and error mask");
+					if (!depthOK || !stencilOK)
+					{
+						// Log without conversions.
+						log << TestLog::Image("Attachment" + de::toString(attachmentNdx), "Attachment " + de::toString(attachmentNdx), access);
+						log << TestLog::Image("AttachmentReference" + de::toString(attachmentNdx), "Attachment reference " + de::toString(attachmentNdx), referenceAttachments[attachmentNdx].getAccess());
+					}
+					else
+					{
+						// Convert color images to better reflect test status and output in any format.
+						const auto numChannels		= tcu::getNumUsedChannels(access.getFormat().order);
+						const auto attachmentForLog	= renderColorImageForLog(access, numChannels);
+						const auto referenceForLog	= renderColorImageForLog(referenceValues[attachmentNdx], targetSize, numChannels);
+
+						log << TestLog::Message << "Check the attachment formats and test data to verify which components affect the test result." << TestLog::EndMessage;
+						log << TestLog::Message << "In the reference image, unset pixel components are marked with a 3x3 grid storing values 0.0 and 0.25, pixel components set to false are stored as 0.5 and pixel components set to true are stored as 1.0." << TestLog::EndMessage;
+						log << TestLog::Message << "Output attachment pixel components are always set to 0.5 or 1.0 but may not be taken into account if not set in the reference image." << TestLog::EndMessage;
+
+						log << TestLog::Image("Attachment" + de::toString(attachmentNdx), "Attachment " + de::toString(attachmentNdx), attachmentForLog->getAccess());
+						log << TestLog::Image("AttachmentReference" + de::toString(attachmentNdx), "Attachment reference " + de::toString(attachmentNdx), referenceForLog->getAccess());
+					}
+					log << TestLog::Image("AttachmentError" + de::toString(attachmentNdx), "Attachment Error " + de::toString(attachmentNdx), errorImage.getAccess());
+					log << TestLog::EndImageSet;
+
+					attachmentOK = false;
+				}
 			}
+
+			if (!attachmentOK)
+				isOk = false;
 		}
 	}
 
@@ -6485,10 +6596,10 @@
 															vector<deUint32>()));
 
 								deps.push_back(SubpassDependency(0, 1,
-																vk::VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
+																vk::VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | vk::VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
 																vk::VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
 
-																vk::VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+																vk::VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
 																vk::VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
 																0u));
 
@@ -6647,10 +6758,10 @@
 																vector<deUint32>()));
 
 									deps.push_back(SubpassDependency(0, 1,
-																	vk::VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
+																	vk::VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | vk::VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT,
 																	vk::VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
 
-																	vk::VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+																	vk::VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,
 																	vk::VK_ACCESS_INPUT_ATTACHMENT_READ_BIT,
 																	0u));
 
diff --git a/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinPrecisionTests.cpp b/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinPrecisionTests.cpp
index ed567c4..38ae1d0 100644
--- a/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinPrecisionTests.cpp
+++ b/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderBuiltinPrecisionTests.cpp
@@ -5658,46 +5658,38 @@
 	return ((exponent & v) == 0 && (mantissa & v) != 0);
 }
 
-//! Generate a random float from a reasonable general-purpose distribution.
-float DefaultSampling<float>::genRandom (const FloatFormat&	format,
-										 Precision			prec,
-										 Random&			rnd,
-										 const Interval&	inputRange) const
+//! Generate a random double from a reasonable general-purpose distribution.
+double randomDouble(const FloatFormat& format, Random& rnd, const Interval& inputRange)
 {
-	DE_UNREF(prec);
 	// No testing of subnormals. TODO: Could integrate float controls for some operations.
 	const int		minExp			= format.getMinExp();
 	const int		maxExp			= format.getMaxExp();
 	const bool		haveSubnormal	= false;
-	const float		midpoint		= static_cast<float>(inputRange.midpoint());
+	const double	midpoint		= inputRange.midpoint();
 
 	// Choose exponent so that the cumulative distribution is cubic.
 	// This makes the probability distribution quadratic, with the peak centered on zero.
 	const double	minRoot			= deCbrt(minExp - 0.5 - (haveSubnormal ? 1.0 : 0.0));
 	const double	maxRoot			= deCbrt(maxExp + 0.5);
 	const int		fractionBits	= format.getFractionBits();
-	const int		exp				= int(deRoundEven(dePow(rnd.getDouble(minRoot, maxRoot),
-															3.0)));
-	float			base			= 0.0f; // integral power of two
-	float			quantum			= 0.0f; // smallest representable difference in the binade
-	float			significand		= 0.0f; // Significand.
-	float			value			= -1.0f;
-	DE_ASSERT(fractionBits < std::numeric_limits<float>::digits);
+	const int		exp				= int(deRoundEven(dePow(rnd.getDouble(minRoot, maxRoot), 3.0)));
 
 	// Generate some occasional special numbers
 	switch (rnd.getInt(0, 64))
 	{
-		case 0:		return inputRange.contains(0)				? 0				: midpoint; break;
-		case 1:		return inputRange.contains(TCU_INFINITY)	? TCU_INFINITY	: midpoint; break;
-		case 2:		return inputRange.contains(-TCU_INFINITY)	? -TCU_INFINITY	: midpoint; break;
-		case 3:		return inputRange.contains(TCU_NAN)			? TCU_NAN		: midpoint; break;
+		case 0:		return inputRange.contains(0)				? 0				: midpoint;
+		case 1:		return inputRange.contains(TCU_INFINITY)	? TCU_INFINITY	: midpoint;
+		case 2:		return inputRange.contains(-TCU_INFINITY)	? -TCU_INFINITY	: midpoint;
+		case 3:		return inputRange.contains(TCU_NAN)			? TCU_NAN		: midpoint;
 		default:	break;
 	}
 
-	// Normal number
-	base = deFloatLdExp(1.0f, exp);
-	quantum = deFloatLdExp(1.0f, exp - fractionBits);
+	DE_ASSERT(fractionBits < std::numeric_limits<double>::digits);
 
+	// Normal number
+	double base = deLdExp(1.0, exp);
+	double quantum = deLdExp(1.0, exp - fractionBits); // smallest representable difference in the binade
+	double significand = 0.0;
 	switch (rnd.getInt(0, 16))
 	{
 		case 0: // The highest number in this binade, significand is all bits one.
@@ -5712,14 +5704,23 @@
 		default: // Random (evenly distributed) significand.
 		{
 			deUint64 intFraction = rnd.getUint64() & ((1 << fractionBits) - 1);
-			significand = float(intFraction) * quantum;
+			significand = double(intFraction) * quantum;
 		}
 	}
 
 	// Produce positive numbers more often than negative.
-	value = (rnd.getInt(0, 3) == 0 ? -1.0f : 1.0f) * (base + significand);
+	double value = (rnd.getInt(0, 3) == 0 ? -1.0 : 1.0) * (base + significand);
+	return inputRange.contains(value) ? value : midpoint;
+}
 
-	return inputRange.contains(static_cast<double>(value)) ? value : midpoint;
+//! Generate a random float from a reasonable general-purpose distribution.
+float DefaultSampling<float>::genRandom (const FloatFormat&	format,
+										 Precision			prec,
+										 Random&			rnd,
+										 const Interval&	inputRange) const
+{
+	DE_UNREF(prec);
+	return (float)randomDouble(format, rnd, inputRange);
 }
 
 //! Generate a standard set of floats that should always be tested.
@@ -5778,61 +5779,7 @@
 										   const Interval&		inputRange) const
 {
 	DE_UNREF(prec);
-	// No testing of subnormals. TODO: Could integrate float controls for some operations.
-	const int		minExp			= format.getMinExp();
-	const int		maxExp			= format.getMaxExp();
-	const bool		haveSubnormal	= false;
-	const double	midpoint		= inputRange.midpoint();
-
-	// Choose exponent so that the cumulative distribution is cubic.
-	// This makes the probability distribution quadratic, with the peak centered on zero.
-	const double	minRoot			= deCbrt(minExp - 0.5 - (haveSubnormal ? 1.0 : 0.0));
-	const double	maxRoot			= deCbrt(maxExp + 0.5);
-	const int		fractionBits	= format.getFractionBits();
-	const int		exp				= int(deRoundEven(dePow(rnd.getDouble(minRoot, maxRoot),
-															3.0)));
-	double			base			= 0.0; // integral power of two
-	double			quantum			= 0.0; // smallest representable difference in the binade
-	double			significand		= 0.0; // Significand.
-	double			value			= -1.0;
-	DE_ASSERT(fractionBits < std::numeric_limits<double>::digits);
-
-	// Generate some occasional special numbers
-	switch (rnd.getInt(0, 64))
-	{
-		case 0:		return inputRange.contains(0)				? 0				: midpoint; break;
-		case 1:		return inputRange.contains(TCU_INFINITY)	? TCU_INFINITY	: midpoint; break;
-		case 2:		return inputRange.contains(-TCU_INFINITY)	? -TCU_INFINITY	: midpoint; break;
-		case 3:		return inputRange.contains(TCU_NAN)			? TCU_NAN		: midpoint; break;
-		default:	break;
-	}
-
-	// Normal number
-	base = deLdExp(1.0, exp);
-	quantum = deLdExp(1.0, exp - fractionBits);
-
-	switch (rnd.getInt(0, 16))
-	{
-		case 0: // The highest number in this binade, significand is all bits one.
-			significand = base - quantum;
-			break;
-		case 1: // Significand is one.
-			significand = quantum;
-			break;
-		case 2: // Significand is zero.
-			significand = 0.0;
-			break;
-		default: // Random (evenly distributed) significand.
-		{
-			deUint64 intFraction = rnd.getUint64() & ((1 << fractionBits) - 1);
-			significand = double(intFraction) * quantum;
-		}
-	}
-
-	// Produce positive numbers more often than negative.
-	value = (rnd.getInt(0, 3) == 0 ? -1.0 : 1.0) * (base + significand);
-
-	return inputRange.contains(value) ? value : midpoint;
+	return randomDouble(format, rnd, inputRange);
 }
 
 //! Generate a standard set of floats that should always be tested.
@@ -5896,61 +5843,7 @@
 												Random& rnd, const Interval& inputRange) const
 {
 	DE_UNREF(prec);
-	const int		minExp			= format.getMinExp();
-	const int		maxExp			= format.getMaxExp();
-	const bool		haveSubnormal	= false;
-	const deUint16	midpoint		= deFloat32To16Round(static_cast<float>(inputRange.midpoint()), DE_ROUNDINGMODE_TO_NEAREST_EVEN);
-
-	// Choose exponent so that the cumulative distribution is cubic.
-	// This makes the probability distribution quadratic, with the peak centered on zero.
-	const double	minRoot			= deCbrt(minExp - 0.5 - (haveSubnormal ? 1.0 : 0.0));
-	const double	maxRoot			= deCbrt(maxExp + 0.5);
-	const int		fractionBits	= format.getFractionBits();
-	const int		exp				= int(deRoundEven(dePow(rnd.getDouble(minRoot, maxRoot),
-															3.0)));
-	float			base			= 0.0f; // integral power of two
-	float			quantum			= 0.0f; // smallest representable difference in the binade
-	float			significand		= 0.0f; // Significand.
-
-	DE_ASSERT(fractionBits < std::numeric_limits<float>::digits);
-
-	// Generate some occasional special numbers
-	switch (rnd.getInt(0, 64))
-	{
-		case 0:		return inputRange.contains(static_cast<double>(deFloat16To32(0))) ? 0 : midpoint;
-		case 1:		return inputRange.contains(static_cast<double>(deFloat16To32(deUint16(0x7c00)))) ? deUint16(0x7c00) : midpoint;	//INFINITY
-		case 2:		return inputRange.contains(static_cast<double>(deFloat16To32(deUint16(0xfcf0)))) ? deUint16(0xfcf0) : midpoint;	//INFINITY
-		case 3:		return inputRange.contains(static_cast<double>(deFloat16To32(deUint16(0xfc0f)))) ? deUint16(0xfc0f) : midpoint;	//NaN
-		default:	break;
-	}
-
-	// Normal number
-	base = deFloatLdExp(1.0f, exp);
-	quantum = deFloatLdExp(1.0f, exp - fractionBits);
-
-	switch (rnd.getInt(0, 16))
-	{
-		case 0: // The highest number in this binade, significand is all bits one.
-			significand = base - quantum;
-			break;
-		case 1: // Significand is one.
-			significand = quantum;
-			break;
-		case 2: // Significand is zero.
-			significand = 0.0;
-			break;
-		default: // Random (evenly distributed) significand.
-		{
-			deUint64 intFraction = rnd.getUint64() & ((1 << fractionBits) - 1);
-			significand = deFloat16(intFraction) * quantum;
-		}
-	}
-
-	// Produce positive numbers more often than negative.
-	float value			= (rnd.getInt(0, 3) == 0 ? -1.0f : 1.0f) * (base + significand);
-	deFloat16 value16b	= deFloat32To16Round(value, DE_ROUNDINGMODE_TO_NEAREST_EVEN);
-
-	return inputRange.contains(static_cast<double>(value16b)) ? value16b : midpoint;
+	return deFloat64To16Round(randomDouble(format, rnd, inputRange), DE_ROUNDINGMODE_TO_NEAREST_EVEN);
 }
 
 //! Generate a standard set of floats that should always be tested.
diff --git a/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderCommonFunctionTests.cpp b/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderCommonFunctionTests.cpp
index c777ccd..e980e39 100644
--- a/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderCommonFunctionTests.cpp
+++ b/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderCommonFunctionTests.cpp
@@ -231,13 +231,13 @@
 	return str;
 }
 
-static std::string getCommonFuncCaseName (glu::DataType baseType, glu::Precision precision, glu::ShaderType shaderType)
+static std::string getCommonFuncCaseName (glu::DataType baseType, glu::Precision precision)
 {
-	return string(glu::getDataTypeName(baseType)) + getPrecisionPostfix(precision) + getShaderTypePostfix(shaderType);
+	return string(glu::getDataTypeName(baseType)) + getPrecisionPostfix(precision) + "_compute";
 }
 
 template<class TestClass>
-static void addFunctionCases (tcu::TestCaseGroup* parent, const char* functionName, glu::DataType scalarType, deUint32 shaderBits)
+static void addFunctionCases (tcu::TestCaseGroup* parent, const char* functionName, glu::DataType scalarType)
 {
 	tcu::TestCaseGroup* group = new tcu::TestCaseGroup(parent->getTestContext(), functionName, functionName);
 	parent->addChild(group);
@@ -246,11 +246,7 @@
 	{
 		for (int prec = glu::PRECISION_MEDIUMP; prec <= glu::PRECISION_HIGHP; prec++)
 		{
-			for (int shaderTypeNdx = 0; shaderTypeNdx < glu::SHADERTYPE_LAST; shaderTypeNdx++)
-			{
-				if (shaderBits & (1<<shaderTypeNdx))
-					group->addChild(new TestClass(parent->getTestContext(), glu::DataType(scalarType + vecSize - 1), glu::Precision(prec), glu::ShaderType(shaderTypeNdx)));
-			}
+			group->addChild(new TestClass(parent->getTestContext(), glu::DataType(scalarType + vecSize - 1), glu::Precision(prec)));
 		}
 	}
 }
@@ -260,11 +256,11 @@
 class CommonFunctionCase : public TestCase
 {
 public:
-										CommonFunctionCase			(tcu::TestContext& testCtx, const char* name, const char* description, glu::ShaderType shaderType);
+										CommonFunctionCase			(tcu::TestContext& testCtx, const char* name, const char* description);
 										~CommonFunctionCase			(void);
 	virtual	void						initPrograms				(vk::SourceCollections& programCollection) const
 										{
-											generateSources(m_shaderType, m_spec, programCollection);
+											generateSources(glu::SHADERTYPE_COMPUTE, m_spec, programCollection);
 										}
 
 	virtual TestInstance*				createInstance				(Context& context) const = 0;
@@ -273,14 +269,12 @@
 										CommonFunctionCase			(const CommonFunctionCase&);
 	CommonFunctionCase&					operator=					(const CommonFunctionCase&);
 
-	const glu::ShaderType				m_shaderType;
 	ShaderSpec							m_spec;
 	const int							m_numValues;
 };
 
-CommonFunctionCase::CommonFunctionCase (tcu::TestContext& testCtx, const char* name, const char* description, glu::ShaderType shaderType)
+CommonFunctionCase::CommonFunctionCase (tcu::TestContext& testCtx, const char* name, const char* description)
 	: TestCase		(testCtx, name, description)
-	, m_shaderType	(shaderType)
 	, m_numValues	(100)
 {
 }
@@ -294,13 +288,12 @@
 class CommonFunctionTestInstance : public TestInstance
 {
 public:
-										CommonFunctionTestInstance	(Context& context, glu::ShaderType shaderType, const ShaderSpec& spec, int numValues, const char* name)
+										CommonFunctionTestInstance	(Context& context, const ShaderSpec& spec, int numValues, const char* name)
 											: TestInstance	(context)
-											, m_shaderType	(shaderType)
 											, m_spec		(spec)
 											, m_numValues	(numValues)
 											, m_name		(name)
-											, m_executor	(createExecutor(context, shaderType, spec))
+											, m_executor	(createExecutor(context, glu::SHADERTYPE_COMPUTE, spec))
 										{
 										}
 	virtual tcu::TestStatus				iterate						(void);
@@ -309,7 +302,6 @@
 	virtual void						getInputValues				(int numValues, void* const* values) const = 0;
 	virtual bool						compare						(const void* const* inputs, const void* const* outputs) = 0;
 
-	const glu::ShaderType				m_shaderType;
 	const ShaderSpec					m_spec;
 	const int							m_numValues;
 
@@ -392,8 +384,8 @@
 class AbsCaseInstance : public CommonFunctionTestInstance
 {
 public:
-	AbsCaseInstance (Context& context, glu::ShaderType shaderType, const ShaderSpec& spec, int numValues, const char* name)
-		: CommonFunctionTestInstance	(context, shaderType, spec, numValues, name)
+	AbsCaseInstance (Context& context, const ShaderSpec& spec, int numValues, const char* name)
+		: CommonFunctionTestInstance	(context, spec, numValues, name)
 	{
 	}
 
@@ -443,8 +435,8 @@
 class AbsCase : public CommonFunctionCase
 {
 public:
-	AbsCase (tcu::TestContext& testCtx, glu::DataType baseType, glu::Precision precision, glu::ShaderType shaderType)
-		: CommonFunctionCase	(testCtx, getCommonFuncCaseName(baseType, precision, shaderType).c_str(), "abs", shaderType)
+	AbsCase (tcu::TestContext& testCtx, glu::DataType baseType, glu::Precision precision)
+		: CommonFunctionCase	(testCtx, getCommonFuncCaseName(baseType, precision).c_str(), "abs")
 	{
 		m_spec.inputs.push_back(Symbol("in0", glu::VarType(baseType, precision)));
 		m_spec.outputs.push_back(Symbol("out0", glu::VarType(baseType, precision)));
@@ -453,15 +445,15 @@
 
 	TestInstance* createInstance (Context& ctx) const
 	{
-		return new AbsCaseInstance(ctx, m_shaderType, m_spec, m_numValues, getName());
+		return new AbsCaseInstance(ctx, m_spec, m_numValues, getName());
 	}
 };
 
 class SignCaseInstance : public CommonFunctionTestInstance
 {
 public:
-	SignCaseInstance (Context& context, glu::ShaderType shaderType, const ShaderSpec& spec, int numValues, const char* name)
-		: CommonFunctionTestInstance	(context, shaderType, spec, numValues, name)
+	SignCaseInstance (Context& context, const ShaderSpec& spec, int numValues, const char* name)
+		: CommonFunctionTestInstance	(context, spec, numValues, name)
 	{
 	}
 
@@ -515,8 +507,8 @@
 class SignCase : public CommonFunctionCase
 {
 public:
-	SignCase (tcu::TestContext& testCtx, glu::DataType baseType, glu::Precision precision, glu::ShaderType shaderType)
-		: CommonFunctionCase	(testCtx, getCommonFuncCaseName(baseType, precision, shaderType).c_str(), "sign", shaderType)
+	SignCase (tcu::TestContext& testCtx, glu::DataType baseType, glu::Precision precision)
+		: CommonFunctionCase	(testCtx, getCommonFuncCaseName(baseType, precision).c_str(), "sign")
 	{
 		m_spec.inputs.push_back(Symbol("in0", glu::VarType(baseType, precision)));
 		m_spec.outputs.push_back(Symbol("out0", glu::VarType(baseType, precision)));
@@ -525,7 +517,7 @@
 
 	TestInstance* createInstance (Context& ctx) const
 	{
-		return new SignCaseInstance(ctx, m_shaderType, m_spec, m_numValues, getName());
+		return new SignCaseInstance(ctx, m_spec, m_numValues, getName());
 	}
 };
 
@@ -560,8 +552,8 @@
 class IsnanCaseInstance : public CommonFunctionTestInstance
 {
 public:
-	IsnanCaseInstance (Context& context, glu::ShaderType shaderType, const ShaderSpec& spec, int numValues, const char* name)
-		: CommonFunctionTestInstance	(context, shaderType, spec, numValues, name)
+	IsnanCaseInstance (Context& context, const ShaderSpec& spec, int numValues, const char* name)
+		: CommonFunctionTestInstance	(context, spec, numValues, name)
 	{
 	}
 
@@ -576,36 +568,23 @@
 		const glu::Precision	precision		= m_spec.inputs[0].varType.getPrecision();
 		const int				scalarSize		= glu::getDataTypeScalarSize(type);
 
-		if (precision == glu::PRECISION_HIGHP)
+		for (int compNdx = 0; compNdx < scalarSize; compNdx++)
 		{
-			// Only highp is required to support inf/nan
-			for (int compNdx = 0; compNdx < scalarSize; compNdx++)
-			{
-				const float		in0		= ((const float*)inputs[0])[compNdx];
-				const bool		out0	= ((const deUint32*)outputs[0])[compNdx] != 0;
-				const bool		ref		= tcu::Float32(in0).isNaN();
+			const float		in0		= ((const float*)inputs[0])[compNdx];
+			const bool		out0	= ((const deUint32*)outputs[0])[compNdx] != 0;
+			const bool		ref		= tcu::Float32(in0).isNaN();
+			bool			ok;
 
-				if (out0 != ref)
-				{
-					m_failMsg << "Expected [" << compNdx << "] = " << (ref ? "true" : "false");
-					return false;
-				}
-			}
-		}
-		else if (precision == glu::PRECISION_MEDIUMP || precision == glu::PRECISION_LOWP)
-		{
-			// NaN support is optional, check that inputs that are not NaN don't result in true.
-			for (int compNdx = 0; compNdx < scalarSize; compNdx++)
-			{
-				const float		in0		= ((const float*)inputs[0])[compNdx];
-				const bool		out0	= ((const deUint32*)outputs[0])[compNdx] != 0;
-				const bool		ref		= tcu::Float32(in0).isNaN();
+			// NaN support only required for highp. Otherwise just check for false positives.
+			if (precision == glu::PRECISION_HIGHP)
+				ok = (out0 == ref);
+			else
+				ok = ref || !out0;
 
-				if (!ref && out0)
-				{
-					m_failMsg << "Expected [" << compNdx << "] = " << (ref ? "true" : "false");
-					return false;
-				}
+			if (!ok)
+			{
+				m_failMsg << "Expected [" << compNdx << "] = " << (ref ? "true" : "false");
+				return false;
 			}
 		}
 
@@ -616,8 +595,8 @@
 class IsnanCase : public CommonFunctionCase
 {
 public:
-	IsnanCase (tcu::TestContext& testCtx, glu::DataType baseType, glu::Precision precision, glu::ShaderType shaderType)
-		: CommonFunctionCase	(testCtx, getCommonFuncCaseName(baseType, precision, shaderType).c_str(), "isnan", shaderType)
+	IsnanCase (tcu::TestContext& testCtx, glu::DataType baseType, glu::Precision precision)
+		: CommonFunctionCase	(testCtx, getCommonFuncCaseName(baseType, precision).c_str(), "isnan")
 	{
 		DE_ASSERT(glu::isDataTypeFloatOrVec(baseType));
 
@@ -631,15 +610,15 @@
 
 	TestInstance* createInstance (Context& ctx) const
 	{
-		return new IsnanCaseInstance(ctx, m_shaderType, m_spec, m_numValues, getName());
+		return new IsnanCaseInstance(ctx, m_spec, m_numValues, getName());
 	}
 };
 
 class IsinfCaseInstance : public CommonFunctionTestInstance
 {
 public:
-	IsinfCaseInstance (Context& context, glu::ShaderType shaderType, const ShaderSpec& spec, int numValues, const char* name)
-		: CommonFunctionTestInstance(context, shaderType, spec, numValues, name)
+	IsinfCaseInstance (Context& context, const ShaderSpec& spec, int numValues, const char* name)
+		: CommonFunctionTestInstance(context, spec, numValues, name)
 	{
 	}
 
@@ -654,39 +633,30 @@
 		const glu::Precision	precision		= m_spec.inputs[0].varType.getPrecision();
 		const int				scalarSize		= glu::getDataTypeScalarSize(type);
 
-		if (precision == glu::PRECISION_HIGHP)
+		for (int compNdx = 0; compNdx < scalarSize; compNdx++)
 		{
-			// Only highp is required to support inf/nan
-			for (int compNdx = 0; compNdx < scalarSize; compNdx++)
+			const float		in0		= ((const float*)inputs[0])[compNdx];
+			const bool		out0	= ((const deUint32*)outputs[0])[compNdx] != 0;
+			bool			ref;
+			bool			ok;
+			if (precision == glu::PRECISION_HIGHP)
 			{
-				const float		in0		= ((const float*)inputs[0])[compNdx];
-				const bool		out0	= ((const deUint32*)outputs[0])[compNdx] != 0;
-				const bool		ref		= tcu::Float32(in0).isInf();
-
-				if (out0 != ref)
-				{
-					m_failMsg << "Expected [" << compNdx << "] = " << HexBool(ref);
-					return false;
-				}
+				// Only highp is required to support inf/nan
+				ref = tcu::Float32(in0).isInf();
+				ok = (out0 == ref);
+			}
+			else
+			{
+				// Inf support is optional, check that inputs that are not Inf in mediump don't result in true.
+				ref = tcu::Float16(in0).isInf();
+				ok = (out0 || !ref);
+			}
+			if (!ok)
+			{
+				m_failMsg << "Expected [" << compNdx << "] = " << HexBool(ref);
+				return false;
 			}
 		}
-		else if (precision == glu::PRECISION_MEDIUMP)
-		{
-			// Inf support is optional, check that inputs that are not Inf in mediump don't result in true.
-			for (int compNdx = 0; compNdx < scalarSize; compNdx++)
-			{
-				const float		in0		= ((const float*)inputs[0])[compNdx];
-				const bool		out0	= ((const deUint32*)outputs[0])[compNdx] != 0;
-				const bool		ref		= tcu::Float16(in0).isInf();
-
-				if (!ref && out0)
-				{
-					m_failMsg << "Expected [" << compNdx << "] = " << (ref ? "true" : "false");
-					return false;
-				}
-			}
-		}
-		// else: no verification can be performed
 
 		return true;
 	}
@@ -695,8 +665,8 @@
 class IsinfCase : public CommonFunctionCase
 {
 public:
-	IsinfCase (tcu::TestContext& testCtx, glu::DataType baseType, glu::Precision precision, glu::ShaderType shaderType)
-		: CommonFunctionCase	(testCtx, getCommonFuncCaseName(baseType, precision, shaderType).c_str(), "isinf", shaderType)
+	IsinfCase (tcu::TestContext& testCtx, glu::DataType baseType, glu::Precision precision)
+		: CommonFunctionCase	(testCtx, getCommonFuncCaseName(baseType, precision).c_str(), "isinf")
 	{
 		DE_ASSERT(glu::isDataTypeFloatOrVec(baseType));
 
@@ -710,15 +680,15 @@
 
 	TestInstance* createInstance (Context& ctx) const
 	{
-		return new IsinfCaseInstance(ctx, m_shaderType, m_spec, m_numValues, getName());
+		return new IsinfCaseInstance(ctx, m_spec, m_numValues, getName());
 	}
 };
 
 class FloatBitsToUintIntCaseInstance : public CommonFunctionTestInstance
 {
 public:
-	FloatBitsToUintIntCaseInstance (Context& context, glu::ShaderType shaderType, const ShaderSpec& spec, int numValues, const char* name)
-		: CommonFunctionTestInstance	(context, shaderType, spec, numValues, name)
+	FloatBitsToUintIntCaseInstance (Context& context, const ShaderSpec& spec, int numValues, const char* name)
+		: CommonFunctionTestInstance	(context, spec, numValues, name)
 	{
 	}
 
@@ -770,8 +740,8 @@
 class FloatBitsToUintIntCase : public CommonFunctionCase
 {
 public:
-	FloatBitsToUintIntCase (tcu::TestContext& testCtx, glu::DataType baseType, glu::Precision precision, glu::ShaderType shaderType, bool outIsSigned)
-		: CommonFunctionCase	(testCtx, getCommonFuncCaseName(baseType, precision, shaderType).c_str(), outIsSigned ? "floatBitsToInt" : "floatBitsToUint", shaderType)
+	FloatBitsToUintIntCase (tcu::TestContext& testCtx, glu::DataType baseType, glu::Precision precision, bool outIsSigned)
+		: CommonFunctionCase	(testCtx, getCommonFuncCaseName(baseType, precision).c_str(), outIsSigned ? "floatBitsToInt" : "floatBitsToUint")
 	{
 		const int			vecSize		= glu::getDataTypeScalarSize(baseType);
 		const glu::DataType	intType		= outIsSigned ? (vecSize > 1 ? glu::getDataTypeIntVec(vecSize) : glu::TYPE_INT)
@@ -784,15 +754,15 @@
 
 	TestInstance* createInstance (Context& ctx) const
 	{
-		return new FloatBitsToUintIntCaseInstance(ctx, m_shaderType, m_spec, m_numValues, getName());
+		return new FloatBitsToUintIntCaseInstance(ctx, m_spec, m_numValues, getName());
 	}
 };
 
 class FloatBitsToIntCase : public FloatBitsToUintIntCase
 {
 public:
-	FloatBitsToIntCase (tcu::TestContext& testCtx, glu::DataType baseType, glu::Precision precision, glu::ShaderType shaderType)
-		: FloatBitsToUintIntCase	(testCtx, baseType, precision, shaderType, true)
+	FloatBitsToIntCase (tcu::TestContext& testCtx, glu::DataType baseType, glu::Precision precision)
+		: FloatBitsToUintIntCase	(testCtx, baseType, precision, true)
 	{
 	}
 
@@ -801,8 +771,8 @@
 class FloatBitsToUintCase : public FloatBitsToUintIntCase
 {
 public:
-	FloatBitsToUintCase (tcu::TestContext& testCtx, glu::DataType baseType, glu::Precision precision, glu::ShaderType shaderType)
-		: FloatBitsToUintIntCase	(testCtx, baseType, precision, shaderType, false)
+	FloatBitsToUintCase (tcu::TestContext& testCtx, glu::DataType baseType, glu::Precision precision)
+		: FloatBitsToUintIntCase	(testCtx, baseType, precision, false)
 	{
 	}
 };
@@ -810,8 +780,8 @@
 class BitsToFloatCaseInstance : public CommonFunctionTestInstance
 {
 public:
-	BitsToFloatCaseInstance (Context& context, glu::ShaderType shaderType, const ShaderSpec& spec, int numValues, const char* name)
-		: CommonFunctionTestInstance	(context, shaderType, spec, numValues, name)
+	BitsToFloatCaseInstance (Context& context, const ShaderSpec& spec, int numValues, const char* name)
+		: CommonFunctionTestInstance	(context, spec, numValues, name)
 	{
 	}
 
@@ -853,8 +823,8 @@
 class BitsToFloatCase : public CommonFunctionCase
 {
 public:
-	BitsToFloatCase (tcu::TestContext& testCtx, glu::DataType baseType, glu::ShaderType shaderType)
-		: CommonFunctionCase	(testCtx, getCommonFuncCaseName(baseType, glu::PRECISION_HIGHP, shaderType).c_str(), glu::isDataTypeIntOrIVec(baseType) ? "intBitsToFloat" : "uintBitsToFloat", shaderType)
+	BitsToFloatCase (tcu::TestContext& testCtx, glu::DataType baseType)
+		: CommonFunctionCase	(testCtx, getCommonFuncCaseName(baseType, glu::PRECISION_HIGHP).c_str(), glu::isDataTypeIntOrIVec(baseType) ? "intBitsToFloat" : "uintBitsToFloat")
 	{
 		const bool			inIsSigned	= glu::isDataTypeIntOrIVec(baseType);
 		const int			vecSize		= glu::getDataTypeScalarSize(baseType);
@@ -867,7 +837,7 @@
 
 	TestInstance* createInstance (Context& ctx) const
 	{
-		return new BitsToFloatCaseInstance(ctx, m_shaderType, m_spec, m_numValues, getName());
+		return new BitsToFloatCaseInstance(ctx, m_spec, m_numValues, getName());
 	}
 };
 
@@ -884,29 +854,15 @@
 
 void ShaderCommonFunctionTests::init (void)
 {
-	enum
-	{
-		VS = (1<<glu::SHADERTYPE_VERTEX),
-		TC = (1<<glu::SHADERTYPE_TESSELLATION_CONTROL),
-		TE = (1<<glu::SHADERTYPE_TESSELLATION_EVALUATION),
-		GS = (1<<glu::SHADERTYPE_GEOMETRY),
-		FS = (1<<glu::SHADERTYPE_FRAGMENT),
-		CS = (1<<glu::SHADERTYPE_COMPUTE),
-
-		ALL_SHADERS = VS|TC|TE|GS|FS|CS,
-		NEW_SHADERS = TC|TE|GS|CS,
-	};
-
-	addFunctionCases<AbsCase>				(this,	"abs",				glu::TYPE_INT,		ALL_SHADERS);
-	addFunctionCases<SignCase>				(this,	"sign",				glu::TYPE_INT,		ALL_SHADERS);
-	addFunctionCases<IsnanCase>				(this,	"isnan",			glu::TYPE_FLOAT,	ALL_SHADERS);
-	addFunctionCases<IsinfCase>				(this,	"isinf",			glu::TYPE_FLOAT,	ALL_SHADERS);
-	addFunctionCases<FloatBitsToIntCase>	(this,	"floatbitstoint",	glu::TYPE_FLOAT,	ALL_SHADERS);
-	addFunctionCases<FloatBitsToUintCase>	(this,	"floatbitstouint",	glu::TYPE_FLOAT,	ALL_SHADERS);
+	addFunctionCases<AbsCase>				(this,	"abs",				glu::TYPE_INT);
+	addFunctionCases<SignCase>				(this,	"sign",				glu::TYPE_INT);
+	addFunctionCases<IsnanCase>				(this,	"isnan",			glu::TYPE_FLOAT);
+	addFunctionCases<IsinfCase>				(this,	"isinf",			glu::TYPE_FLOAT);
+	addFunctionCases<FloatBitsToIntCase>	(this,	"floatbitstoint",	glu::TYPE_FLOAT);
+	addFunctionCases<FloatBitsToUintCase>	(this,	"floatbitstouint",	glu::TYPE_FLOAT);
 
 	// (u)intBitsToFloat()
 	{
-		const deUint32		shaderBits	= NEW_SHADERS;
 		tcu::TestCaseGroup* intGroup	= new tcu::TestCaseGroup(m_testCtx, "intbitstofloat",	"intBitsToFloat() Tests");
 		tcu::TestCaseGroup* uintGroup	= new tcu::TestCaseGroup(m_testCtx, "uintbitstofloat",	"uintBitsToFloat() Tests");
 
@@ -918,14 +874,8 @@
 			const glu::DataType		intType		= vecSize > 1 ? glu::getDataTypeIntVec(vecSize) : glu::TYPE_INT;
 			const glu::DataType		uintType	= vecSize > 1 ? glu::getDataTypeUintVec(vecSize) : glu::TYPE_UINT;
 
-			for (int shaderType = 0; shaderType < glu::SHADERTYPE_LAST; shaderType++)
-			{
-				if (shaderBits & (1<<shaderType))
-				{
-					intGroup->addChild(new BitsToFloatCase(getTestContext(), intType, glu::ShaderType(shaderType)));
-					uintGroup->addChild(new BitsToFloatCase(getTestContext(), uintType, glu::ShaderType(shaderType)));
-				}
-			}
+			intGroup->addChild(new BitsToFloatCase(getTestContext(), intType));
+			uintGroup->addChild(new BitsToFloatCase(getTestContext(), uintType));
 		}
 	}
 }
diff --git a/external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesBufferSparseResidency.cpp b/external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesBufferSparseResidency.cpp
index 587f7fd..8e4f147 100755
--- a/external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesBufferSparseResidency.cpp
+++ b/external/vulkancts/modules/vulkan/sparse_resources/vktSparseResourcesBufferSparseResidency.cpp
@@ -285,7 +285,7 @@
 
 		deMemcpy(inputBufferAlloc->getHostPtr(), &referenceData[0], m_bufferSize);
 
-		flushMappedMemoryRange(deviceInterface, getDevice(), inputBufferAlloc->getMemory(), inputBufferAlloc->getOffset(), m_bufferSize);
+		flushAlloc(deviceInterface, getDevice(), *inputBufferAlloc);
 
 		// Create output buffer
 		const VkBufferCreateInfo		outputBufferCreateInfo	= makeBufferCreateInfo(m_bufferSize, VK_BUFFER_USAGE_TRANSFER_DST_BIT);
diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/CMakeLists.txt b/external/vulkancts/modules/vulkan/spirv_assembly/CMakeLists.txt
index 404c1d8..f6f3238 100644
--- a/external/vulkancts/modules/vulkan/spirv_assembly/CMakeLists.txt
+++ b/external/vulkancts/modules/vulkan/spirv_assembly/CMakeLists.txt
@@ -65,6 +65,8 @@
 	vktSpvAsmPtrAccessChainTests.hpp
 	vktSpvAsmFloatControlsExtensionlessTests.cpp
 	vktSpvAsmFloatControlsExtensionlessTests.hpp
+	vktSpvAsmTrinaryMinMaxTests.cpp
+	vktSpvAsmTrinaryMinMaxTests.hpp
 	)
 
 set(DEQP_VK_SPIRV_ASSEMBLY_LIBS
diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmCompositeInsertTests.cpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmCompositeInsertTests.cpp
index 0d34f2b..6053db7 100644
--- a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmCompositeInsertTests.cpp
+++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmCompositeInsertTests.cpp
@@ -82,9 +82,14 @@
 	return ret;
 }
 
-string getVectorCompositeInserts (deUint32 elements)
+string getVectorCompositeInserts (deUint32 elements, bool useUndef)
 {
-	string	ret		= "                 %tmp0 = OpLoad %v" + de::toString(elements) + "f32 %vec\n";
+	string	ret;
+
+	if (useUndef)
+		ret	= "                 %tmp0 = OpUndef %v" + de::toString(elements) + "f32\n";
+	else
+		ret	= "                 %tmp0 = OpLoad %v" + de::toString(elements) + "f32 %vec\n";
 
 	for (deUint32 e = 0; e < elements; e++)
 		ret += "                 %tmp" + de::toString(e + 1) + " = OpCompositeInsert %v" + de::toString(elements) + "f32 %c_f32_" + de::toString(e) + " %tmp" + de::toString(e) + " " + de::toString(e) + "\n";
@@ -92,10 +97,15 @@
 	return ret;
 }
 
-string getMatrixCompositeInserts (deUint32 cols, deUint32 rows)
+string getMatrixCompositeInserts (deUint32 cols, deUint32 rows, bool useUndef)
 {
 	string	matType	= getMatrixType(cols, rows);
-	string	ret		= "                 %tmp0 = OpLoad " + matType + " %mat\n";
+	string	ret;
+
+	if (useUndef)
+		ret = "                 %tmp0 = OpUndef " + matType + "\n";
+	else
+		ret = "                 %tmp0 = OpLoad " + matType + " %mat\n";
 
 	for (deUint32 c = 0; c < cols; c++)
 		ret += "                 %tmp" + de::toString(c + 1) + " = OpCompositeInsert " + matType + " %identity" + de::toString(c) + " %tmp" + de::toString(c) + " " + de::toString(c) + "\n";
@@ -128,10 +138,15 @@
 	return ret;
 }
 
-string getNestedStructCompositeInserts (deUint32 arraySize)
+string getNestedStructCompositeInserts (deUint32 arraySize, bool useUndef)
 {
 	string	ret;
 
+	if (useUndef)
+		ret = "                 %tmp0 = OpUndef %Output\n";
+	else
+		ret = "                 %tmp0 = OpLoad %Output %nestedstruct\n";
+
 	for (deUint32 arrayIdx = 0; arrayIdx < arraySize; arrayIdx++)
 		for (deUint32 vectorIdx = 0; vectorIdx < 4; vectorIdx++)
 			ret += string("%tmp") + de::toString(arrayIdx * 4 + vectorIdx + 1) + " = OpCompositeInsert %Output %identity" + de::toString(vectorIdx) + " %tmp" + de::toString(arrayIdx * 4 + vectorIdx) + " 0 0 " + de::toString(arrayIdx) + " " + de::toString(vectorIdx) + "\n";
@@ -143,6 +158,7 @@
 {
 	tcu::TestContext& testCtx = group->getTestContext();
 
+	for (bool useUndef : {true, false})
 	for (deUint32 elements = 2; elements <= 4; elements++)
 	{
 		ComputeShaderSpec	spec;
@@ -181,7 +197,7 @@
 			"                 %main = OpFunction %void None %3\n"
 			"                %entry = OpLabel\n"
 			"                  %vec = OpVariable %_ptr_Function_vec Function\n"
-			+ getVectorCompositeInserts(elements) +
+			+ getVectorCompositeInserts(elements, useUndef) +
 			"            %vecOutPtr = OpAccessChain %_ptr_Uniform_vec %dataOutput %c_i32_0\n"
 			"                         OpStore %vecOutPtr %tmp" + de::toString(elements) + "\n"
 			"                         OpReturn\n"
@@ -196,7 +212,12 @@
 
 		spec.outputs.push_back(Resource(BufferSp(new Float32Buffer(refData))));
 
-		string testName = string("vec") + de::toString(elements);
+		string testName;
+
+		if (useUndef)
+			testName += "undef_";
+
+		testName += string("vec") + de::toString(elements);
 
 		group->addChild(new SpvAsmComputeShaderCase(testCtx, testName.c_str(), "Tests vector composite insert.", spec));
 	}
@@ -204,6 +225,7 @@
 
 void addGraphicsVectorCompositeInsertTests (tcu::TestCaseGroup* group)
 {
+	for (bool useUndef : { true, false })
 	for (deUint32 elements = 2; elements <= 4; elements++)
 	{
 		map<string, string>	fragments;
@@ -216,7 +238,7 @@
 		vector<string>		noExtensions;
 		VulkanFeatures		vulkanFeatures	= VulkanFeatures();
 		vector<float>		refData;
-		const string		testName		= string("vec") + de::toString(elements);
+		const string		testName		= string(useUndef ? "undef_" : "") + "vec" + de::toString(elements);
 		const string		vecType			= string("%v") + de::toString(elements) + "f32";
 
 		// Expect running counter
@@ -248,7 +270,7 @@
 			"                %param = OpFunctionParameter %v4f32\n"
 			"                %entry = OpLabel\n"
 			"                  %vec = OpVariable %fp_v" + de::toString(elements) + "f32 Function\n"
-			+ getVectorCompositeInserts(elements) +
+			+ getVectorCompositeInserts(elements, useUndef) +
 			"            %vecOutPtr = OpAccessChain %_ptr_Uniform_vec %dataOutput %c_i32_0\n"
 			"                         OpStore %vecOutPtr %tmp" + de::toString(elements) + "\n"
 			"                         OpReturnValue %param\n"
@@ -279,6 +301,7 @@
 {
 	tcu::TestContext&		testCtx			= group->getTestContext();
 
+	for (bool useUndef : { true, false })
 	for (deUint32 rows = 2; rows <= 4; rows++)
 	{
 		const deUint32	matrixStride = rows == 3 ? 16 : rows * 4;
@@ -320,7 +343,7 @@
 				"                 %main = OpFunction %void None %3\n"
 				"                %entry = OpLabel\n"
 				"                  %mat = OpVariable %_ptr_Function_mat Function\n"
-				+ getMatrixCompositeInserts(cols, rows) +
+				+ getMatrixCompositeInserts(cols, rows, useUndef) +
 				"            %matOutPtr = OpAccessChain %_ptr_Uniform_mat %dataOutput %c_i32_0\n"
 				"                         OpStore %matOutPtr %tmp" + de::toString(cols) + "\n"
 				"                         OpReturn\n"
@@ -342,7 +365,7 @@
 			spec.outputs.push_back(Resource(BufferSp(new Float32Buffer(identityData))));
 			spec.verifyIO = verifyMatrixOutput;
 
-			string testName = string("mat") + de::toString(cols) + "x" + de::toString(rows);
+			string testName = string(useUndef ? "undef_" : "") + "mat" + de::toString(cols) + "x" + de::toString(rows);
 
 			group->addChild(new SpvAsmComputeShaderCase(testCtx, testName.c_str(), "Tests matrix composite insert.", spec));
 		}
@@ -351,6 +374,7 @@
 
 void addGraphicsMatrixCompositeInsertTests (tcu::TestCaseGroup* group)
 {
+	for (bool useUndef : { true, false })
 	for (deUint32 rows = 2; rows <= 4; rows++)
 	{
 		const deUint32	matrixStride = rows == 3 ? 16 : rows * 4;
@@ -367,7 +391,7 @@
 			vector<string>			noExtensions;
 			VulkanFeatures			vulkanFeatures	= VulkanFeatures();
 			vector<float>			identityData;
-			string					testName		= string("mat") + de::toString(cols) + "x" + de::toString(rows);
+			string					testName		= string(useUndef ? "undef_" : "") + "mat" + de::toString(cols) + "x" + de::toString(rows);
 			string					matType			= getMatrixType(cols, rows);
 
 			// Expect identity matrix as output
@@ -405,7 +429,7 @@
 				"                %param = OpFunctionParameter %v4f32\n"
 				"                %entry = OpLabel\n"
 				"                  %mat = OpVariable %_ptr_Function_mat Function\n"
-				+ getMatrixCompositeInserts(cols, rows) +
+				+ getMatrixCompositeInserts(cols, rows, useUndef) +
 				"            %matOutPtr = OpAccessChain %_ptr_Uniform_mat %dataOutput %c_i32_0\n"
 				"                         OpStore %matOutPtr %tmp" + de::toString(cols) + "\n"
 				"                         OpReturnValue %param\n"
@@ -437,140 +461,145 @@
 {
 	tcu::TestContext&	testCtx			= group->getTestContext();
 
-	ComputeShaderSpec	spec;
-	vector<float>		identityData;
-	const deUint32		arraySize		= 8u;
+	for (bool useUndef : { true, false })
+	{
+		ComputeShaderSpec	spec;
+		vector<float>		identityData;
+		const deUint32		arraySize		= 8u;
+		const string		testName		= string(useUndef ? "undef_" : "") + "nested_struct";
 
-	const string		shaderSource	=
-		"                         OpCapability Shader\n"
-		"                    %1 = OpExtInstImport \"GLSL.std.450\"\n"
-		"                         OpMemoryModel Logical GLSL450\n"
-		"                         OpEntryPoint GLCompute %main \"main\"\n"
-		"                         OpExecutionMode %main LocalSize 1 1 1\n"
-		"                         OpSource GLSL 430\n"
-		"                         OpDecorate %_arr_mat4v4f32_uint_8 ArrayStride 64\n"
-		"                         OpMemberDecorate %S 0 ColMajor\n"
-		"                         OpMemberDecorate %S 0 Offset 0\n"
-		"                         OpMemberDecorate %S 0 MatrixStride 16\n"
-		"                         OpMemberDecorate %Output 0 Offset 0\n"
-		"                         OpDecorate %Output BufferBlock\n"
-		"                         OpDecorate %dataOutput DescriptorSet 0\n"
-		"                         OpDecorate %dataOutput Binding 0\n"
-		"                  %f32 = OpTypeFloat 32\n"
-		"                %v4f32 = OpTypeVector %f32 4\n"
-		"            %mat4v4f32 = OpTypeMatrix %v4f32 4\n"
-		"                 %uint = OpTypeInt 32 0\n"
-		"               %uint_8 = OpConstant %uint 8\n"
-		"%_arr_mat4v4f32_uint_8 = OpTypeArray %mat4v4f32 %uint_8\n"
-		"                    %S = OpTypeStruct %_arr_mat4v4f32_uint_8\n"
-		"               %Output = OpTypeStruct %S\n"
-		"  %_ptr_Uniform_Output = OpTypePointer Uniform %Output\n"
-		" %_ptr_Function_Output = OpTypePointer Function %Output\n"
-		"           %dataOutput = OpVariable %_ptr_Uniform_Output Uniform\n"
-		"              %c_f32_0 = OpConstant %f32 0\n"
-		"              %c_f32_1 = OpConstant %f32 1\n"
-		"                  %i32 = OpTypeInt 32 1\n"
-		"              %c_i32_0 = OpConstant %i32 0\n"
-		+ getIdentityVectors(4, 4) +
-		"                 %void = OpTypeVoid\n"
-		"                    %3 = OpTypeFunction %void\n"
-		"                 %main = OpFunction %void None %3\n"
-		"                %entry = OpLabel\n"
-		"         %nestedstruct = OpVariable %_ptr_Function_Output Function\n"
-		"                 %tmp0 = OpLoad %Output %nestedstruct\n"
-		+ getNestedStructCompositeInserts(arraySize) +
-		"                         OpStore %dataOutput %tmp" + de::toString(arraySize * 4) + "\n"
-		"                         OpReturn\n"
-		"                         OpFunctionEnd\n";
+		const string		shaderSource	=
+			"                         OpCapability Shader\n"
+			"                    %1 = OpExtInstImport \"GLSL.std.450\"\n"
+			"                         OpMemoryModel Logical GLSL450\n"
+			"                         OpEntryPoint GLCompute %main \"main\"\n"
+			"                         OpExecutionMode %main LocalSize 1 1 1\n"
+			"                         OpSource GLSL 430\n"
+			"                         OpDecorate %_arr_mat4v4f32_uint_8 ArrayStride 64\n"
+			"                         OpMemberDecorate %S 0 ColMajor\n"
+			"                         OpMemberDecorate %S 0 Offset 0\n"
+			"                         OpMemberDecorate %S 0 MatrixStride 16\n"
+			"                         OpMemberDecorate %Output 0 Offset 0\n"
+			"                         OpDecorate %Output BufferBlock\n"
+			"                         OpDecorate %dataOutput DescriptorSet 0\n"
+			"                         OpDecorate %dataOutput Binding 0\n"
+			"                  %f32 = OpTypeFloat 32\n"
+			"                %v4f32 = OpTypeVector %f32 4\n"
+			"            %mat4v4f32 = OpTypeMatrix %v4f32 4\n"
+			"                 %uint = OpTypeInt 32 0\n"
+			"               %uint_8 = OpConstant %uint 8\n"
+			"%_arr_mat4v4f32_uint_8 = OpTypeArray %mat4v4f32 %uint_8\n"
+			"                    %S = OpTypeStruct %_arr_mat4v4f32_uint_8\n"
+			"               %Output = OpTypeStruct %S\n"
+			"  %_ptr_Uniform_Output = OpTypePointer Uniform %Output\n"
+			" %_ptr_Function_Output = OpTypePointer Function %Output\n"
+			"           %dataOutput = OpVariable %_ptr_Uniform_Output Uniform\n"
+			"              %c_f32_0 = OpConstant %f32 0\n"
+			"              %c_f32_1 = OpConstant %f32 1\n"
+			"                  %i32 = OpTypeInt 32 1\n"
+			"              %c_i32_0 = OpConstant %i32 0\n"
+			+ getIdentityVectors(4, 4) +
+			"                 %void = OpTypeVoid\n"
+			"                    %3 = OpTypeFunction %void\n"
+			"                 %main = OpFunction %void None %3\n"
+			"                %entry = OpLabel\n"
+			"         %nestedstruct = OpVariable %_ptr_Function_Output Function\n"
+			+ getNestedStructCompositeInserts(arraySize, useUndef) +
+			"                         OpStore %dataOutput %tmp" + de::toString(arraySize * 4) + "\n"
+			"                         OpReturn\n"
+			"                         OpFunctionEnd\n";
 
-	spec.assembly		= shaderSource;
-	spec.numWorkGroups	= IVec3(1, 1, 1);
+		spec.assembly		= shaderSource;
+		spec.numWorkGroups	= IVec3(1, 1, 1);
 
-	// Expect an array of identity matrix as output
-	for (deUint32 a = 0; a < arraySize; a++)
-		for (deUint32 c = 0; c < 4; c++)
-			for (deUint32 r = 0; r < 4; r++)
-				identityData.push_back(c == r ? 1.0f : 0.0f);
+		// Expect an array of identity matrix as output
+		for (deUint32 a = 0; a < arraySize; a++)
+			for (deUint32 c = 0; c < 4; c++)
+				for (deUint32 r = 0; r < 4; r++)
+					identityData.push_back(c == r ? 1.0f : 0.0f);
 
-	spec.outputs.push_back(Resource(BufferSp(new Float32Buffer(identityData))));
+		spec.outputs.push_back(Resource(BufferSp(new Float32Buffer(identityData))));
 
-	group->addChild(new SpvAsmComputeShaderCase(testCtx, "nested_struct", "Tests nested struct composite insert.", spec));
+		group->addChild(new SpvAsmComputeShaderCase(testCtx, testName.c_str(), "Tests nested struct composite insert.", spec));
+	}
 }
 
 void addGraphicsNestedStructCompositeInsertTests (tcu::TestCaseGroup* group)
 {
-	map<string, string>	fragments;
-	RGBA				defaultColors[4];
-	GraphicsResources	resources;
+	for (bool useUndef : { true, false })
+	{
+		map<string, string>	fragments;
+		RGBA				defaultColors[4];
+		GraphicsResources	resources;
 
-	SpecConstants		noSpecConstants;
-	PushConstants		noPushConstants;
-	GraphicsInterfaces	noInterfaces;
-	vector<string>		noExtensions;
-	VulkanFeatures		vulkanFeatures	= VulkanFeatures();
-	vector<float>		identityData;
-	const deUint32		arraySize		= 8u;
-	const string		testName		= "nested_struct";
+		SpecConstants		noSpecConstants;
+		PushConstants		noPushConstants;
+		GraphicsInterfaces	noInterfaces;
+		vector<string>		noExtensions;
+		VulkanFeatures		vulkanFeatures	= VulkanFeatures();
+		vector<float>		identityData;
+		const deUint32		arraySize		= 8u;
+		const string		testName		= string(useUndef ? "undef_" : "") + "nested_struct";
 
-	// Expect an array of identity matrix as output
-	for (deUint32 a = 0; a < arraySize; a++)
-		for (deUint32 c = 0; c < 4; c++)
-			for (deUint32 r = 0; r < 4; r++)
-				identityData.push_back(c == r ? 1.0f : 0.0f);
-	resources.outputs.push_back(Resource(BufferSp(new Float32Buffer(identityData)), VK_DESCRIPTOR_TYPE_STORAGE_BUFFER));
+		// Expect an array of identity matrix as output
+		for (deUint32 a = 0; a < arraySize; a++)
+			for (deUint32 c = 0; c < 4; c++)
+				for (deUint32 r = 0; r < 4; r++)
+					identityData.push_back(c == r ? 1.0f : 0.0f);
+		resources.outputs.push_back(Resource(BufferSp(new Float32Buffer(identityData)), VK_DESCRIPTOR_TYPE_STORAGE_BUFFER));
 
-	getDefaultColors(defaultColors);
+		getDefaultColors(defaultColors);
 
-	fragments["pre_main"]	=
-		"               %uint_8 = OpConstant %u32 8\n"
-		"            %mat4v4f32 = OpTypeMatrix %v4f32 4\n"
-		"%_arr_mat4v4f32_uint_8 = OpTypeArray %mat4v4f32 %uint_8\n"
-		"                    %S = OpTypeStruct %_arr_mat4v4f32_uint_8\n"
-		"               %Output = OpTypeStruct %S\n"
-		"  %_ptr_Uniform_Output = OpTypePointer Uniform %Output\n"
-		" %_ptr_Function_Output = OpTypePointer Function %Output\n"
-		"           %dataOutput = OpVariable %_ptr_Uniform_Output Uniform\n"
-		+ getIdentityVectors(4, 4);
+		fragments["pre_main"]	=
+			"               %uint_8 = OpConstant %u32 8\n"
+			"            %mat4v4f32 = OpTypeMatrix %v4f32 4\n"
+			"%_arr_mat4v4f32_uint_8 = OpTypeArray %mat4v4f32 %uint_8\n"
+			"                    %S = OpTypeStruct %_arr_mat4v4f32_uint_8\n"
+			"               %Output = OpTypeStruct %S\n"
+			"  %_ptr_Uniform_Output = OpTypePointer Uniform %Output\n"
+			" %_ptr_Function_Output = OpTypePointer Function %Output\n"
+			"           %dataOutput = OpVariable %_ptr_Uniform_Output Uniform\n"
+			+ getIdentityVectors(4, 4);
 
-	fragments["decoration"]	=
-		"                         OpDecorate %_arr_mat4v4f32_uint_8 ArrayStride 64\n"
-		"                         OpMemberDecorate %S 0 ColMajor\n"
-		"                         OpMemberDecorate %S 0 Offset 0\n"
-		"                         OpMemberDecorate %S 0 MatrixStride 16\n"
-		"                         OpMemberDecorate %Output 0 Offset 0\n"
-		"                         OpDecorate %Output BufferBlock\n"
-		"                         OpDecorate %dataOutput DescriptorSet 0\n"
-		"                         OpDecorate %dataOutput Binding 0\n";
+		fragments["decoration"]	=
+			"                         OpDecorate %_arr_mat4v4f32_uint_8 ArrayStride 64\n"
+			"                         OpMemberDecorate %S 0 ColMajor\n"
+			"                         OpMemberDecorate %S 0 Offset 0\n"
+			"                         OpMemberDecorate %S 0 MatrixStride 16\n"
+			"                         OpMemberDecorate %Output 0 Offset 0\n"
+			"                         OpDecorate %Output BufferBlock\n"
+			"                         OpDecorate %dataOutput DescriptorSet 0\n"
+			"                         OpDecorate %dataOutput Binding 0\n";
 
-	fragments["testfun"]	=
-		"            %test_code = OpFunction %v4f32 None %v4f32_v4f32_function\n"
-		"                %param = OpFunctionParameter %v4f32\n"
-		"                %entry = OpLabel\n"
-		"         %nestedstruct = OpVariable %_ptr_Function_Output Function\n"
-		"                 %tmp0 = OpLoad %Output %nestedstruct\n"
-		+ getNestedStructCompositeInserts(arraySize) +
-		"                         OpStore %dataOutput %tmp" + de::toString(arraySize * 4) + "\n"
-		"                         OpReturnValue %param\n"
-		"                         OpFunctionEnd\n";
+		fragments["testfun"]	=
+			"            %test_code = OpFunction %v4f32 None %v4f32_v4f32_function\n"
+			"                %param = OpFunctionParameter %v4f32\n"
+			"                %entry = OpLabel\n"
+			"         %nestedstruct = OpVariable %_ptr_Function_Output Function\n"
+			+ getNestedStructCompositeInserts(arraySize, useUndef) +
+			"                         OpStore %dataOutput %tmp" + de::toString(arraySize * 4) + "\n"
+			"                         OpReturnValue %param\n"
+			"                         OpFunctionEnd\n";
 
-	vulkanFeatures.coreFeatures.vertexPipelineStoresAndAtomics = DE_TRUE;
-	vulkanFeatures.coreFeatures.fragmentStoresAndAtomics = DE_FALSE;
-	createTestForStage(VK_SHADER_STAGE_VERTEX_BIT, (testName + "_vert").c_str(), defaultColors, defaultColors, fragments, noSpecConstants,
-			noPushConstants, resources, noInterfaces, noExtensions, vulkanFeatures, group);
+		vulkanFeatures.coreFeatures.vertexPipelineStoresAndAtomics = DE_TRUE;
+		vulkanFeatures.coreFeatures.fragmentStoresAndAtomics = DE_FALSE;
+		createTestForStage(VK_SHADER_STAGE_VERTEX_BIT, (testName + "_vert").c_str(), defaultColors, defaultColors, fragments, noSpecConstants,
+				noPushConstants, resources, noInterfaces, noExtensions, vulkanFeatures, group);
 
-	createTestForStage(VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, (testName + "_tessc").c_str(), defaultColors, defaultColors, fragments, noSpecConstants,
-			noPushConstants, resources, noInterfaces, noExtensions, vulkanFeatures, group);
+		createTestForStage(VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, (testName + "_tessc").c_str(), defaultColors, defaultColors, fragments, noSpecConstants,
+				noPushConstants, resources, noInterfaces, noExtensions, vulkanFeatures, group);
 
-	createTestForStage(VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, (testName + "_tesse").c_str(), defaultColors, defaultColors, fragments, noSpecConstants,
-			noPushConstants, resources, noInterfaces, noExtensions, vulkanFeatures, group);
+		createTestForStage(VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, (testName + "_tesse").c_str(), defaultColors, defaultColors, fragments, noSpecConstants,
+				noPushConstants, resources, noInterfaces, noExtensions, vulkanFeatures, group);
 
-	createTestForStage(VK_SHADER_STAGE_GEOMETRY_BIT, (testName + "_geom").c_str(), defaultColors, defaultColors, fragments, noSpecConstants,
-			noPushConstants, resources, noInterfaces, noExtensions, vulkanFeatures, group);
+		createTestForStage(VK_SHADER_STAGE_GEOMETRY_BIT, (testName + "_geom").c_str(), defaultColors, defaultColors, fragments, noSpecConstants,
+				noPushConstants, resources, noInterfaces, noExtensions, vulkanFeatures, group);
 
-	vulkanFeatures.coreFeatures.vertexPipelineStoresAndAtomics = DE_FALSE;
-	vulkanFeatures.coreFeatures.fragmentStoresAndAtomics = DE_TRUE;
-	createTestForStage(VK_SHADER_STAGE_FRAGMENT_BIT, (testName + "_frag").c_str(), defaultColors, defaultColors, fragments, noSpecConstants,
-			noPushConstants, resources, noInterfaces, noExtensions, vulkanFeatures, group);
+		vulkanFeatures.coreFeatures.vertexPipelineStoresAndAtomics = DE_FALSE;
+		vulkanFeatures.coreFeatures.fragmentStoresAndAtomics = DE_TRUE;
+		createTestForStage(VK_SHADER_STAGE_FRAGMENT_BIT, (testName + "_frag").c_str(), defaultColors, defaultColors, fragments, noSpecConstants,
+				noPushConstants, resources, noInterfaces, noExtensions, vulkanFeatures, group);
+	}
 }
 
 } // anonymous
diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmFloatControlsTests.cpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmFloatControlsTests.cpp
index 97697e3..d8bda63 100644
--- a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmFloatControlsTests.cpp
+++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmFloatControlsTests.cpp
@@ -56,6 +56,14 @@
 	FP64
 };
 
+enum class BufferDataType
+{
+	DATA_UNKNOWN	= 0,
+	DATA_FP16		= 1,
+	DATA_FP32		= 2,
+	DATA_FP64		= 3,
+};
+
 enum FloatUsage
 {
 	// If the float type is 16bit, then the use of the type is supported by
@@ -409,7 +417,10 @@
 	typedef typename GetCoresponding<FLOAT_TYPE>::uint_type uint_t;
 	uint_t value = static_cast<uint_t>(result);
 
-	std::vector<FLOAT_TYPE> outputData(1, exactByteEquivalent<uint_t>(value));
+	// For FP16 we increase the buffer size to hold an unsigned integer, as
+	// we can be in the no 16bit_storage case.
+	const uint_t outputSize = sizeof(FLOAT_TYPE) == 2u ? 2u : 1u;
+	std::vector<FLOAT_TYPE> outputData(outputSize, exactByteEquivalent<uint_t>(value));
 	return BufferSp(new Buffer<FLOAT_TYPE>(outputData));
 }
 
@@ -639,6 +650,8 @@
 
 	string capabilities;
 	string extensions;
+	string capabilitiesFp16Without16BitStorage;
+	string extensionsFp16Without16BitStorage;
 	string arrayStride;
 
 	bool loadStoreRequiresShaderFloat16;
@@ -686,6 +699,17 @@
 
 	string storeResultsSnippet;
 	string multiStoreResultsSnippet;
+
+	string argumentsFromInputFp16Snippet;
+	string storeResultsFp16Snippet;
+	string multiArgumentsFromInputFp16Snippet;
+	string multiOutputAnnotationsFp16Snippet;
+	string multiStoreResultsFp16Snippet;
+	string multiOutputDefinitionsFp16Snippet;
+	string inputDefinitionsFp16Snippet;
+	string outputDefinitionsFp16Snippet;
+	string typeAnnotationsFp16Snippet;
+	string typeDefinitionsFp16Snippet;
 };
 
 void TypeSnippetsBase::updateSpirvSnippets()
@@ -802,6 +826,71 @@
 	storeResultsSnippet				= replace(storeResultsTemplate, typeToken, typeName);
 	multiStoreResultsSnippet		= replace(multiStoreResultsTemplate, typeToken, typeName);
 
+	argumentsFromInputFp16Snippet		= "";
+	storeResultsFp16Snippet				= "";
+	multiArgumentsFromInputFp16Snippet	= "";
+	multiOutputAnnotationsFp16Snippet	= "";
+	multiStoreResultsFp16Snippet		= "";
+	multiOutputDefinitionsFp16Snippet	= "";
+	inputDefinitionsFp16Snippet			= "";
+	typeAnnotationsFp16Snippet			= "";
+	outputDefinitionsFp16Snippet		= "";
+	typeDefinitionsFp16Snippet			= "";
+
+	if (bitWidth.compare("16") == 0)
+	{
+		typeDefinitionsFp16Snippet		=
+			"%type_u32_uptr       = OpTypePointer Uniform %type_u32\n"
+			"%type_u32_arr_1      = OpTypeArray %type_u32 %c_i32_1\n";
+
+		typeAnnotationsFp16Snippet		= "OpDecorate %type_u32_arr_1 ArrayStride 4\n";
+		const string inputToken			= "_f16_arr_2";
+		const string inputName			= "_u32_arr_1";
+		inputDefinitionsFp16Snippet		= replace(inputDefinitionsSnippet, inputToken, inputName);
+
+		argumentsFromInputFp16Snippet	=
+			"%argloc            = OpAccessChain %type_u32_uptr %ssbo_in %c_i32_0 %c_i32_0\n"
+			"%inval             = OpLoad %type_u32 %argloc\n"
+			"%arg               = OpBitcast %type_f16_vec2 %inval\n"
+			"%arg1              = OpCompositeExtract %type_f16 %arg 0\n"
+			"%arg2              = OpCompositeExtract %type_f16 %arg 1\n";
+
+		const string outputToken		= "_f16_arr_1";
+		const string outputName			= "_u32_arr_1";
+		outputDefinitionsFp16Snippet	= replace(outputDefinitionsSnippet, outputToken, outputName);
+
+		storeResultsFp16Snippet	=
+			"%result_f16_vec2   = OpCompositeConstruct %type_f16_vec2 %result %c_f16_0\n"
+			"%result_u32		= OpBitcast %type_u32 %result_f16_vec2\n"
+			"%outloc            = OpAccessChain %type_u32_uptr %ssbo_out %c_i32_0 %c_i32_0\n"
+			"OpStore %outloc %result_u32\n";
+
+		multiArgumentsFromInputFp16Snippet	=
+			"%arg_u32_loc         = OpAccessChain %type_u32_uptr %ssbo_in %c_i32_${attr} %c_i32_0\n"
+			"%arg_u32             = OpLoad %type_u32 %arg_u32_loc\n"
+			"%arg_f16_vec2        = OpBitcast %type_f16_vec2 %arg_u32\n"
+			"%arg1_f16            = OpCompositeExtract %type_f16 %arg_f16_vec2 0\n"
+			"%arg2_f16            = OpCompositeExtract %type_f16 %arg_f16_vec2 1\n";
+
+		multiOutputAnnotationsFp16Snippet	=
+			"OpMemberDecorate %SSBO_u32_out 0 Offset 0\n"
+			"OpDecorate %type_u32_arr_1 ArrayStride 4\n"
+			"OpDecorate %SSBO_u32_out BufferBlock\n"
+			"OpDecorate %ssbo_u32_out DescriptorSet 0\n";
+
+		multiStoreResultsFp16Snippet		=
+			"%outloc_u32            = OpAccessChain %type_u32_uptr %ssbo_u32_out %c_i32_0\n"
+			"%result16_vec2			= OpCompositeConstruct %type_f16_vec2 %result16 %c_f16_0\n"
+			"%result_u32            = OpBitcast %type_u32 %result16_vec2\n"
+			"                        OpStore %outloc_u32 %result_u32\n";
+
+		multiOutputDefinitionsFp16Snippet	=
+			"%c_f16_0              = OpConstant %type_f16 0.0\n"
+			"%SSBO_u32_out         = OpTypeStruct %type_u32\n"
+			"%up_SSBO_u32_out      = OpTypePointer Uniform %SSBO_u32_out\n"
+			"%ssbo_u32_out         = OpVariable %up_SSBO_u32_out Uniform\n";
+	}
+
 	// NOTE: only values used as _generated_ arguments in test operations
 	// need to be in this map, arguments that are only used by tests,
 	// that grab arguments from input, do need to be in this map
@@ -845,6 +934,10 @@
 
 	capabilities	= "OpCapability StorageUniform16\n";
 	extensions		= "OpExtension \"SPV_KHR_16bit_storage\"\n";
+
+	capabilitiesFp16Without16BitStorage	= "OpCapability Float16\n";
+	extensionsFp16Without16BitStorage	= "";
+
 	arrayStride		= "2";
 
 	varyingsTypesSnippet =
@@ -876,6 +969,8 @@
 	denormBase		= "1.1756356e-38";
 	capabilities	= "";
 	extensions		= "";
+	capabilitiesFp16Without16BitStorage	= "";
+	extensionsFp16Without16BitStorage	= "";
 	arrayStride		= "4";
 
 	varyingsTypesSnippet =
@@ -905,6 +1000,8 @@
 	denormBase		= "2.2250738585076994e-308"; // 0x00100000000003F0
 	capabilities	= "OpCapability Float64\n";
 	extensions		= "";
+	capabilitiesFp16Without16BitStorage	= "";
+	extensionsFp16Without16BitStorage	= "";
 	arrayStride		= "8";
 
 	varyingsTypesSnippet =
@@ -1461,11 +1558,13 @@
 					  OperationId	_operatinId,
 					  ValueId		_input1,
 					  ValueId		_input2,
-					  ValueId		_expectedOutput)
+					  ValueId		_expectedOutput,
+					  deBool		_fp16Without16BitStorage = DE_FALSE)
 		: baseName(_baseName)
 		, behaviorFlags(_behaviorFlags)
 		, operationId(_operatinId)
 		, expectedOutput(_expectedOutput)
+		, fp16Without16BitStorage(_fp16Without16BitStorage)
 	{
 		input[0] = _input1;
 		input[1] = _input2;
@@ -1478,6 +1577,7 @@
 	OperationId				operationId;
 	ValueId					input[2];
 	ValueId					expectedOutput;
+	deBool					fp16Without16BitStorage;
 };
 
 // Helper structure used to store specialized operation
@@ -1515,7 +1615,8 @@
 	void createUnaryTestCases(vector<OperationTestCase>& testCases,
 							  OperationId operationId,
 							  ValueId denormPreserveResult,
-							  ValueId denormFTZResult) const;
+							  ValueId denormFTZResult,
+							  deBool fp16WithoutStorage = DE_FALSE) const;
 
 private:
 
@@ -2029,6 +2130,8 @@
 
 	testCases.reserve(750);
 
+	bool isFP16 = typeTestResults->floatType() == FP16;
+
 	// Denorm - FlushToZero - binary operations
 	for (size_t i = 0 ; i < typeTestResults->binaryOpFTZ.size() ; ++i)
 	{
@@ -2038,6 +2141,14 @@
 		testCases.push_back(OTC("denorm_op_denorm_flush_to_zero",	B_DENORM_FLUSH,					 operation, V_DENORM, V_DENORM,		binaryCase.opDenormResult));
 		testCases.push_back(OTC("denorm_op_inf_flush_to_zero",		B_DENORM_FLUSH | B_ZIN_PRESERVE, operation, V_DENORM, V_INF,		binaryCase.opInfResult));
 		testCases.push_back(OTC("denorm_op_nan_flush_to_zero",		B_DENORM_FLUSH | B_ZIN_PRESERVE, operation, V_DENORM, V_NAN,		binaryCase.opNanResult));
+
+		if (isFP16)
+		{
+			testCases.push_back(OTC("denorm_op_var_flush_to_zero_nostorage",		B_DENORM_FLUSH,					 operation, V_DENORM, V_ONE,		binaryCase.opVarResult, DE_TRUE));
+			testCases.push_back(OTC("denorm_op_denorm_flush_to_zero_nostorage",	B_DENORM_FLUSH,					 operation, V_DENORM, V_DENORM,		binaryCase.opDenormResult, DE_TRUE));
+			testCases.push_back(OTC("denorm_op_inf_flush_to_zero_nostorage",		B_DENORM_FLUSH | B_ZIN_PRESERVE, operation, V_DENORM, V_INF,		binaryCase.opInfResult, DE_TRUE));
+			testCases.push_back(OTC("denorm_op_nan_flush_to_zero_nostorage",		B_DENORM_FLUSH | B_ZIN_PRESERVE, operation, V_DENORM, V_NAN,		binaryCase.opNanResult, DE_TRUE));
+		}
 	}
 
 	// Denorm - FlushToZero - unary operations
@@ -2046,6 +2157,9 @@
 		const UnaryCase&	unaryCase = typeTestResults->unaryOpFTZ[i];
 		OperationId			operation = unaryCase.operationId;
 		testCases.push_back(OTC("op_denorm_flush_to_zero", B_DENORM_FLUSH, operation, V_DENORM, V_UNUSED, unaryCase.result));
+		if (isFP16)
+			testCases.push_back(OTC("op_denorm_flush_to_zero_nostorage", B_DENORM_FLUSH, operation, V_DENORM, V_UNUSED, unaryCase.result, DE_TRUE));
+
 	}
 
 	// Denom - Preserve - binary operations
@@ -2057,6 +2171,14 @@
 		testCases.push_back(OTC("denorm_op_denorm_preserve",		B_DENORM_PRESERVE,					operation, V_DENORM,	V_DENORM,	binaryCase.opDenormResult));
 		testCases.push_back(OTC("denorm_op_inf_preserve",			B_DENORM_PRESERVE | B_ZIN_PRESERVE, operation, V_DENORM,	V_INF,		binaryCase.opInfResult));
 		testCases.push_back(OTC("denorm_op_nan_preserve",			B_DENORM_PRESERVE | B_ZIN_PRESERVE, operation, V_DENORM,	V_NAN,		binaryCase.opNanResult));
+
+		if (isFP16)
+		{
+			testCases.push_back(OTC("denorm_op_var_preserve_nostorage",			B_DENORM_PRESERVE,					operation, V_DENORM,	V_ONE,		binaryCase.opVarResult, DE_TRUE));
+			testCases.push_back(OTC("denorm_op_denorm_preserve_nostorage",		B_DENORM_PRESERVE,					operation, V_DENORM,	V_DENORM,	binaryCase.opDenormResult, DE_TRUE));
+			testCases.push_back(OTC("denorm_op_inf_preserve_nostorage",			B_DENORM_PRESERVE | B_ZIN_PRESERVE, operation, V_DENORM,	V_INF,		binaryCase.opInfResult, DE_TRUE));
+			testCases.push_back(OTC("denorm_op_nan_preserve_nostorage",			B_DENORM_PRESERVE | B_ZIN_PRESERVE, operation, V_DENORM,	V_NAN,		binaryCase.opNanResult, DE_TRUE));
+		}
 	}
 
 	// Denom - Preserve - unary operations
@@ -2065,6 +2187,8 @@
 		const UnaryCase&	unaryCase	= typeTestResults->unaryOpDenormPreserve[i];
 		OperationId			operation	= unaryCase.operationId;
 		testCases.push_back(OTC("op_denorm_preserve", B_DENORM_PRESERVE, operation, V_DENORM, V_UNUSED, unaryCase.result));
+		if (isFP16)
+			testCases.push_back(OTC("op_denorm_preserve_nostorage", B_DENORM_PRESERVE, operation, V_DENORM, V_UNUSED, unaryCase.result, DE_TRUE));
 	}
 
 	struct ZINCase
@@ -2115,6 +2239,15 @@
 		testCases.push_back(OTC("inf_op_var_preserve",				B_ZIN_PRESERVE, zc.operationId, V_INF,			zc.secondArgument,	zc.preserveInfResult));
 		testCases.push_back(OTC("signed_inf_op_var_preserve",		B_ZIN_PRESERVE, zc.operationId, V_MINUS_INF,	zc.secondArgument,	zc.preserveSInfResult));
 		testCases.push_back(OTC("nan_op_var_preserve",				B_ZIN_PRESERVE, zc.operationId, V_NAN,			zc.secondArgument,	zc.preserveNanResult));
+
+		if (isFP16)
+		{
+			testCases.push_back(OTC("zero_op_var_preserve_nostorage",				B_ZIN_PRESERVE, zc.operationId, V_ZERO,			zc.secondArgument,	zc.preserveZeroResult, DE_TRUE));
+			testCases.push_back(OTC("signed_zero_op_var_preserve_nostorage",		B_ZIN_PRESERVE, zc.operationId, V_MINUS_ZERO,	zc.secondArgument,	zc.preserveSZeroResult, DE_TRUE));
+			testCases.push_back(OTC("inf_op_var_preserve_nostorage",				B_ZIN_PRESERVE, zc.operationId, V_INF,			zc.secondArgument,	zc.preserveInfResult, DE_TRUE));
+			testCases.push_back(OTC("signed_inf_op_var_preserve_nostorage",			B_ZIN_PRESERVE, zc.operationId, V_MINUS_INF,	zc.secondArgument,	zc.preserveSInfResult, DE_TRUE));
+			testCases.push_back(OTC("nan_op_var_preserve_nostorage",				B_ZIN_PRESERVE, zc.operationId, V_NAN,			zc.secondArgument,	zc.preserveNanResult, DE_TRUE));
+		}
 	}
 
 	// Signed Zero Inf Nan - Preserve - unary operations
@@ -2129,6 +2262,15 @@
 		testCases.push_back(OTC("op_inf_preserve",			B_ZIN_PRESERVE,zc.operationId, V_INF,			V_UNUSED,	zc.preserveInfResult));
 		testCases.push_back(OTC("op_signed_inf_preserve",	B_ZIN_PRESERVE,zc.operationId, V_MINUS_INF,		V_UNUSED,	zc.preserveSInfResult));
 		testCases.push_back(OTC("op_nan_preserve",			B_ZIN_PRESERVE,zc.operationId, V_NAN,			V_UNUSED,	zc.preserveNanResult));
+
+		if (isFP16)
+		{
+			testCases.push_back(OTC("op_zero_preserve_nostorage",			B_ZIN_PRESERVE,zc.operationId, V_ZERO,			V_UNUSED,	zc.preserveZeroResult, DE_TRUE));
+			testCases.push_back(OTC("op_signed_zero_preserve_nostorage",	B_ZIN_PRESERVE,zc.operationId, V_MINUS_ZERO,	V_UNUSED,	zc.preserveSZeroResult, DE_TRUE));
+			testCases.push_back(OTC("op_inf_preserve_nostorage",			B_ZIN_PRESERVE,zc.operationId, V_INF,			V_UNUSED,	zc.preserveInfResult, DE_TRUE));
+			testCases.push_back(OTC("op_signed_inf_preserve_nostorage",		B_ZIN_PRESERVE,zc.operationId, V_MINUS_INF,		V_UNUSED,	zc.preserveSInfResult, DE_TRUE));
+			testCases.push_back(OTC("op_nan_preserve_nostorage",			B_ZIN_PRESERVE,zc.operationId, V_NAN,			V_UNUSED,	zc.preserveNanResult, DE_TRUE));
+		}
 	}
 
 	// comparison operations - tested differently because they return true/false
@@ -2157,6 +2299,8 @@
 	{
 		const ComparisonCase& cc = comparisonCases[op];
 		testCases.push_back(OTC("denorm_op_var_preserve", B_DENORM_PRESERVE, cc.operationId, V_DENORM, V_ONE, cc.denormPreserveResult));
+		if (isFP16)
+			testCases.push_back(OTC("denorm_op_var_preserve_nostorage", B_DENORM_PRESERVE, cc.operationId, V_DENORM, V_ONE, cc.denormPreserveResult, DE_TRUE));
 	}
 
 	if (argumentsFromInput)
@@ -2197,6 +2341,11 @@
 			const RoundingModeCase& rmc = roundingCases[c];
 			testCases.push_back(OTC("rounding_rte_op", B_RTE_ROUNDING, rmc.operationId, rmc.arg1, rmc.arg2, rmc.expectedRTEResult));
 			testCases.push_back(OTC("rounding_rtz_op", B_RTZ_ROUNDING, rmc.operationId, rmc.arg1, rmc.arg2, rmc.expectedRTZResult));
+			if (isFP16)
+			{
+				testCases.push_back(OTC("rounding_rte_op_nostorage", B_RTE_ROUNDING, rmc.operationId, rmc.arg1, rmc.arg2, rmc.expectedRTEResult, DE_TRUE));
+				testCases.push_back(OTC("rounding_rtz_op_nostorage", B_RTZ_ROUNDING, rmc.operationId, rmc.arg1, rmc.arg2, rmc.expectedRTZResult, DE_TRUE));
+			}
 		}
 	}
 
@@ -2215,13 +2364,27 @@
 			testCases.push_back(OTC("rounding_rte_sconst_conv_from_fp64", B_RTE_ROUNDING, O_SCONST_CONV_FROM_FP64_TO_FP16, V_UNUSED, V_UNUSED, V_CONV_TO_FP16_RTE_RESULT));
 			testCases.push_back(OTC("rounding_rtz_sconst_conv_from_fp64", B_RTZ_ROUNDING, O_SCONST_CONV_FROM_FP64_TO_FP16, V_UNUSED, V_UNUSED, V_CONV_TO_FP16_RTZ_RESULT));
 
-			// verify that VkShaderFloatingPointRoundingModeKHR can be overridden for a given instruction by the FPRoundingMode decoration
+			testCases.push_back(OTC("rounding_rte_conv_from_fp32_nostorage", B_RTE_ROUNDING, O_CONV_FROM_FP32, V_CONV_FROM_FP32_ARG, V_UNUSED, V_CONV_TO_FP16_RTE_RESULT, DE_TRUE));
+			testCases.push_back(OTC("rounding_rtz_conv_from_fp32_nostorage", B_RTZ_ROUNDING, O_CONV_FROM_FP32, V_CONV_FROM_FP32_ARG, V_UNUSED, V_CONV_TO_FP16_RTZ_RESULT, DE_TRUE));
+			testCases.push_back(OTC("rounding_rte_conv_from_fp64_nostorage", B_RTE_ROUNDING, O_CONV_FROM_FP64, V_CONV_FROM_FP64_ARG, V_UNUSED, V_CONV_TO_FP16_RTE_RESULT, DE_TRUE));
+			testCases.push_back(OTC("rounding_rtz_conv_from_fp64_nostorage", B_RTZ_ROUNDING, O_CONV_FROM_FP64, V_CONV_FROM_FP64_ARG, V_UNUSED, V_CONV_TO_FP16_RTZ_RESULT, DE_TRUE));
+
+			testCases.push_back(OTC("rounding_rte_sconst_conv_from_fp32_nostorage", B_RTE_ROUNDING, O_SCONST_CONV_FROM_FP32_TO_FP16, V_UNUSED, V_UNUSED, V_CONV_TO_FP16_RTE_RESULT, DE_TRUE));
+			testCases.push_back(OTC("rounding_rtz_sconst_conv_from_fp32_nostorage", B_RTZ_ROUNDING, O_SCONST_CONV_FROM_FP32_TO_FP16, V_UNUSED, V_UNUSED, V_CONV_TO_FP16_RTZ_RESULT, DE_TRUE));
+			testCases.push_back(OTC("rounding_rte_sconst_conv_from_fp64_nostorage", B_RTE_ROUNDING, O_SCONST_CONV_FROM_FP64_TO_FP16, V_UNUSED, V_UNUSED, V_CONV_TO_FP16_RTE_RESULT, DE_TRUE));
+			testCases.push_back(OTC("rounding_rtz_sconst_conv_from_fp64_nostorage", B_RTZ_ROUNDING, O_SCONST_CONV_FROM_FP64_TO_FP16, V_UNUSED, V_UNUSED, V_CONV_TO_FP16_RTZ_RESULT, DE_TRUE));
+
+			// verify that VkShaderFloatingPointRoundingModeKHR can be overridden for a given instruction by the FPRoundingMode decoration.
+			// FPRoundingMode decoration requires VK_KHR_16bit_storage.
 			testCases.push_back(OTC("rounding_rte_override", B_RTE_ROUNDING, O_ORTZ_ROUND, V_CONV_FROM_FP32_ARG, V_UNUSED, V_CONV_TO_FP16_RTZ_RESULT));
 			testCases.push_back(OTC("rounding_rtz_override", B_RTZ_ROUNDING, O_ORTE_ROUND, V_CONV_FROM_FP32_ARG, V_UNUSED, V_CONV_TO_FP16_RTE_RESULT));
 		}
 
 		createUnaryTestCases(testCases, O_CONV_FROM_FP32, V_CONV_DENORM_SMALLER, V_ZERO);
 		createUnaryTestCases(testCases, O_CONV_FROM_FP64, V_CONV_DENORM_BIGGER, V_ZERO);
+		createUnaryTestCases(testCases, O_CONV_FROM_FP32, V_CONV_DENORM_SMALLER, V_ZERO, DE_TRUE);
+		createUnaryTestCases(testCases, O_CONV_FROM_FP64, V_CONV_DENORM_BIGGER, V_ZERO, DE_TRUE);
+
 	}
 	else if (typeTestResults->floatType() == FP32)
 	{
@@ -2245,6 +2408,7 @@
 		}
 
 		createUnaryTestCases(testCases, O_CONV_FROM_FP16, V_CONV_DENORM_SMALLER, V_ZERO_OR_FP16_DENORM_TO_FP32);
+		createUnaryTestCases(testCases, O_CONV_FROM_FP16, V_CONV_DENORM_SMALLER, V_ZERO_OR_FP16_DENORM_TO_FP32, DE_TRUE);
 		createUnaryTestCases(testCases, O_CONV_FROM_FP64, V_CONV_DENORM_BIGGER, V_ZERO);
 	}
 	else // FP64
@@ -2260,6 +2424,7 @@
 		}
 
 		createUnaryTestCases(testCases, O_CONV_FROM_FP16, V_CONV_DENORM_SMALLER, V_ZERO_OR_FP16_DENORM_TO_FP64);
+		createUnaryTestCases(testCases, O_CONV_FROM_FP16, V_CONV_DENORM_SMALLER, V_ZERO_OR_FP16_DENORM_TO_FP64, DE_TRUE);
 		createUnaryTestCases(testCases, O_CONV_FROM_FP32, V_CONV_DENORM_BIGGER, V_ZERO_OR_FP32_DENORM_TO_FP64);
 	}
 }
@@ -2269,19 +2434,36 @@
 	return m_operations.at(id);
 }
 
-void TestCasesBuilder::createUnaryTestCases(vector<OperationTestCase>& testCases, OperationId operationId, ValueId denormPreserveResult, ValueId denormFTZResult) const
+void TestCasesBuilder::createUnaryTestCases(vector<OperationTestCase>& testCases, OperationId operationId, ValueId denormPreserveResult, ValueId denormFTZResult, deBool fp16WithoutStorage) const
 {
-	// Denom - Preserve
-	testCases.push_back(OTC("op_denorm_preserve",		B_DENORM_PRESERVE,	operationId, V_DENORM,	V_UNUSED, denormPreserveResult));
+	if (fp16WithoutStorage)
+	{
+		// Denom - Preserve
+		testCases.push_back(OTC("op_denorm_preserve_nostorage",		B_DENORM_PRESERVE,	operationId, V_DENORM,	V_UNUSED, denormPreserveResult, DE_TRUE));
 
-	// Denorm - FlushToZero
-	testCases.push_back(OTC("op_denorm_flush_to_zero",	B_DENORM_FLUSH,		operationId, V_DENORM,	V_UNUSED, denormFTZResult));
+		// Denorm - FlushToZero
+		testCases.push_back(OTC("op_denorm_flush_to_zero_nostorage",	B_DENORM_FLUSH,		operationId, V_DENORM,	V_UNUSED, denormFTZResult, DE_TRUE));
 
-	// Signed Zero Inf Nan - Preserve
-	testCases.push_back(OTC("op_zero_preserve",			B_ZIN_PRESERVE,		operationId, V_ZERO,		V_UNUSED, V_ZERO));
-	testCases.push_back(OTC("op_signed_zero_preserve",	B_ZIN_PRESERVE,		operationId, V_MINUS_ZERO,	V_UNUSED, V_MINUS_ZERO));
-	testCases.push_back(OTC("op_inf_preserve",			B_ZIN_PRESERVE,		operationId, V_INF,			V_UNUSED, V_INF));
-	testCases.push_back(OTC("op_nan_preserve",			B_ZIN_PRESERVE,		operationId, V_NAN,			V_UNUSED, V_NAN));
+		// Signed Zero Inf Nan - Preserve
+		testCases.push_back(OTC("op_zero_preserve_nostorage",			B_ZIN_PRESERVE,		operationId, V_ZERO,		V_UNUSED, V_ZERO, DE_TRUE));
+		testCases.push_back(OTC("op_signed_zero_preserve_nostorage",	B_ZIN_PRESERVE,		operationId, V_MINUS_ZERO,	V_UNUSED, V_MINUS_ZERO, DE_TRUE));
+		testCases.push_back(OTC("op_inf_preserve_nostorage",			B_ZIN_PRESERVE,		operationId, V_INF,			V_UNUSED, V_INF, DE_TRUE));
+		testCases.push_back(OTC("op_nan_preserve_nostorage",			B_ZIN_PRESERVE,		operationId, V_NAN,			V_UNUSED, V_NAN, DE_TRUE));
+	}
+	else
+	{
+		// Denom - Preserve
+		testCases.push_back(OTC("op_denorm_preserve",		B_DENORM_PRESERVE,	operationId, V_DENORM,	V_UNUSED, denormPreserveResult));
+
+		// Denorm - FlushToZero
+		testCases.push_back(OTC("op_denorm_flush_to_zero",	B_DENORM_FLUSH,		operationId, V_DENORM,	V_UNUSED, denormFTZResult));
+
+		// Signed Zero Inf Nan - Preserve
+		testCases.push_back(OTC("op_zero_preserve",			B_ZIN_PRESERVE,		operationId, V_ZERO,		V_UNUSED, V_ZERO));
+		testCases.push_back(OTC("op_signed_zero_preserve",	B_ZIN_PRESERVE,		operationId, V_MINUS_ZERO,	V_UNUSED, V_MINUS_ZERO));
+		testCases.push_back(OTC("op_inf_preserve",			B_ZIN_PRESERVE,		operationId, V_INF,			V_UNUSED, V_INF));
+		testCases.push_back(OTC("op_nan_preserve",			B_ZIN_PRESERVE,		operationId, V_NAN,			V_UNUSED, V_NAN));
+	}
 }
 
 template <typename TYPE, typename FLOAT_TYPE>
@@ -2451,7 +2633,12 @@
 	const TYPE* fValueId	= reinterpret_cast<const TYPE*>(&expectedBytes.front());
 
 	// all test return single value
-	DE_ASSERT((expectedBytes.size() / sizeof(TYPE)) == 1);
+	// Fp16 nostorage tests get their values from a deUint32 value, but we create the
+	// buffer with the same size for both cases: 4 bytes.
+	if (sizeof(TYPE) == 2u)
+		DE_ASSERT((expectedBytes.size() / sizeof(TYPE)) == 2);
+	else
+		DE_ASSERT((expectedBytes.size() / sizeof(TYPE)) == 1);
 
 	// during test setup we do not store expected value but id that can be used to
 	// retrieve actual value - this is done to handle special cases like multiple
@@ -2578,14 +2765,13 @@
 	if (outputAllocs.size() != expectedOutputs.size())
 		return false;
 
-	// create map storing functions that should be used for comparision
-	// depending on float width in bytes; this lets us later to avoid switch in while
-	typedef bool (*compareFun)(vector<deUint8>& expectedBytes, AllocationSp outputAlloc, TestLog& log);
-	const map<size_t, compareFun> compareMap =
+	// The comparison function depends on the data type stored in the resource.
+	using compareFun = bool (*)(vector<deUint8>& expectedBytes, AllocationSp outputAlloc, TestLog& log);
+	const map<BufferDataType, compareFun> compareMap =
 	{
-		{ 2, compareBytes<Float16, deFloat16> },
-		{ 4, compareBytes<Float32, float> },
-		{ 8, compareBytes<Float64, double>},
+		{ BufferDataType::DATA_FP16, compareBytes<Float16, deFloat16> },
+		{ BufferDataType::DATA_FP32, compareBytes<Float32, float> },
+		{ BufferDataType::DATA_FP64, compareBytes<Float64, double>},
 	};
 
 	vector<deUint8> expectedBytes;
@@ -2595,8 +2781,8 @@
 	while (resultIndex--)
 	{
 		expectedOutputs[resultIndex].getBytes(expectedBytes);
-		size_t byteWidth		 = expectedOutputs[resultIndex].getByteSize();
-		allResultsAreCorrect	&= compareMap.at(byteWidth)(expectedBytes, outputAllocs[resultIndex], log);
+		BufferDataType type		 = static_cast<BufferDataType>(reinterpret_cast<std::uintptr_t>(expectedOutputs[resultIndex].getUserData()));
+		allResultsAreCorrect	&= compareMap.at(type)(expectedBytes, outputAllocs[resultIndex], log);
 	}
 
 	return allResultsAreCorrect;
@@ -2660,6 +2846,7 @@
 		SettingsOption							fp16Option;
 		SettingsOption							fp32Option;
 		SettingsOption							fp64Option;
+		deBool									fp16Without16BitStorage;
 	};
 
 	void specializeOperation(const OperationTestCaseInfo&	testCaseInfo,
@@ -2757,6 +2944,9 @@
 	{
 		// read arguments from input SSBO in main function
 		specializedOperation.arguments = inTypeSnippets->argumentsFromInputSnippet;
+
+		if (inFloatType == FP16 && testCaseInfo.testCase.fp16Without16BitStorage)
+			specializedOperation.arguments = inTypeSnippets->argumentsFromInputFp16Snippet;
 	}
 	else
 	{
@@ -3156,51 +3346,88 @@
 
 	vector<SettingsTestCaseInfo> testCases =
 	{
-		// name															mode			independenceSetting		fp16Option		fp32Option		fp64Option
+		// name															mode			independenceSetting		fp16Option		fp32Option		fp64Option		fp16Without16bitstorage
 
 		// test rounding modes when only two float widths are available
-		{ "rounding_ind_all_fp16_rte_fp32_rtz",							SM_ROUNDING,	independenceAll,		SO_RTE,			SO_RTZ,			SO_UNUSED },
-		{ "rounding_ind_all_fp16_rtz_fp32_rte",							SM_ROUNDING,	independenceAll,		SO_RTZ,			SO_RTE,			SO_UNUSED },
-		{ "rounding_ind_32_fp16_rte_fp32_rtz",							SM_ROUNDING,	independence32,			SO_RTE,			SO_RTZ,			SO_UNUSED },
-		{ "rounding_ind_32_fp16_rtz_fp32_rte",							SM_ROUNDING,	independence32,			SO_RTZ,			SO_RTE,			SO_UNUSED },
-		{ "rounding_ind_all_fp16_rte_fp64_rtz",							SM_ROUNDING,	independenceAll,		SO_RTE,			SO_UNUSED,		SO_RTZ },
-		{ "rounding_ind_all_fp16_rtz_fp64_rte",							SM_ROUNDING,	independenceAll,		SO_RTZ,			SO_UNUSED,		SO_RTE },
-		{ "rounding_ind_all_fp32_rte_fp64_rtz",							SM_ROUNDING,	independenceAll,		SO_UNUSED,		SO_RTE,			SO_RTZ },
-		{ "rounding_ind_all_fp32_rtz_fp64_rte",							SM_ROUNDING,	independenceAll,		SO_UNUSED,		SO_RTZ,			SO_RTE },
-		{ "rounding_ind_32_fp32_rte_fp64_rtz",							SM_ROUNDING,	independence32,			SO_UNUSED,		SO_RTE,			SO_RTZ },
-		{ "rounding_ind_32_fp32_rtz_fp64_rte",							SM_ROUNDING,	independence32,			SO_UNUSED,		SO_RTZ,			SO_RTE },
+		{ "rounding_ind_all_fp16_rte_fp32_rtz",							SM_ROUNDING,	independenceAll,		SO_RTE,			SO_RTZ,			SO_UNUSED,		DE_FALSE },
+		{ "rounding_ind_all_fp16_rtz_fp32_rte",							SM_ROUNDING,	independenceAll,		SO_RTZ,			SO_RTE,			SO_UNUSED,		DE_FALSE },
+		{ "rounding_ind_32_fp16_rte_fp32_rtz",							SM_ROUNDING,	independence32,			SO_RTE,			SO_RTZ,			SO_UNUSED,		DE_FALSE },
+		{ "rounding_ind_32_fp16_rtz_fp32_rte",							SM_ROUNDING,	independence32,			SO_RTZ,			SO_RTE,			SO_UNUSED,		DE_FALSE },
+		{ "rounding_ind_all_fp16_rte_fp64_rtz",							SM_ROUNDING,	independenceAll,		SO_RTE,			SO_UNUSED,		SO_RTZ,			DE_FALSE },
+		{ "rounding_ind_all_fp16_rtz_fp64_rte",							SM_ROUNDING,	independenceAll,		SO_RTZ,			SO_UNUSED,		SO_RTE,			DE_FALSE },
+		{ "rounding_ind_all_fp32_rte_fp64_rtz",							SM_ROUNDING,	independenceAll,		SO_UNUSED,		SO_RTE,			SO_RTZ,			DE_FALSE },
+		{ "rounding_ind_all_fp32_rtz_fp64_rte",							SM_ROUNDING,	independenceAll,		SO_UNUSED,		SO_RTZ,			SO_RTE,			DE_FALSE },
+		{ "rounding_ind_32_fp32_rte_fp64_rtz",							SM_ROUNDING,	independence32,			SO_UNUSED,		SO_RTE,			SO_RTZ,			DE_FALSE },
+		{ "rounding_ind_32_fp32_rtz_fp64_rte",							SM_ROUNDING,	independence32,			SO_UNUSED,		SO_RTZ,			SO_RTE,			DE_FALSE },
 
 		// test rounding modes when three widths are available
-		{ "rounding_ind_all_fp16_rtz_fp32_rte_fp64_rtz",				SM_ROUNDING,	independenceAll,		SO_RTZ,			SO_RTE,			SO_RTZ },
-		{ "rounding_ind_32_fp16_rtz_fp32_rte_fp64_rtz",					SM_ROUNDING,	independence32,			SO_RTZ,			SO_RTE,			SO_RTZ },
-		{ "rounding_ind_all_fp16_rte_fp32_rtz_fp64_rte",				SM_ROUNDING,	independenceAll,		SO_RTE,			SO_RTZ,			SO_RTE },
-		{ "rounding_ind_32_fp16_rte_fp32_rtz_fp64_rte",					SM_ROUNDING,	independence32,			SO_RTE,			SO_RTZ,			SO_RTE },
-		{ "rounding_ind_all_fp16_rtz_fp32_rtz_fp64_rte",				SM_ROUNDING,	independenceAll,		SO_RTZ,			SO_RTZ,			SO_RTE },
-		{ "rounding_ind_all_fp16_rtz_fp32_rte_fp64_rte",				SM_ROUNDING,	independenceAll,		SO_RTZ,			SO_RTE,			SO_RTE },
-		{ "rounding_ind_all_fp16_rte_fp32_rte_fp64_rtz",				SM_ROUNDING,	independenceAll,		SO_RTE,			SO_RTE,			SO_RTZ },
-		{ "rounding_ind_all_fp16_rte_fp32_rtz_fp64_rtz",				SM_ROUNDING,	independenceAll,		SO_RTE,			SO_RTZ,			SO_RTZ },
+		{ "rounding_ind_all_fp16_rtz_fp32_rte_fp64_rtz",				SM_ROUNDING,	independenceAll,		SO_RTZ,			SO_RTE,			SO_RTZ,			DE_FALSE },
+		{ "rounding_ind_32_fp16_rtz_fp32_rte_fp64_rtz",					SM_ROUNDING,	independence32,			SO_RTZ,			SO_RTE,			SO_RTZ,			DE_FALSE },
+		{ "rounding_ind_all_fp16_rte_fp32_rtz_fp64_rte",				SM_ROUNDING,	independenceAll,		SO_RTE,			SO_RTZ,			SO_RTE,			DE_FALSE },
+		{ "rounding_ind_32_fp16_rte_fp32_rtz_fp64_rte",					SM_ROUNDING,	independence32,			SO_RTE,			SO_RTZ,			SO_RTE,			DE_FALSE },
+		{ "rounding_ind_all_fp16_rtz_fp32_rtz_fp64_rte",				SM_ROUNDING,	independenceAll,		SO_RTZ,			SO_RTZ,			SO_RTE,			DE_FALSE },
+		{ "rounding_ind_all_fp16_rtz_fp32_rte_fp64_rte",				SM_ROUNDING,	independenceAll,		SO_RTZ,			SO_RTE,			SO_RTE,			DE_FALSE },
+		{ "rounding_ind_all_fp16_rte_fp32_rte_fp64_rtz",				SM_ROUNDING,	independenceAll,		SO_RTE,			SO_RTE,			SO_RTZ,			DE_FALSE },
+		{ "rounding_ind_all_fp16_rte_fp32_rtz_fp64_rtz",				SM_ROUNDING,	independenceAll,		SO_RTE,			SO_RTZ,			SO_RTZ,			DE_FALSE },
 
 		// test denorm settings when only two float widths are available
-		{ "denorm_ind_all_fp16_flush_fp32_preserve",					SM_DENORMS,		independenceAll,		SO_FLUSH,		SO_PRESERVE,	SO_UNUSED },
-		{ "denorm_ind_all_fp16_preserve_fp32_flush",					SM_DENORMS,		independenceAll,		SO_PRESERVE,	SO_FLUSH,		SO_UNUSED },
-		{ "denorm_ind_32_fp16_flush_fp32_preserve",						SM_DENORMS,		independence32,			SO_FLUSH,		SO_PRESERVE,	SO_UNUSED },
-		{ "denorm_ind_32_fp16_preserve_fp32_flush",						SM_DENORMS,		independence32,			SO_PRESERVE,	SO_FLUSH,		SO_UNUSED },
-		{ "denorm_ind_all_fp16_flush_fp64_preserve",					SM_DENORMS,		independenceAll,		SO_FLUSH,		SO_UNUSED,		SO_PRESERVE },
-		{ "denorm_ind_all_fp16_preserve_fp64_flush",					SM_DENORMS,		independenceAll,		SO_PRESERVE,	SO_UNUSED,		SO_FLUSH },
-		{ "denorm_ind_all_fp32_flush_fp64_preserve",					SM_DENORMS,		independenceAll,		SO_UNUSED,		SO_FLUSH,		SO_PRESERVE },
-		{ "denorm_ind_all_fp32_preserve_fp64_flush",					SM_DENORMS,		independenceAll,		SO_UNUSED,		SO_PRESERVE,	SO_FLUSH },
-		{ "denorm_ind_32_fp32_flush_fp64_preserve",						SM_DENORMS,		independence32,			SO_UNUSED,		SO_FLUSH,		SO_PRESERVE },
-		{ "denorm_ind_32_fp32_preserve_fp64_flush",						SM_DENORMS,		independence32,			SO_UNUSED,		SO_PRESERVE,	SO_FLUSH },
+		{ "denorm_ind_all_fp16_flush_fp32_preserve",					SM_DENORMS,		independenceAll,		SO_FLUSH,		SO_PRESERVE,	SO_UNUSED,		DE_FALSE },
+		{ "denorm_ind_all_fp16_preserve_fp32_flush",					SM_DENORMS,		independenceAll,		SO_PRESERVE,	SO_FLUSH,		SO_UNUSED,		DE_FALSE },
+		{ "denorm_ind_32_fp16_flush_fp32_preserve",						SM_DENORMS,		independence32,			SO_FLUSH,		SO_PRESERVE,	SO_UNUSED,		DE_FALSE },
+		{ "denorm_ind_32_fp16_preserve_fp32_flush",						SM_DENORMS,		independence32,			SO_PRESERVE,	SO_FLUSH,		SO_UNUSED,		DE_FALSE },
+		{ "denorm_ind_all_fp16_flush_fp64_preserve",					SM_DENORMS,		independenceAll,		SO_FLUSH,		SO_UNUSED,		SO_PRESERVE,	DE_FALSE },
+		{ "denorm_ind_all_fp16_preserve_fp64_flush",					SM_DENORMS,		independenceAll,		SO_PRESERVE,	SO_UNUSED,		SO_FLUSH,		DE_FALSE },
+		{ "denorm_ind_all_fp32_flush_fp64_preserve",					SM_DENORMS,		independenceAll,		SO_UNUSED,		SO_FLUSH,		SO_PRESERVE,	DE_FALSE },
+		{ "denorm_ind_all_fp32_preserve_fp64_flush",					SM_DENORMS,		independenceAll,		SO_UNUSED,		SO_PRESERVE,	SO_FLUSH,		DE_FALSE },
+		{ "denorm_ind_32_fp32_flush_fp64_preserve",						SM_DENORMS,		independence32,			SO_UNUSED,		SO_FLUSH,		SO_PRESERVE,	DE_FALSE },
+		{ "denorm_ind_32_fp32_preserve_fp64_flush",						SM_DENORMS,		independence32,			SO_UNUSED,		SO_PRESERVE,	SO_FLUSH,		DE_FALSE },
 
 		// test denorm settings when three widths are available
-		{ "denorm_ind_all_fp16_preserve_fp32_flush_fp64_preserve",		SM_DENORMS,		independenceAll,		SO_PRESERVE,	SO_FLUSH,		SO_PRESERVE },
-		{ "denorm_ind_32_fp16_preserve_fp32_flush_fp64_preserve",		SM_DENORMS,		independence32,			SO_PRESERVE,	SO_FLUSH,		SO_PRESERVE },
-		{ "denorm_ind_all_fp16_flush_fp32_preserve_fp64_flush",			SM_DENORMS,		independenceAll,		SO_FLUSH,		SO_PRESERVE,	SO_FLUSH },
-		{ "denorm_ind_32_fp16_flush_fp32_preserve_fp64_flush",			SM_DENORMS,		independence32,			SO_FLUSH,		SO_PRESERVE,	SO_FLUSH },
-		{ "denorm_ind_all_fp16_preserve_fp32_preserve_fp64_flush",		SM_DENORMS,		independenceAll,		SO_PRESERVE,	SO_PRESERVE,	SO_FLUSH },
-		{ "denorm_ind_all_fp16_preserve_fp32_flush_fp64_flush",			SM_DENORMS,		independenceAll,		SO_PRESERVE,	SO_FLUSH,		SO_FLUSH },
-		{ "denorm_ind_all_fp16_flush_fp32_flush_fp64_preserve",			SM_DENORMS,		independenceAll,		SO_FLUSH,		SO_FLUSH,		SO_PRESERVE },
-		{ "denorm_ind_all_fp16_flush_fp32_preserve_fp64_preserve",		SM_DENORMS,		independenceAll,		SO_FLUSH,		SO_PRESERVE,	SO_PRESERVE }
+		{ "denorm_ind_all_fp16_preserve_fp32_flush_fp64_preserve",		SM_DENORMS,		independenceAll,		SO_PRESERVE,	SO_FLUSH,		SO_PRESERVE,	DE_FALSE },
+		{ "denorm_ind_32_fp16_preserve_fp32_flush_fp64_preserve",		SM_DENORMS,		independence32,			SO_PRESERVE,	SO_FLUSH,		SO_PRESERVE,	DE_FALSE },
+		{ "denorm_ind_all_fp16_flush_fp32_preserve_fp64_flush",			SM_DENORMS,		independenceAll,		SO_FLUSH,		SO_PRESERVE,	SO_FLUSH,		DE_FALSE },
+		{ "denorm_ind_32_fp16_flush_fp32_preserve_fp64_flush",			SM_DENORMS,		independence32,			SO_FLUSH,		SO_PRESERVE,	SO_FLUSH,		DE_FALSE },
+		{ "denorm_ind_all_fp16_preserve_fp32_preserve_fp64_flush",		SM_DENORMS,		independenceAll,		SO_PRESERVE,	SO_PRESERVE,	SO_FLUSH,		DE_FALSE },
+		{ "denorm_ind_all_fp16_preserve_fp32_flush_fp64_flush",			SM_DENORMS,		independenceAll,		SO_PRESERVE,	SO_FLUSH,		SO_FLUSH,		DE_FALSE },
+		{ "denorm_ind_all_fp16_flush_fp32_flush_fp64_preserve",			SM_DENORMS,		independenceAll,		SO_FLUSH,		SO_FLUSH,		SO_PRESERVE,	DE_FALSE },
+		{ "denorm_ind_all_fp16_flush_fp32_preserve_fp64_preserve",		SM_DENORMS,		independenceAll,		SO_FLUSH,		SO_PRESERVE,	SO_PRESERVE,	DE_FALSE },
+
+		// Same fp16 tests but without requiring VK_KHR_16bit_storage
+		// test rounding modes when only two float widths are available
+		{ "rounding_ind_all_fp16_rte_fp32_rtz_nostorage",				SM_ROUNDING,	independenceAll,		SO_RTE,			SO_RTZ,			SO_UNUSED,		DE_TRUE },
+		{ "rounding_ind_all_fp16_rtz_fp32_rte_nostorage",				SM_ROUNDING,	independenceAll,		SO_RTZ,			SO_RTE,			SO_UNUSED,		DE_TRUE },
+		{ "rounding_ind_32_fp16_rte_fp32_rtz_nostorage",				SM_ROUNDING,	independence32,			SO_RTE,			SO_RTZ,			SO_UNUSED,		DE_TRUE },
+		{ "rounding_ind_32_fp16_rtz_fp32_rte_nostorage",				SM_ROUNDING,	independence32,			SO_RTZ,			SO_RTE,			SO_UNUSED,		DE_TRUE },
+		{ "rounding_ind_all_fp16_rte_fp64_rtz_nostorage",				SM_ROUNDING,	independenceAll,		SO_RTE,			SO_UNUSED,		SO_RTZ,			DE_TRUE },
+		{ "rounding_ind_all_fp16_rtz_fp64_rte_nostorage",				SM_ROUNDING,	independenceAll,		SO_RTZ,			SO_UNUSED,		SO_RTE,			DE_TRUE },
+
+		// test rounding modes when three widths are available
+		{ "rounding_ind_all_fp16_rtz_fp32_rte_fp64_rtz_nostorage",		SM_ROUNDING,	independenceAll,		SO_RTZ,			SO_RTE,			SO_RTZ,			DE_TRUE },
+		{ "rounding_ind_32_fp16_rtz_fp32_rte_fp64_rtz_nostorage",		SM_ROUNDING,	independence32,			SO_RTZ,			SO_RTE,			SO_RTZ,			DE_TRUE },
+		{ "rounding_ind_all_fp16_rte_fp32_rtz_fp64_rte_nostorage",		SM_ROUNDING,	independenceAll,		SO_RTE,			SO_RTZ,			SO_RTE,			DE_TRUE },
+		{ "rounding_ind_32_fp16_rte_fp32_rtz_fp64_rte_nostorage",		SM_ROUNDING,	independence32,			SO_RTE,			SO_RTZ,			SO_RTE,			DE_TRUE },
+		{ "rounding_ind_all_fp16_rtz_fp32_rtz_fp64_rte_nostorage",		SM_ROUNDING,	independenceAll,		SO_RTZ,			SO_RTZ,			SO_RTE,			DE_TRUE },
+		{ "rounding_ind_all_fp16_rtz_fp32_rte_fp64_rte_nostorage",		SM_ROUNDING,	independenceAll,		SO_RTZ,			SO_RTE,			SO_RTE,			DE_TRUE },
+		{ "rounding_ind_all_fp16_rte_fp32_rte_fp64_rtz_nostorage",		SM_ROUNDING,	independenceAll,		SO_RTE,			SO_RTE,			SO_RTZ,			DE_TRUE },
+		{ "rounding_ind_all_fp16_rte_fp32_rtz_fp64_rtz_nostorage",		SM_ROUNDING,	independenceAll,		SO_RTE,			SO_RTZ,			SO_RTZ,			DE_TRUE },
+
+		// test denorm settings when only two float widths are available
+		{ "denorm_ind_all_fp16_flush_fp32_preserve_nostorage",			SM_DENORMS,		independenceAll,		SO_FLUSH,		SO_PRESERVE,	SO_UNUSED,		DE_TRUE },
+		{ "denorm_ind_all_fp16_preserve_fp32_flush_nostorage",			SM_DENORMS,		independenceAll,		SO_PRESERVE,	SO_FLUSH,		SO_UNUSED,		DE_TRUE },
+		{ "denorm_ind_32_fp16_flush_fp32_preserve_nostorage",			SM_DENORMS,		independence32,			SO_FLUSH,		SO_PRESERVE,	SO_UNUSED,		DE_TRUE },
+		{ "denorm_ind_32_fp16_preserve_fp32_flush_nostorage",			SM_DENORMS,		independence32,			SO_PRESERVE,	SO_FLUSH,		SO_UNUSED,		DE_TRUE },
+		{ "denorm_ind_all_fp16_flush_fp64_preserve_nostorage",			SM_DENORMS,		independenceAll,		SO_FLUSH,		SO_UNUSED,		SO_PRESERVE,	DE_TRUE },
+		{ "denorm_ind_all_fp16_preserve_fp64_flush_nostorage",			SM_DENORMS,		independenceAll,		SO_PRESERVE,	SO_UNUSED,		SO_FLUSH,		DE_TRUE },
+
+		// test denorm settings when three widths are available
+		{ "denorm_ind_all_fp16_preserve_fp32_flush_fp64_preserve_nostorage",	SM_DENORMS,		independenceAll,		SO_PRESERVE,	SO_FLUSH,		SO_PRESERVE,	DE_TRUE },
+		{ "denorm_ind_32_fp16_preserve_fp32_flush_fp64_preserve_nostorage",		SM_DENORMS,		independence32,			SO_PRESERVE,	SO_FLUSH,		SO_PRESERVE,	DE_TRUE },
+		{ "denorm_ind_all_fp16_flush_fp32_preserve_fp64_flush_nostorage",		SM_DENORMS,		independenceAll,		SO_FLUSH,		SO_PRESERVE,	SO_FLUSH,		DE_TRUE },
+		{ "denorm_ind_32_fp16_flush_fp32_preserve_fp64_flush_nostorage",		SM_DENORMS,		independence32,			SO_FLUSH,		SO_PRESERVE,	SO_FLUSH,		DE_TRUE },
+		{ "denorm_ind_all_fp16_preserve_fp32_preserve_fp64_flush_nostorage",	SM_DENORMS,		independenceAll,		SO_PRESERVE,	SO_PRESERVE,	SO_FLUSH,		DE_TRUE },
+		{ "denorm_ind_all_fp16_preserve_fp32_flush_fp64_flush_nostorage",		SM_DENORMS,		independenceAll,		SO_PRESERVE,	SO_FLUSH,		SO_FLUSH,		DE_TRUE },
+		{ "denorm_ind_all_fp16_flush_fp32_flush_fp64_preserve_nostorage",		SM_DENORMS,		independenceAll,		SO_FLUSH,		SO_FLUSH,		SO_PRESERVE,	DE_TRUE },
+		{ "denorm_ind_all_fp16_flush_fp32_preserve_fp64_preserve_nostorage",	SM_DENORMS,		independenceAll,		SO_FLUSH,		SO_PRESERVE,	SO_PRESERVE,	DE_TRUE },
 	};
 
 	for(const auto& testCase : testCases)
@@ -3235,6 +3462,9 @@
 	TypeSnippetsSP	outTypeSnippets		= specOpData.outTypeSnippets;
 	FloatType		inFloatType			= specOpData.inFloatType;
 
+	deBool			outFp16WithoutStorage	= (outFloatType == FP16) && testCase.fp16Without16BitStorage;
+	deBool			inFp16WithoutStorage	= (inFloatType == FP16) && testCase.fp16Without16BitStorage;
+
 	// UnpackHalf2x16 is a corner case - it returns two 32-bit floats but
 	// internaly operates on fp16 and this type should be used by float controls
 	FloatType		inFloatTypeForCaps		= inFloatType;
@@ -3255,11 +3485,35 @@
 
 	string capabilities		= behaviorCapability + outTypeSnippets->capabilities;
 	string extensions		= outTypeSnippets->extensions;
-	string annotations		= inTypeSnippets->inputAnnotationsSnippet + outTypeSnippets->outputAnnotationsSnippet +
-							  outTypeSnippets->typeAnnotationsSnippet;
+	string annotations		= inTypeSnippets->inputAnnotationsSnippet + outTypeSnippets->outputAnnotationsSnippet + outTypeSnippets->typeAnnotationsSnippet;
 	string types			= outTypeSnippets->typeDefinitionsSnippet;
 	string constants		= outTypeSnippets->constantsDefinitionsSnippet;
-	string ioDefinitions	= inTypeSnippets->inputDefinitionsSnippet + outTypeSnippets->outputDefinitionsSnippet;
+	string ioDefinitions	= "";
+
+	// Getting rid of 16bit_storage dependency imply replacing lots of snippets.
+	{
+		if (inFp16WithoutStorage)
+		{
+			ioDefinitions	= inTypeSnippets->inputDefinitionsFp16Snippet;
+		}
+		else
+		{
+			ioDefinitions	= inTypeSnippets->inputDefinitionsSnippet;
+		}
+
+		if (outFp16WithoutStorage)
+		{
+			extensions		= outTypeSnippets->extensionsFp16Without16BitStorage;
+			capabilities	= behaviorCapability + outTypeSnippets->capabilitiesFp16Without16BitStorage;
+			types			+= outTypeSnippets->typeDefinitionsFp16Snippet;
+			annotations	+= outTypeSnippets->typeAnnotationsFp16Snippet;
+			ioDefinitions	+= outTypeSnippets->outputDefinitionsFp16Snippet;
+		}
+		else
+		{
+			ioDefinitions	+= outTypeSnippets->outputDefinitionsSnippet;
+		}
+	}
 
 	bool outFp16TypeUsage	= outTypeSnippets->loadStoreRequiresShaderFloat16;
 	bool inFp16TypeUsage	= false;
@@ -3267,11 +3521,22 @@
 	if (testOperation.isInputTypeRestricted)
 	{
 		annotations		+= inTypeSnippets->typeAnnotationsSnippet;
-		capabilities	+= inTypeSnippets->capabilities;
-		extensions		+= inTypeSnippets->extensions;
 		types			+= inTypeSnippets->typeDefinitionsSnippet;
 		constants		+= inTypeSnippets->constantsDefinitionsSnippet;
 
+		if (inFp16WithoutStorage)
+		{
+			annotations		+= inTypeSnippets->typeAnnotationsFp16Snippet;
+			types			+= inTypeSnippets->typeDefinitionsFp16Snippet;
+			capabilities	+= inTypeSnippets->capabilitiesFp16Without16BitStorage;
+			extensions		+= inTypeSnippets->extensionsFp16Without16BitStorage;
+		}
+		else
+		{
+			capabilities	+= inTypeSnippets->capabilities;
+			extensions		+= inTypeSnippets->extensions;
+		}
+
 		inFp16TypeUsage	= inTypeSnippets->loadStoreRequiresShaderFloat16;
 	}
 
@@ -3283,7 +3548,7 @@
 	specializations["io_definitions"]	= ioDefinitions;
 	specializations["variables"]		= specOpData.variables;
 	specializations["functions"]		= specOpData.functions;
-	specializations["save_result"]		= outTypeSnippets->storeResultsSnippet;
+	specializations["save_result"]		= (outFp16WithoutStorage ? outTypeSnippets->storeResultsFp16Snippet : outTypeSnippets->storeResultsSnippet);
 	specializations["arguments"]		= specOpData.arguments;
 	specializations["commands"]			= specOpData.commands;
 
@@ -3299,7 +3564,7 @@
 	const bool						usesFP16Constants					= constsUsesFP16Type || (needConstants && loadStoreRequiresShaderFloat16);
 
 	specializations["constants"]		= "";
-	if (needConstants)
+	if (needConstants || outFp16WithoutStorage)
 	{
 		specializations["constants"]	= constants;
 	}
@@ -3310,7 +3575,8 @@
 	bool float64FeatureRequired = (outFloatType == FP64) || (inFloatType == FP64);
 
 	// Determine required capabilities.
-	if ((testOperation.floatUsage == FLOAT_ARITHMETIC && float16FeatureRequired) || usesFP16Constants)
+	bool float16CapabilityAlreadyAdded = inFp16WithoutStorage || outFp16WithoutStorage;
+	if ((testOperation.floatUsage == FLOAT_ARITHMETIC && float16FeatureRequired && !float16CapabilityAlreadyAdded) || usesFP16Constants)
 	{
 		capabilities += "OpCapability Float16\n";
 	}
@@ -3339,8 +3605,9 @@
 	csSpec.verifyIO			= checkFloatsLUT[outFloatType];
 
 	csSpec.extensions.push_back("VK_KHR_shader_float_controls");
-	bool needShaderFloat16 = false;
-	if (float16FeatureRequired)
+	bool needShaderFloat16 = float16CapabilityAlreadyAdded;
+
+	if (float16FeatureRequired && !testCase.fp16Without16BitStorage)
 	{
 		csSpec.extensions.push_back("VK_KHR_16bit_storage");
 		csSpec.requestedVulkanFeatures.ext16BitStorage = EXT16BITSTORAGEFEATURES_UNIFORM_BUFFER_BLOCK;
@@ -3496,7 +3763,7 @@
 
 		// construct separate buffers for outputs to make validation easier
 		BufferSp fp64OutBufferSp = fp64Data.values->constructOutputBuffer(fp64resultValue);
-		csSpec.outputs.push_back(Resource(fp64OutBufferSp));
+		csSpec.outputs.push_back(Resource(fp64OutBufferSp, vk::VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, reinterpret_cast<void*>(BufferDataType::DATA_FP64)));
 
 		csSpec.requestedVulkanFeatures.coreFeatures.shaderFloat64 = VK_TRUE;
 	}
@@ -3519,32 +3786,54 @@
 		fp32Data.values->fillInputData(addArgs, inputData, inputOffset);
 
 		BufferSp fp32OutBufferSp = fp32Data.values->constructOutputBuffer(fp32resultValue);
-		csSpec.outputs.push_back(Resource(fp32OutBufferSp));
+		csSpec.outputs.push_back(Resource(fp32OutBufferSp, vk::VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, reinterpret_cast<void*>(BufferDataType::DATA_FP32)));
 	}
 	if (fp16Required)
 	{
-		capabilities	+= fp16Data.snippets->capabilities +
-						   "OpCapability Float16\n";
-		extensions		+= fp16Data.snippets->extensions;
-		executionModes	+= "OpExecutionMode %main " + fp16behaviorName + " 16\n";
-		attribute		 = to_string(attributeIndex);
-		ioAnnotations	+= "OpMemberDecorate %SSBO_in " + attribute + " Offset " + to_string(attributeOffset) +"\n" +
-						   fp16Data.snippets->multiOutputAnnotationsSnippet +
-						   "OpDecorate %ssbo_f16_out Binding " + to_string(attributeIndex+1) + "\n";
-		types			+= fp16Data.snippets->minTypeDefinitionsSnippet;
-		inStruct		+= " %type_f16_arr_2";
-		outDefinitions	+= fp16Data.snippets->multiOutputDefinitionsSnippet;
-		commands		+= replace(fp16Data.snippets->multiArgumentsFromInputSnippet, "${attr}", attribute) +
-						   "%result16             = OpFAdd %type_f16 %arg1_f16 %arg2_f16\n";
-		saveResult		+= fp16Data.snippets->multiStoreResultsSnippet;
+		if (testCaseInfo.fp16Without16BitStorage)
+		{
+			capabilities	+= fp16Data.snippets->capabilitiesFp16Without16BitStorage;
+			extensions		+= fp16Data.snippets->extensionsFp16Without16BitStorage;
+			executionModes	+= "OpExecutionMode %main " + fp16behaviorName + " 16\n";
+			attribute		 = to_string(attributeIndex);
+			ioAnnotations	+= "OpMemberDecorate %SSBO_in " + attribute + " Offset " + to_string(attributeOffset) +"\n" +
+							   fp16Data.snippets->multiOutputAnnotationsFp16Snippet +
+							   "OpDecorate %ssbo_u32_out Binding " + to_string(attributeIndex+1) + "\n";
+			types			+= fp16Data.snippets->minTypeDefinitionsSnippet + fp16Data.snippets->typeDefinitionsFp16Snippet + "%type_f16_vec2        = OpTypeVector %type_f16 2\n";
+			inStruct		+= " %type_u32_arr_1";
+			outDefinitions	+= fp16Data.snippets->multiOutputDefinitionsFp16Snippet;
+			commands		+= replace(fp16Data.snippets->multiArgumentsFromInputFp16Snippet, "${attr}", attribute) +
+							   "%result16             = OpFAdd %type_f16 %arg1_f16 %arg2_f16\n";
+			saveResult		+= fp16Data.snippets->multiStoreResultsFp16Snippet;
+
+			csSpec.extensions.push_back("VK_KHR_shader_float16_int8");
+			csSpec.requestedVulkanFeatures.extFloat16Int8 = EXTFLOAT16INT8FEATURES_FLOAT16;
+		}
+		else
+		{
+			capabilities	+= fp16Data.snippets->capabilities +
+							   "OpCapability Float16\n";
+			extensions		+= fp16Data.snippets->extensions;
+			executionModes	+= "OpExecutionMode %main " + fp16behaviorName + " 16\n";
+			attribute		= to_string(attributeIndex);
+			ioAnnotations	+= "OpMemberDecorate %SSBO_in " + attribute + " Offset " + to_string(attributeOffset) +"\n" +
+							   fp16Data.snippets->multiOutputAnnotationsSnippet +
+							   "OpDecorate %ssbo_f16_out Binding " + to_string(attributeIndex+1) + "\n";
+			types			+= fp16Data.snippets->minTypeDefinitionsSnippet;
+			inStruct		+= " %type_f16_arr_2";
+			outDefinitions	+= fp16Data.snippets->multiOutputDefinitionsSnippet;
+			commands		+= replace(fp16Data.snippets->multiArgumentsFromInputSnippet, "${attr}", attribute) +
+							   "%result16             = OpFAdd %type_f16 %arg1_f16 %arg2_f16\n";
+			saveResult		+= fp16Data.snippets->multiStoreResultsSnippet;
+
+			csSpec.extensions.push_back("VK_KHR_16bit_storage");
+			csSpec.requestedVulkanFeatures.ext16BitStorage = EXT16BITSTORAGEFEATURES_UNIFORM_BUFFER_BLOCK;
+		}
 
 		fp16Data.values->fillInputData(addArgs, inputData, inputOffset);
 
 		BufferSp fp16OutBufferSp = fp16Data.values->constructOutputBuffer(fp16resultValue);
-		csSpec.outputs.push_back(Resource(fp16OutBufferSp));
-
-		csSpec.extensions.push_back("VK_KHR_16bit_storage");
-		csSpec.requestedVulkanFeatures.ext16BitStorage = EXT16BITSTORAGEFEATURES_UNIFORM_BUFFER_BLOCK;
+		csSpec.outputs.push_back(Resource(fp16OutBufferSp, vk::VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, reinterpret_cast<void*>(BufferDataType::DATA_FP16)));
 	}
 
 	BufferSp inBufferSp(new Buffer<deUint8>(inputData));
@@ -3920,8 +4209,11 @@
 	TypeSnippetsSP	outTypeSnippets		= specOpData.outTypeSnippets;
 	FloatType		inFloatType			= specOpData.inFloatType;
 
+	deBool			outFp16WithoutStorage	= (outFloatType == FP16) && testCase.fp16Without16BitStorage;
+	deBool			inFp16WithoutStorage	= (inFloatType == FP16) && testCase.fp16Without16BitStorage;
+
 	// There may be several reasons why we need the shaderFloat16 Vulkan feature.
-	bool needsShaderFloat16 = false;
+	bool needsShaderFloat16 = inFp16WithoutStorage || outFp16WithoutStorage;
 	// There are some weird cases where we need the constants, but would otherwise drop them.
 	bool needsSpecialConstants = false;
 
@@ -3987,6 +4279,9 @@
 			vertExtensions		= inTypeSnippets->extensions + outTypeSnippets->extensions;
 			fragExtensions		= outTypeSnippets->extensions;
 			vertTypes			= inTypeSnippets->typeDefinitionsSnippet + outTypeSnippets->typeDefinitionsSnippet + outTypeSnippets->varyingsTypesSnippet;
+			if (inFp16WithoutStorage)
+				vertTypes			+= inTypeSnippets->typeDefinitionsFp16Snippet;
+
 			fragTypes			= outTypeSnippets->typeDefinitionsSnippet + outTypeSnippets->varyingsTypesSnippet;
 			vertConstants		= inTypeSnippets->constantsDefinitionsSnippet + outTypeSnippets->constantsDefinitionsSnippet;
 			fragConstants		= outTypeSnippets->constantsDefinitionsSnippet;
@@ -4019,7 +4314,7 @@
 		vertExecutionMode		= behaviorExecutionMode;
 		fragExecutionMode		= "";
 		vertIODefinitions		= inTypeSnippets->inputDefinitionsSnippet + outTypeSnippets->outputVaryingsSnippet;
-		fragIODefinitions		= outTypeSnippets->outputDefinitionsSnippet + outTypeSnippets->inputVaryingsSnippet;
+		fragIODefinitions		= outTypeSnippets->inputVaryingsSnippet + outTypeSnippets->outputDefinitionsSnippet;
 		vertArguments			= specOpData.arguments;
 		fragArguments			= "";
 		vertVariables			= specOpData.variables;
@@ -4028,6 +4323,23 @@
 		fragCommands			= "";
 		vertProcessResult		= outTypeSnippets->storeVertexResultSnippet;
 		fragProcessResult		= outTypeSnippets->loadVertexResultSnippet + outTypeSnippets->storeResultsSnippet;
+
+		if (inFp16WithoutStorage)
+		{
+			vertAnnotations		+= inTypeSnippets->typeAnnotationsFp16Snippet;
+			vertIODefinitions	= inTypeSnippets->inputDefinitionsFp16Snippet + outTypeSnippets->outputVaryingsSnippet;
+		}
+
+		if (outFp16WithoutStorage)
+		{
+			vertTypes			+= outTypeSnippets->typeDefinitionsFp16Snippet;
+			fragTypes			+= outTypeSnippets->typeDefinitionsFp16Snippet;
+			fragAnnotations		+= outTypeSnippets->typeAnnotationsFp16Snippet;
+			fragIODefinitions	= outTypeSnippets->inputVaryingsSnippet + outTypeSnippets->outputDefinitionsFp16Snippet;
+			fragProcessResult	= outTypeSnippets->loadVertexResultSnippet + outTypeSnippets->storeResultsFp16Snippet;
+
+		}
+
 		needsShaderFloat16		|= outTypeSnippets->loadStoreRequiresShaderFloat16;
 	}
 	else // perform test in fragment stage - vertex stage is empty
@@ -4038,8 +4350,12 @@
 		{
 			fragAnnotations		= inTypeSnippets->inputAnnotationsSnippet + inTypeSnippets->typeAnnotationsSnippet +
 								  outTypeSnippets->outputAnnotationsSnippet + outTypeSnippets->typeAnnotationsSnippet;
-			fragCapabilities	= behaviorCapability + inTypeSnippets->capabilities + outTypeSnippets->capabilities;
-			fragExtensions		= inTypeSnippets->extensions + outTypeSnippets->extensions;
+			fragCapabilities	= behaviorCapability +
+				(inFp16WithoutStorage ? inTypeSnippets->capabilitiesFp16Without16BitStorage : inTypeSnippets->capabilities) +
+				(outFp16WithoutStorage ? outTypeSnippets->capabilitiesFp16Without16BitStorage : outTypeSnippets->capabilities);
+			fragExtensions		=
+				(inFp16WithoutStorage ? inTypeSnippets->extensionsFp16Without16BitStorage : inTypeSnippets->extensions) +
+				(outFp16WithoutStorage ? outTypeSnippets->extensionsFp16Without16BitStorage : outTypeSnippets->extensions);
 			fragTypes			= inTypeSnippets->typeDefinitionsSnippet + outTypeSnippets->typeDefinitionsSnippet;
 			fragConstants		= inTypeSnippets->constantsDefinitionsSnippet + outTypeSnippets->constantsDefinitionsSnippet;
 		}
@@ -4049,8 +4365,9 @@
 
 			fragAnnotations		= inTypeSnippets->inputAnnotationsSnippet + inTypeSnippets->typeAnnotationsSnippet +
 								  outTypeSnippets->outputAnnotationsSnippet;
-			fragCapabilities	= behaviorCapability + outTypeSnippets->capabilities;
-			fragExtensions		= outTypeSnippets->extensions;
+			fragCapabilities	= behaviorCapability +
+				(outFp16WithoutStorage ? outTypeSnippets->capabilitiesFp16Without16BitStorage : outTypeSnippets->capabilities);
+			fragExtensions		= (outFp16WithoutStorage ? outTypeSnippets->extensionsFp16Without16BitStorage : outTypeSnippets->extensions);
 			fragTypes			= outTypeSnippets->typeDefinitionsSnippet;
 			fragConstants		= outTypeSnippets->constantsDefinitionsSnippet;
 		}
@@ -4075,8 +4392,8 @@
 		vertExecutionMode	= "";
 		fragExecutionMode	= behaviorExecutionMode;
 		vertIODefinitions	= dummyVertVarying;
-		fragIODefinitions	= inTypeSnippets->inputDefinitionsSnippet +
-							  outTypeSnippets->outputDefinitionsSnippet + dummyFragVarying;
+		fragIODefinitions	= dummyFragVarying;
+
 		vertArguments		= "";
 		fragArguments		= specOpData.arguments;
 		vertVariables		= "";
@@ -4086,6 +4403,35 @@
 		vertProcessResult	= "";
 		fragProcessResult	= outTypeSnippets->storeResultsSnippet;
 
+		if (inFp16WithoutStorage)
+		{
+			fragAnnotations		+= inTypeSnippets->typeAnnotationsFp16Snippet;
+			if (testOperation.isInputTypeRestricted)
+			{
+				fragTypes			+= inTypeSnippets->typeDefinitionsFp16Snippet;
+			}
+			fragIODefinitions	+= inTypeSnippets->inputDefinitionsFp16Snippet;
+		}
+		else
+		{
+			fragIODefinitions	+= inTypeSnippets->inputDefinitionsSnippet;
+		}
+
+		if (outFp16WithoutStorage)
+		{
+			if (testOperation.isInputTypeRestricted)
+			{
+				fragAnnotations		+= outTypeSnippets->typeAnnotationsFp16Snippet;
+			}
+			fragTypes			+= outTypeSnippets->typeDefinitionsFp16Snippet;
+			fragIODefinitions	+= outTypeSnippets->outputDefinitionsFp16Snippet;
+			fragProcessResult	= outTypeSnippets->storeResultsFp16Snippet;
+		}
+		else
+		{
+			fragIODefinitions	+= outTypeSnippets->outputDefinitionsSnippet;
+		}
+
 		if (!testCaseInfo.argumentsFromInput)
 		{
 			switch(testCaseInfo.testCase.operationId)
@@ -4106,7 +4452,7 @@
 
 	// Constants are only needed sometimes.  Drop them in the fp16 case if the code doesn't need
 	// them, and if we don't otherwise need shaderFloat16.
-	bool needsFP16Constants = needsShaderFloat16 || needsSpecialConstants;
+	bool needsFP16Constants = needsShaderFloat16 || needsSpecialConstants || outFp16WithoutStorage;
 
 	if (!needsFP16Constants && float16FeatureRequired)
 	{
@@ -4192,7 +4538,7 @@
 		extensions.push_back("VK_KHR_shader_float16_int8");
 		vulkanFeatures.extFloat16Int8 = EXTFLOAT16INT8FEATURES_FLOAT16;
 	}
-	if (float16FeatureRequired)
+	if (float16FeatureRequired && !testCase.fp16Without16BitStorage)
 	{
 		extensions.push_back("VK_KHR_16bit_storage");
 		vulkanFeatures.ext16BitStorage = EXT16BITSTORAGEFEATURES_UNIFORM_BUFFER_BLOCK;
diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmGraphicsShaderTestUtil.cpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmGraphicsShaderTestUtil.cpp
index d847f84..ff0e85f 100644
--- a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmGraphicsShaderTestUtil.cpp
+++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmGraphicsShaderTestUtil.cpp
@@ -3480,20 +3480,11 @@
 
 				// Copy data to memory.
 				{
-					const VkMappedMemoryRange		range					=
-					{
-						VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE,				//	VkStructureType	sType;
-						DE_NULL,											//	const void*		pNext;
-						resourceMemory->getMemory(),						//	VkDeviceMemory	mem;
-						0,													//	VkDeviceSize	offset;
-						VK_WHOLE_SIZE,										//	VkDeviceSize	size;
-					};
-
 					vector<deUint8>					resourceBytes;
 					resource.getBytes(resourceBytes);
 
 					deMemcpy(resourceMemory->getHostPtr(), &resourceBytes.front(), resourceBytes.size());
-					VK_CHECK(vk.flushMappedMemoryRanges(device, 1u, &range));
+					flushAlloc(vk, device, *resourceMemory);
 				}
 
 				inResourceMemories.push_back(AllocationSp(resourceMemory.release()));
@@ -3509,20 +3500,11 @@
 
 				// Copy data to memory.
 				{
-					const VkMappedMemoryRange		range					=
-					{
-						VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE,				//	VkStructureType	sType;
-						DE_NULL,											//	const void*		pNext;
-						resourceMemory->getMemory(),						//	VkDeviceMemory	mem;
-						0,													//	VkDeviceSize	offset;
-						VK_WHOLE_SIZE,										//	VkDeviceSize	size;
-					};
-
 					vector<deUint8>					resourceBytes;
 					resource.getBytes(resourceBytes);
 
 					deMemcpy(resourceMemory->getHostPtr(), &resourceBytes.front(), resourceBytes.size());
-					VK_CHECK(vk.flushMappedMemoryRanges(device, 1u, &range));
+					flushAlloc(vk, device, *resourceMemory);
 				}
 
 				Move<VkImage>					resourceImage			= createImageForResource(vk, device, resource, instance.resources.inputFormat, queueFamilyIndex);
@@ -3568,18 +3550,9 @@
 			VK_CHECK(vk.bindBufferMemory(device, *resourceBuffer, resourceMemory->getMemory(), resourceMemory->getOffset()));
 
 			// Fill memory with all ones.
-			const VkMappedMemoryRange		range					=
-			{
-				VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE,				//	VkStructureType	sType;
-				DE_NULL,											//	const void*		pNext;
-				resourceMemory->getMemory(),						//	VkDeviceMemory	mem;
-				0,													//	VkDeviceSize	offset;
-				VK_WHOLE_SIZE,										//	VkDeviceSize	size;
-			};
-
 			resource.getBytes(resourceBytes);
 			deMemset((deUint8*)resourceMemory->getHostPtr(), 0xff, resourceBytes.size());
-			VK_CHECK(vk.flushMappedMemoryRanges(device, 1u, &range));
+			flushAlloc(vk, device, *resourceMemory);
 
 			outResourceMemories.push_back(AllocationSp(resourceMemory.release()));
 			outResourceBuffers.push_back(BufferHandleSp(new BufferHandleUp(resourceBuffer)));
@@ -4438,16 +4411,8 @@
 
 					deMemcpy(vertexInputMemory->getHostPtr(), data.data(), data.size());
 
-					const VkMappedMemoryRange	range			=
-					{
-						VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE,	//	VkStructureType	sType;
-						DE_NULL,								//	const void*		pNext;
-						vertexInputMemory->getMemory(),			//	VkDeviceMemory	mem;
-						0,										//	VkDeviceSize	offset;
-						VK_WHOLE_SIZE,							//	VkDeviceSize	size;
-					};
+					flushAlloc(vk, device, *vertexInputMemory);
 
-					VK_CHECK(vk.flushMappedMemoryRanges(device, 1u, &range));
 				}
 				firstPass = false;
 			}
@@ -4465,35 +4430,11 @@
 	context.getTestContext().getLog() << TestLog::Image("Result", "Result", pixelBuffer);
 
 	if (needInterface)
-	{
-		const VkDeviceSize			fragOutputImgSize	= (VkDeviceSize)(instance.interfaces.getOutputType().getNumBytes() * renderSize.x() * renderSize.y());
-		const VkMappedMemoryRange	range				=
-		{
-			VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE,	//	VkStructureType	sType;
-			DE_NULL,								//	const void*		pNext;
-			fragOutputMemory->getMemory(),			//	VkDeviceMemory	mem;
-			0,										//	VkDeviceSize	offset;
-			fragOutputImgSize,						//	VkDeviceSize	size;
-		};
+		invalidateAlloc(vk, device, *fragOutputMemory);
 
-		VK_CHECK(vk.invalidateMappedMemoryRanges(device, 1u, &range));
-	}
-
-	{ // Make sure all output resources are ready.
-		for (deUint32 outputNdx = 0; outputNdx < numOutResources; ++outputNdx)
-		{
-			const VkMappedMemoryRange	range	=
-			{
-				VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE,			//	VkStructureType	sType;
-				DE_NULL,										//	const void*		pNext;
-				outResourceMemories[outputNdx]->getMemory(),	//	VkDeviceMemory	mem;
-				0,												//	VkDeviceSize	offset;
-				VK_WHOLE_SIZE,									//	VkDeviceSize	size;
-			};
-
-			VK_CHECK(vk.invalidateMappedMemoryRanges(device, 1u, &range));
-		}
-	}
+	// Make sure all output resources are ready.
+	for (deUint32 outputNdx = 0; outputNdx < numOutResources; ++outputNdx)
+		invalidateAlloc(vk, device, *outResourceMemories[outputNdx]);
 
 	const RGBA threshold(1, 1, 1, 1);
 
diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmInstructionTests.cpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmInstructionTests.cpp
index 7bd28c8..c4be68c 100644
--- a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmInstructionTests.cpp
+++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmInstructionTests.cpp
@@ -80,6 +80,7 @@
 #include "vktSpvAsmFloatControlsExtensionlessTests.hpp"
 #include "vktSpvAsmNonSemanticInfoTests.hpp"
 #include "vktSpvAsm64bitCompareTests.hpp"
+#include "vktSpvAsmTrinaryMinMaxTests.hpp"
 
 #include <cmath>
 #include <limits>
@@ -3158,6 +3159,31 @@
 	}
 }
 
+tcu::TestCaseGroup* createOpArrayLengthComputeGroup (tcu::TestContext& testCtx)
+{
+	de::MovePtr<tcu::TestCaseGroup>	group		(new tcu::TestCaseGroup(testCtx, "oparraylength", "Test the OpArrayLength instruction"));
+	static const char				dataDir[]	= "spirv_assembly/instruction/compute/arraylength";
+
+	struct Case
+	{
+		string	name;
+		string	desc;
+	};
+
+	static const Case cases[] =
+	{
+		{ "array-stride-larger-than-element-size",	"Test using an unsized array with stride larger than the element size"	}
+	};
+
+	for (int i = 0; i < DE_LENGTH_OF_ARRAY(cases); ++i)
+	{
+		const string fileName = cases[i].name + ".amber";
+		group->addChild(cts_amber::createAmberTestCase(testCtx, cases[i].name.c_str(), cases[i].desc.c_str(), dataDir, fileName));
+	}
+
+	return group.release();
+}
+
 tcu::TestCaseGroup* createOpUnreachableGroup (tcu::TestContext& testCtx)
 {
 	de::MovePtr<tcu::TestCaseGroup>	group			(new tcu::TestCaseGroup(testCtx, "opunreachable", "Test the OpUnreachable instruction"));
@@ -3932,8 +3958,8 @@
 	const int			numElements		= 100;
 	vector<float>		inputFloats		(numElements, 0);
 	vector<float>		outputFloats	(numElements, 0);
-	vector<deFloat16>	inputFloats16	(numElements, 0);
-	vector<deFloat16>	outputFloats16	(numElements, 0);
+	vector<deUint32>	inputUints		(numElements, 0);
+	vector<deUint32>	outputUints		(numElements, 0);
 
 	fillRandomScalars(rnd, -300.f, 300.f, &inputFloats[0], numElements);
 
@@ -3948,8 +3974,8 @@
 
 	for (size_t ndx = 0; ndx < numElements; ++ndx)
 	{
-		inputFloats16[ndx] = tcu::Float16(inputFloats[ndx]).bits();
-		outputFloats16[ndx] = tcu::Float16(outputFloats[ndx]).bits();
+		inputUints[ndx] = tcu::Float16(inputFloats[ndx]).bits();
+		outputUints[ndx] = tcu::Float16(outputFloats[ndx]).bits();
 	}
 
 	// All of the tests are of the form:
@@ -4008,9 +4034,7 @@
 
 	specFloat16.assembly =
 		"OpCapability Shader\n"
-		"OpCapability StorageUniformBufferBlock16\n"
 		"OpCapability Float16\n"
-		"OpExtension \"SPV_KHR_16bit_storage\"\n"
 		"OpMemoryModel Logical GLSL450\n"
 		"OpEntryPoint GLCompute %main \"main\" %id\n"
 		"OpExecutionMode %main LocalSize 1 1 1\n"
@@ -4026,16 +4050,20 @@
 		"OpDecorate %indata Binding 0\n"
 		"OpDecorate %outdata DescriptorSet 0\n"
 		"OpDecorate %outdata Binding 1\n"
-		"OpDecorate %f16arr ArrayStride 2\n"
+		"OpDecorate %u32arr ArrayStride 4\n"
 		"OpMemberDecorate %buf 0 Offset 0\n"
 
-		"%f16      = OpTypeFloat 16\n"
-		"%f16ptr   = OpTypePointer Uniform %f16\n"
-		"%f16arr   = OpTypeRuntimeArray %f16\n"
-
 		+ string(getComputeAsmCommonTypes()) +
 
-		"%buf      = OpTypeStruct %f16arr\n"
+		"%f16      = OpTypeFloat 16\n"
+		"%f16vec2  = OpTypeVector %f16 2\n"
+		"%fvec2    = OpTypeVector %f32 2\n"
+		"%u32ptr   = OpTypePointer Uniform %u32\n"
+		"%u32arr   = OpTypeRuntimeArray %u32\n"
+		"%f16_0    = OpConstant %f16 0.0\n"
+
+
+		"%buf      = OpTypeStruct %u32arr\n"
 		"%bufptr   = OpTypePointer Uniform %buf\n"
 		"%indata   = OpVariable %bufptr Uniform\n"
 		"%outdata  = OpVariable %bufptr Uniform\n"
@@ -4050,9 +4078,11 @@
 		"%entry    = OpLabel\n"
 		"%idval    = OpLoad %uvec3 %id\n"
 		"%x        = OpCompositeExtract %u32 %idval 0\n"
-		"%inloc    = OpAccessChain %f16ptr %indata %zero %x\n"
-		"%inval    = OpLoad %f16 %inloc\n"
-		"%f32_inval = OpFConvert %f32 %inval\n"
+		"%inloc    = OpAccessChain %u32ptr %indata %zero %x\n"
+		"%inval    = OpLoad %u32 %inloc\n"
+		"%f16_vec2_inval = OpBitcast %f16vec2 %inval\n"
+		"%f16_inval = OpCompositeExtract %f16 %f16_vec2_inval 0\n"
+		"%f32_inval = OpFConvert %f32 %f16_inval\n"
 
 		"%comp     = OpFOrdGreaterThan %bool %f32_inval %float_0\n"
 		"            OpSelectionMerge %cm None\n"
@@ -4065,15 +4095,18 @@
 		"%res      = OpPhi %f32 %float_1 %tb %float_n1 %fb\n"
 		"%f16_res  = OpFConvert %f16 %res\n"
 
-		"%outloc   = OpAccessChain %f16ptr %outdata %zero %x\n"
-		"            OpStore %outloc %f16_res\n"
+		"%f16vec2_res = OpCompositeConstruct %f16vec2 %f16_res %f16_0\n"
+		"%u32_res  = OpBitcast %u32 %f16vec2_res\n"
+
+		"%outloc   = OpAccessChain %u32ptr %outdata %zero %x\n"
+		"            OpStore %outloc %u32_res\n"
 		"            OpReturn\n"
 
 		"            OpFunctionEnd\n";
-	specFloat16.inputs.push_back(BufferSp(new Float16Buffer(inputFloats16)));
-	specFloat16.outputs.push_back(BufferSp(new Float16Buffer(outputFloats16)));
+
+	specFloat16.inputs.push_back(BufferSp(new Uint32Buffer(inputUints)));
+	specFloat16.outputs.push_back(BufferSp(new Uint32Buffer(outputUints)));
 	specFloat16.numWorkGroups = IVec3(numElements, 1, 1);
-	specFloat16.requestedVulkanFeatures.ext16BitStorage = EXT16BITSTORAGEFEATURES_UNIFORM_BUFFER_BLOCK;
 	specFloat16.requestedVulkanFeatures.extFloat16Int8 = EXTFLOAT16INT8FEATURES_FLOAT16;
 
 	specMat4.assembly =
@@ -8550,13 +8583,10 @@
 
 	fragments4["pre_main"]		= typesAndConstants4;
 	fragments4["testfun"]		= function4;
-	fragments4["capability"]	= "OpCapability StorageUniformBufferBlock16\nOpCapability Float16\n";
-	fragments4["extension"]		= "OpExtension \"SPV_KHR_16bit_storage\"";
+	fragments4["capability"]	= "OpCapability Float16\n";
 
-	extensions4.push_back("VK_KHR_16bit_storage");
 	extensions4.push_back("VK_KHR_shader_float16_int8");
 
-	vulkanFeatures4.ext16BitStorage	= EXT16BITSTORAGEFEATURES_UNIFORM_BUFFER_BLOCK;
 	vulkanFeatures4.extFloat16Int8	= EXTFLOAT16INT8FEATURES_FLOAT16;
 
 	outputColors4[0]			= RGBA(127, 127, 127, 255);
@@ -10696,6 +10726,9 @@
 
 		testCases.push_back(ConvertCase(instruction,	DATA_TYPE_FLOAT_16,			DATA_TYPE_FLOAT_64,			0x64D2,								true,	0x4093480000000000));
 		testCases.push_back(ConvertCase(instruction,	DATA_TYPE_FLOAT_64,			DATA_TYPE_FLOAT_16,			0x4093480000000000,					true,	0x64D2));
+		testCases.push_back(ConvertCase(instruction,	DATA_TYPE_FLOAT_16,			DATA_TYPE_FLOAT_64,			0x64D2,								true,	0x4093480000000000,		"no_storage",	false));
+	    testCases.push_back(ConvertCase(instruction,	DATA_TYPE_FLOAT_64,			DATA_TYPE_FLOAT_16,			0x4093480000000000,					true,	0x64D2,					"no_storage",	false));
+
 	}
 	else if (instruction == "OpConvertFToU")
 	{
@@ -10899,26 +10932,28 @@
 
 	const StringTemplate pre_main (
 		"${datatype_additional_decl:opt}"
-		"    %ptr_in = OpTypePointer StorageBuffer %${inputType}\n"
-		"   %ptr_out = OpTypePointer StorageBuffer %${outputType}\n"
-		"   %s_SSBOi = OpTypeStruct %${inputType}\n"
-		"   %s_SSBOo = OpTypeStruct %${outputType}\n"
+		"    %ptr_in = OpTypePointer StorageBuffer %${inStorageType}\n"
+		"   %ptr_out = OpTypePointer StorageBuffer %${outStorageType}\n"
+		"   %s_SSBOi = OpTypeStruct %${inStorageType}\n"
+		"   %s_SSBOo = OpTypeStruct %${outStorageType}\n"
 		" %ptr_SSBOi = OpTypePointer StorageBuffer %s_SSBOi\n"
 		" %ptr_SSBOo = OpTypePointer StorageBuffer %s_SSBOo\n"
 		"     %SSBOi = OpVariable %ptr_SSBOi StorageBuffer\n"
 		"     %SSBOo = OpVariable %ptr_SSBOo StorageBuffer\n");
 
 	const StringTemplate testfun (
-		"%test_code = OpFunction %v4f32 None %v4f32_v4f32_function\n"
-		"%param     = OpFunctionParameter %v4f32\n"
-		"%label     = OpLabel\n"
-		"%iLoc      = OpAccessChain %ptr_in %SSBOi %c_u32_0\n"
-		"%oLoc      = OpAccessChain %ptr_out %SSBOo %c_u32_0\n"
-		"%valIn     = OpLoad %${inputType} %iLoc\n"
-		"%valOut    = ${instruction} %${outputType} %valIn\n"
-		"             OpStore %oLoc %valOut\n"
-		"             OpReturnValue %param\n"
-		"             OpFunctionEnd\n");
+		"%test_code  = OpFunction %v4f32 None %v4f32_v4f32_function\n"
+		"%param      = OpFunctionParameter %v4f32\n"
+		"%label      = OpLabel\n"
+		"%iLoc       = OpAccessChain %ptr_in %SSBOi %c_u32_0\n"
+		"%oLoc       = OpAccessChain %ptr_out %SSBOo %c_u32_0\n"
+		"%valIn      = OpLoad %${inStorageType} %iLoc\n"
+		"%valInCast  = ${inCast} %${inputType} %valIn\n"
+		"%conv       = ${instruction} %${outputType} %valInCast\n"
+		"%valOutCast = ${outCast} %${outStorageType} %conv\n"
+		"              OpStore %oLoc %valOutCast\n"
+		"              OpReturnValue %param\n"
+		"              OpFunctionEnd\n");
 
 	params["datatype_extensions"] =
 		params["datatype_extensions"] +
@@ -20252,7 +20287,7 @@
 	computeTests->addChild(createOpAtomicGroup(testCtx, false));
 	computeTests->addChild(createOpAtomicGroup(testCtx, true));					// Using new StorageBuffer decoration
 	computeTests->addChild(createOpAtomicGroup(testCtx, false, 1024, true));	// Return value validation
-	computeTests->addChild(createOpAtomicGroup(testCtx, true, 65536, false, true));	// volatile atomics
+	computeTests->addChild(createOpAtomicGroup(testCtx, true, 65535, false, true));	// volatile atomics
 	computeTests->addChild(createOpLineGroup(testCtx));
 	computeTests->addChild(createOpModuleProcessedGroup(testCtx));
 	computeTests->addChild(createOpNoLineGroup(testCtx));
@@ -20327,6 +20362,7 @@
 	computeTests->addChild(createPtrAccessChainGroup(testCtx));
 	computeTests->addChild(createHlslComputeGroup(testCtx));
 	computeTests->addChild(create64bitCompareComputeGroup(testCtx));
+	computeTests->addChild(createOpArrayLengthComputeGroup(testCtx));
 
 	graphicsTests->addChild(createCrossStageInterfaceTests(testCtx));
 	graphicsTests->addChild(createSpivVersionCheckTests(testCtx, !testComputePipeline));
@@ -20395,6 +20431,7 @@
 	instructionTests->addChild(graphicsTests.release());
 	instructionTests->addChild(createSpirvVersion1p4Group(testCtx));
 	instructionTests->addChild(createFunctionParamsGroup(testCtx));
+	instructionTests->addChild(createTrinaryMinMaxGroup(testCtx));
 
 	return instructionTests.release();
 }
diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmTrinaryMinMaxTests.cpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmTrinaryMinMaxTests.cpp
new file mode 100644
index 0000000..ea5e02d
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmTrinaryMinMaxTests.cpp
@@ -0,0 +1,905 @@
+/*-------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2020 Valve Corporation.
+ * Copyright (c) 2020 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief SPIR-V tests for VK_AMD_shader_trinary_minmax.
+ *//*--------------------------------------------------------------------*/
+
+#include "vktSpvAsmTrinaryMinMaxTests.hpp"
+#include "vktTestCase.hpp"
+
+#include "vkQueryUtil.hpp"
+#include "vkObjUtil.hpp"
+#include "vkBufferWithMemory.hpp"
+#include "vkBuilderUtil.hpp"
+#include "vkTypeUtil.hpp"
+#include "vkBarrierUtil.hpp"
+#include "vkCmdUtil.hpp"
+
+#include "tcuStringTemplate.hpp"
+#include "tcuFloat.hpp"
+#include "tcuMaybe.hpp"
+
+#include "deStringUtil.hpp"
+#include "deRandom.hpp"
+#include "deMemory.h"
+
+#include <string>
+#include <sstream>
+#include <map>
+#include <vector>
+#include <algorithm>
+#include <array>
+#include <memory>
+
+namespace vkt
+{
+namespace SpirVAssembly
+{
+
+namespace
+{
+
+enum class OperationType
+{
+	MIN = 0,
+	MAX = 1,
+	MID = 2,
+};
+
+enum class BaseType
+{
+	TYPE_INT = 0,
+	TYPE_UINT,
+	TYPE_FLOAT,
+};
+
+// The numeric value is the size in bytes.
+enum class TypeSize
+{
+	SIZE_8BIT	= 1,
+	SIZE_16BIT	= 2,
+	SIZE_32BIT	= 4,
+	SIZE_64BIT	= 8,
+};
+
+// The numeric value is the number of components.
+enum class AggregationType
+{
+	SCALAR	= 1,
+	VEC2	= 2,
+	VEC3	= 3,
+	VEC4	= 4,
+};
+
+struct TestParams
+{
+	OperationType	operation;
+	BaseType		baseType;
+	TypeSize		typeSize;
+	AggregationType	aggregation;
+	deUint32		randomSeed;
+
+	deUint32		operandSize			() const;	// In bytes.
+	deUint32		numComponents		() const;	// Number of components.
+	deUint32		effectiveComponents	() const;	// Effective number of components for size calculation.
+	deUint32		componentSize		() const;	// In bytes.
+};
+
+deUint32 TestParams::operandSize () const
+{
+	return (effectiveComponents() * componentSize());
+}
+
+deUint32 TestParams::numComponents () const
+{
+	return static_cast<deUint32>(aggregation);
+}
+
+deUint32 TestParams::effectiveComponents () const
+{
+	return static_cast<deUint32>((aggregation == AggregationType::VEC3) ? AggregationType::VEC4 : aggregation);
+}
+
+deUint32 TestParams::componentSize () const
+{
+	return static_cast<deUint32>(typeSize);
+}
+
+template <class T>
+T min3(T op1, T op2, T op3)
+{
+	return std::min({op1, op2, op3});
+}
+
+template <class T>
+T max3(T op1, T op2, T op3)
+{
+	return std::max({op1, op2, op3});
+}
+
+template <class T>
+T mid3(T op1, T op2, T op3)
+{
+	std::array<T, 3> aux{{op1, op2, op3}};
+	std::sort(begin(aux), end(aux));
+	return aux[1];
+}
+
+class OperationManager
+{
+public:
+	// Operation and component index in case of error.
+	using OperationComponent	= std::pair<deUint32, deUint32>;
+	using ComparisonError		= tcu::Maybe<OperationComponent>;
+
+					OperationManager	(const TestParams& params);
+	void			genInputBuffer		(void* bufferPtr, deUint32 numOperations);
+	void			calculateResult		(void* referenceBuffer, void* inputBuffer, deUint32 numOperations);
+	ComparisonError	compareResults		(void* referenceBuffer, void* resultsBuffer, deUint32 numOperations);
+
+private:
+	using GenerateCompFunc = void (*)(de::Random&, void*); // Write a generated component to the given location.
+
+	// Generator variants to populate input buffer.
+	static void genInt8		(de::Random& rnd, void* ptr) { *reinterpret_cast<deInt8*>(ptr) = static_cast<deInt8>(rnd.getUint8()); }
+	static void genUint8	(de::Random& rnd, void* ptr) { *reinterpret_cast<deUint8*>(ptr) = rnd.getUint8(); }
+	static void genInt16	(de::Random& rnd, void* ptr) { *reinterpret_cast<deInt16*>(ptr) = static_cast<deInt16>(rnd.getUint16()); }
+	static void genUint16	(de::Random& rnd, void* ptr) { *reinterpret_cast<deUint16*>(ptr) = rnd.getUint16(); }
+	static void genInt32	(de::Random& rnd, void* ptr) { *reinterpret_cast<deInt32*>(ptr) = static_cast<deInt32>(rnd.getUint32()); }
+	static void genUint32	(de::Random& rnd, void* ptr) { *reinterpret_cast<deUint32*>(ptr) = rnd.getUint32(); }
+	static void genInt64	(de::Random& rnd, void* ptr) { *reinterpret_cast<deInt64*>(ptr) = static_cast<deInt64>(rnd.getUint64()); }
+	static void genUint64	(de::Random& rnd, void* ptr) { *reinterpret_cast<deUint64*>(ptr) = rnd.getUint64(); }
+
+	// Helper template for float generators.
+	// T must be a tcu::Float instantiation.
+	// Attempts to generate +-Inf once every 10 times and avoid denormals.
+	template <class T>
+	static inline void genFloat (de::Random& rnd, void *ptr)
+	{
+		T* valuePtr = reinterpret_cast<T*>(ptr);
+		if (rnd.getInt(1, 10) == 1)
+			*valuePtr = T::inf(rnd.getBool() ? 1 : -1);
+		else {
+			do {
+				*valuePtr = T{rnd.getDouble(T::largestNormal(-1).asDouble(), T::largestNormal(1).asDouble())};
+			} while (valuePtr->isDenorm());
+		}
+	}
+
+	static void genFloat16	(de::Random& rnd, void* ptr) { genFloat<tcu::Float16>(rnd, ptr); }
+	static void genFloat32	(de::Random& rnd, void* ptr) { genFloat<tcu::Float32>(rnd, ptr); }
+	static void genFloat64	(de::Random& rnd, void* ptr) { genFloat<tcu::Float64>(rnd, ptr); }
+
+	// An operation function writes an output value given 3 input values.
+	using OperationFunc = void (*)(void*, const void*, const void*, const void*);
+
+	// Helper template used below.
+	template <class T, class F>
+	static inline void runOpFunc (F f, void* out, const void* in1, const void* in2, const void* in3)
+	{
+		*reinterpret_cast<T*>(out) = f(*reinterpret_cast<const T*>(in1), *reinterpret_cast<const T*>(in2), *reinterpret_cast<const T*>(in3));
+	}
+
+	// Apply an operation in software to a given group of components and calculate result.
+	static void minInt8		(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<deInt8>		(min3<deInt8>,			out, in1, in2, in3); }
+	static void maxInt8		(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<deInt8>		(max3<deInt8>,			out, in1, in2, in3); }
+	static void midInt8		(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<deInt8>		(mid3<deInt8>,			out, in1, in2, in3); }
+	static void minUint8	(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<deUint8>		(min3<deUint8>,			out, in1, in2, in3); }
+	static void maxUint8	(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<deUint8>		(max3<deUint8>,			out, in1, in2, in3); }
+	static void midUint8	(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<deUint8>		(mid3<deUint8>,			out, in1, in2, in3); }
+	static void minInt16	(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<deInt16>		(min3<deInt16>,			out, in1, in2, in3); }
+	static void maxInt16	(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<deInt16>		(max3<deInt16>,			out, in1, in2, in3); }
+	static void midInt16	(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<deInt16>		(mid3<deInt16>,			out, in1, in2, in3); }
+	static void minUint16	(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<deUint16>	(min3<deUint16>,		out, in1, in2, in3); }
+	static void maxUint16	(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<deUint16>	(max3<deUint16>,		out, in1, in2, in3); }
+	static void midUint16	(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<deUint16>	(mid3<deUint16>,		out, in1, in2, in3); }
+	static void minInt32	(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<deInt32>		(min3<deInt32>,			out, in1, in2, in3); }
+	static void maxInt32	(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<deInt32>		(max3<deInt32>,			out, in1, in2, in3); }
+	static void midInt32	(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<deInt32>		(mid3<deInt32>,			out, in1, in2, in3); }
+	static void minUint32	(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<deUint32>	(min3<deUint32>,		out, in1, in2, in3); }
+	static void maxUint32	(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<deUint32>	(max3<deUint32>,		out, in1, in2, in3); }
+	static void midUint32	(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<deUint32>	(mid3<deUint32>,		out, in1, in2, in3); }
+	static void minInt64	(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<deInt64>		(min3<deInt64>,			out, in1, in2, in3); }
+	static void maxInt64	(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<deInt64>		(max3<deInt64>,			out, in1, in2, in3); }
+	static void midInt64	(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<deInt64>		(mid3<deInt64>,			out, in1, in2, in3); }
+	static void minUint64	(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<deUint64>	(min3<deUint64>,		out, in1, in2, in3); }
+	static void maxUint64	(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<deUint64>	(max3<deUint64>,		out, in1, in2, in3); }
+	static void midUint64	(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<deUint64>	(mid3<deUint64>,		out, in1, in2, in3); }
+	static void minFloat16	(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<tcu::Float16>(min3<tcu::Float16>,	out, in1, in2, in3); }
+	static void maxFloat16	(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<tcu::Float16>(max3<tcu::Float16>,	out, in1, in2, in3); }
+	static void midFloat16	(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<tcu::Float16>(mid3<tcu::Float16>,	out, in1, in2, in3); }
+	static void minFloat32	(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<tcu::Float32>(min3<tcu::Float32>,	out, in1, in2, in3); }
+	static void maxFloat32	(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<tcu::Float32>(max3<tcu::Float32>,	out, in1, in2, in3); }
+	static void midFloat32	(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<tcu::Float32>(mid3<tcu::Float32>,	out, in1, in2, in3); }
+	static void minFloat64	(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<tcu::Float64>(min3<tcu::Float64>,	out, in1, in2, in3); }
+	static void maxFloat64	(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<tcu::Float64>(max3<tcu::Float64>,	out, in1, in2, in3); }
+	static void midFloat64	(void* out, const void* in1, const void* in2, const void* in3) { runOpFunc<tcu::Float64>(mid3<tcu::Float64>,	out, in1, in2, in3); }
+
+	// Case for accessing the functions map.
+	struct Case
+	{
+		BaseType		type;
+		TypeSize		size;
+		OperationType	operation;
+
+		// This is required for sorting in the map.
+		bool operator< (const Case& other) const
+		{
+			return (toArray() < other.toArray());
+		}
+
+	private:
+		std::array<int, 3> toArray () const
+		{
+			return std::array<int, 3>{{static_cast<int>(type), static_cast<int>(size), static_cast<int>(operation)}};
+		}
+	};
+
+	// Helper map to correctly choose the right generator and operation function for the specific case being tested.
+	using FuncPair	= std::pair<GenerateCompFunc, OperationFunc>;
+	using CaseMap	= std::map<Case, FuncPair>;
+
+	static const CaseMap	kFunctionsMap;
+
+	GenerateCompFunc		m_chosenGenerator;
+	OperationFunc			m_chosenOperation;
+	de::Random				m_random;
+
+	const deUint32			m_operandSize;
+	const deUint32			m_numComponents;
+	const deUint32			m_componentSize;
+};
+
+// This map is used to choose how to generate inputs for each case and which operation to run on the CPU to calculate the reference
+// results for the generated inputs.
+const OperationManager::CaseMap OperationManager::kFunctionsMap =
+{
+	{ { BaseType::TYPE_INT,		TypeSize::SIZE_8BIT,	OperationType::MIN }, { genInt8,	minInt8		} },
+	{ { BaseType::TYPE_INT,		TypeSize::SIZE_8BIT,	OperationType::MAX }, { genInt8,	maxInt8		} },
+	{ { BaseType::TYPE_INT,		TypeSize::SIZE_8BIT,	OperationType::MID }, { genInt8,	midInt8		} },
+	{ { BaseType::TYPE_INT,		TypeSize::SIZE_16BIT,	OperationType::MIN }, { genInt16,	minInt16	} },
+	{ { BaseType::TYPE_INT,		TypeSize::SIZE_16BIT,	OperationType::MAX }, { genInt16,	maxInt16	} },
+	{ { BaseType::TYPE_INT,		TypeSize::SIZE_16BIT,	OperationType::MID }, { genInt16,	midInt16	} },
+	{ { BaseType::TYPE_INT,		TypeSize::SIZE_32BIT,	OperationType::MIN }, { genInt32,	minInt32	} },
+	{ { BaseType::TYPE_INT,		TypeSize::SIZE_32BIT,	OperationType::MAX }, { genInt32,	maxInt32	} },
+	{ { BaseType::TYPE_INT,		TypeSize::SIZE_32BIT,	OperationType::MID }, { genInt32,	midInt32	} },
+	{ { BaseType::TYPE_INT,		TypeSize::SIZE_64BIT,	OperationType::MIN }, { genInt64,	minInt64	} },
+	{ { BaseType::TYPE_INT,		TypeSize::SIZE_64BIT,	OperationType::MAX }, { genInt64,	maxInt64	} },
+	{ { BaseType::TYPE_INT,		TypeSize::SIZE_64BIT,	OperationType::MID }, { genInt64,	midInt64	} },
+	{ { BaseType::TYPE_UINT,	TypeSize::SIZE_8BIT,	OperationType::MIN }, { genUint8,	minUint8	} },
+	{ { BaseType::TYPE_UINT,	TypeSize::SIZE_8BIT,	OperationType::MAX }, { genUint8,	maxUint8	} },
+	{ { BaseType::TYPE_UINT,	TypeSize::SIZE_8BIT,	OperationType::MID }, { genUint8,	midUint8	} },
+	{ { BaseType::TYPE_UINT,	TypeSize::SIZE_16BIT,	OperationType::MIN }, { genUint16,	minUint16	} },
+	{ { BaseType::TYPE_UINT,	TypeSize::SIZE_16BIT,	OperationType::MAX }, { genUint16,	maxUint16	} },
+	{ { BaseType::TYPE_UINT,	TypeSize::SIZE_16BIT,	OperationType::MID }, { genUint16,	midUint16	} },
+	{ { BaseType::TYPE_UINT,	TypeSize::SIZE_32BIT,	OperationType::MIN }, { genUint32,	minUint32	} },
+	{ { BaseType::TYPE_UINT,	TypeSize::SIZE_32BIT,	OperationType::MAX }, { genUint32,	maxUint32	} },
+	{ { BaseType::TYPE_UINT,	TypeSize::SIZE_32BIT,	OperationType::MID }, { genUint32,	midUint32	} },
+	{ { BaseType::TYPE_UINT,	TypeSize::SIZE_64BIT,	OperationType::MIN }, { genUint64,	minUint64	} },
+	{ { BaseType::TYPE_UINT,	TypeSize::SIZE_64BIT,	OperationType::MAX }, { genUint64,	maxUint64	} },
+	{ { BaseType::TYPE_UINT,	TypeSize::SIZE_64BIT,	OperationType::MID }, { genUint64,	midUint64	} },
+	{ { BaseType::TYPE_FLOAT,	TypeSize::SIZE_16BIT,	OperationType::MIN }, { genFloat16,	minFloat16	} },
+	{ { BaseType::TYPE_FLOAT,	TypeSize::SIZE_16BIT,	OperationType::MAX }, { genFloat16,	maxFloat16	} },
+	{ { BaseType::TYPE_FLOAT,	TypeSize::SIZE_16BIT,	OperationType::MID }, { genFloat16,	midFloat16	} },
+	{ { BaseType::TYPE_FLOAT,	TypeSize::SIZE_32BIT,	OperationType::MIN }, { genFloat32,	minFloat32	} },
+	{ { BaseType::TYPE_FLOAT,	TypeSize::SIZE_32BIT,	OperationType::MAX }, { genFloat32,	maxFloat32	} },
+	{ { BaseType::TYPE_FLOAT,	TypeSize::SIZE_32BIT,	OperationType::MID }, { genFloat32,	midFloat32	} },
+	{ { BaseType::TYPE_FLOAT,	TypeSize::SIZE_64BIT,	OperationType::MIN }, { genFloat64,	minFloat64	} },
+	{ { BaseType::TYPE_FLOAT,	TypeSize::SIZE_64BIT,	OperationType::MAX }, { genFloat64,	maxFloat64	} },
+	{ { BaseType::TYPE_FLOAT,	TypeSize::SIZE_64BIT,	OperationType::MID }, { genFloat64,	midFloat64	} },
+};
+
+OperationManager::OperationManager (const TestParams& params)
+	: m_chosenGenerator	{nullptr}
+	, m_chosenOperation	{nullptr}
+	, m_random			{params.randomSeed}
+	, m_operandSize		{params.operandSize()}
+	, m_numComponents	{params.numComponents()}
+	, m_componentSize	{params.componentSize()}
+{
+	// Choose generator and CPU operation from the map.
+	const Case paramCase{params.baseType, params.typeSize, params.operation};
+	const auto iter = kFunctionsMap.find(paramCase);
+
+	DE_ASSERT(iter != kFunctionsMap.end());
+	m_chosenGenerator = iter->second.first;
+	m_chosenOperation = iter->second.second;
+}
+
+// See TrinaryMinMaxCase::initPrograms for a description of the input buffer format.
+// Generates inputs with the chosen generator.
+void OperationManager::genInputBuffer (void* bufferPtr, deUint32 numOperations)
+{
+	const deUint32	numOperands	= numOperations * 3u;
+	char*			byteBuffer	= reinterpret_cast<char*>(bufferPtr);
+
+	for (deUint32 opIdx = 0u; opIdx < numOperands; ++opIdx)
+	{
+		char* compPtr = byteBuffer;
+		for (deUint32 compIdx = 0u; compIdx < m_numComponents; ++compIdx)
+		{
+			m_chosenGenerator(m_random, reinterpret_cast<void*>(compPtr));
+			compPtr += m_componentSize;
+		}
+		byteBuffer += m_operandSize;
+	}
+}
+
+// See TrinaryMinMaxCase::initPrograms for a description of the input and output buffer formats.
+// Calculates reference results on the CPU using the chosen operation and the input buffer.
+void OperationManager::calculateResult (void* referenceBuffer, void* inputBuffer, deUint32 numOperations)
+{
+	char* outputByte	= reinterpret_cast<char*>(referenceBuffer);
+	char* inputByte		= reinterpret_cast<char*>(inputBuffer);
+
+	for (deUint32 opIdx = 0u; opIdx < numOperations; ++opIdx)
+	{
+		char* res = outputByte;
+		char* op1 = inputByte;
+		char* op2 = inputByte + m_operandSize;
+		char* op3 = inputByte + m_operandSize * 2u;
+
+		for (deUint32 compIdx = 0u; compIdx < m_numComponents; ++compIdx)
+		{
+			m_chosenOperation(
+				reinterpret_cast<void*>(res),
+				reinterpret_cast<void*>(op1),
+				reinterpret_cast<void*>(op2),
+				reinterpret_cast<void*>(op3));
+
+			res += m_componentSize;
+			op1 += m_componentSize;
+			op2 += m_componentSize;
+			op3 += m_componentSize;
+		}
+
+		outputByte	+= m_operandSize;
+		inputByte	+= m_operandSize * 3u;
+	}
+}
+
+// See TrinaryMinMaxCase::initPrograms for a description of the output buffer format.
+OperationManager::ComparisonError OperationManager::compareResults (void* referenceBuffer, void* resultsBuffer, deUint32 numOperations)
+{
+	char* referenceBytes	= reinterpret_cast<char*>(referenceBuffer);
+	char* resultsBytes		= reinterpret_cast<char*>(resultsBuffer);
+
+	for (deUint32 opIdx = 0u; opIdx < numOperations; ++opIdx)
+	{
+		char *refCompBytes = referenceBytes;
+		char *resCompBytes = resultsBytes;
+
+		for (deUint32 compIdx = 0u; compIdx < m_numComponents; ++compIdx)
+		{
+			if (deMemCmp(refCompBytes, resCompBytes, m_componentSize) != 0)
+				return tcu::just(OperationComponent(opIdx, compIdx));
+			refCompBytes += m_componentSize;
+			resCompBytes += m_componentSize;
+		}
+		referenceBytes += m_operandSize;
+		resultsBytes += m_operandSize;
+	}
+
+	return tcu::nothing<OperationComponent>();
+}
+
+class TrinaryMinMaxCase : public vkt::TestCase
+{
+public:
+	using ReplacementsMap = std::map<std::string, std::string>;
+
+							TrinaryMinMaxCase		(tcu::TestContext& testCtx, const std::string& name, const std::string& description, const TestParams& params);
+	virtual					~TrinaryMinMaxCase		(void) {}
+
+	virtual void			initPrograms			(vk::SourceCollections& programCollection) const;
+	virtual TestInstance*	createInstance			(Context& context) const;
+	virtual void			checkSupport			(Context& context) const;
+	ReplacementsMap			getSpirVReplacements	(void) const;
+
+	static const deUint32	kArraySize;
+private:
+	TestParams				m_params;
+};
+
+const deUint32 TrinaryMinMaxCase::kArraySize = 100u;
+
+class TrinaryMinMaxInstance : public vkt::TestInstance
+{
+public:
+								TrinaryMinMaxInstance	(Context& context, const TestParams& params);
+	virtual						~TrinaryMinMaxInstance	(void) {}
+
+	virtual tcu::TestStatus		iterate					(void);
+
+private:
+	TestParams	m_params;
+};
+
+TrinaryMinMaxCase::TrinaryMinMaxCase (tcu::TestContext& testCtx, const std::string& name, const std::string& description, const TestParams& params)
+	: vkt::TestCase	(testCtx, name, description)
+	, m_params		(params)
+{}
+
+TestInstance* TrinaryMinMaxCase::createInstance (Context& context) const
+{
+	return new TrinaryMinMaxInstance{context, m_params};
+}
+
+void TrinaryMinMaxCase::checkSupport (Context& context) const
+{
+	// These are always required.
+	context.requireInstanceFunctionality("VK_KHR_get_physical_device_properties2");
+	context.requireDeviceFunctionality("VK_KHR_storage_buffer_storage_class");
+	context.requireDeviceFunctionality("VK_AMD_shader_trinary_minmax");
+
+	const auto&	vki				= context.getInstanceInterface();
+	const auto	physicalDevice	= context.getPhysicalDevice();
+
+	const auto devFeatures	= vk::getPhysicalDeviceFeatures(vki, physicalDevice);
+	const auto vk11Features	= vk::getPhysicalDeviceVulkan11Features(vki, physicalDevice);
+	const auto vk12Features	= vk::getPhysicalDeviceVulkan12Features(vki, physicalDevice);
+
+	// Storage features.
+	if (m_params.typeSize == TypeSize::SIZE_8BIT)
+	{
+		// We will be using 8-bit types in storage buffers.
+		context.requireDeviceFunctionality("VK_KHR_8bit_storage");
+		if (!vk12Features.storageBuffer8BitAccess)
+			TCU_THROW(NotSupportedError, "8-bit storage buffer access not supported");
+	}
+	else if (m_params.typeSize == TypeSize::SIZE_16BIT)
+	{
+		// We will be using 16-bit types in storage buffers.
+		context.requireDeviceFunctionality("VK_KHR_16bit_storage");
+		if (!vk11Features.storageBuffer16BitAccess)
+			TCU_THROW(NotSupportedError, "16-bit storage buffer access not supported");
+	}
+
+	// Shader type features.
+	if (m_params.baseType == BaseType::TYPE_INT || m_params.baseType == BaseType::TYPE_UINT)
+	{
+		if (m_params.typeSize == TypeSize::SIZE_8BIT && !vk12Features.shaderInt8)
+			TCU_THROW(NotSupportedError, "8-bit integers not supported in shaders");
+		else if (m_params.typeSize == TypeSize::SIZE_16BIT && !devFeatures.shaderInt16)
+			TCU_THROW(NotSupportedError, "16-bit integers not supported in shaders");
+		else if (m_params.typeSize == TypeSize::SIZE_64BIT && !devFeatures.shaderInt64)
+			TCU_THROW(NotSupportedError, "64-bit integers not supported in shaders");
+	}
+	else // BaseType::TYPE_FLOAT
+	{
+		DE_ASSERT(m_params.typeSize != TypeSize::SIZE_8BIT);
+		if (m_params.typeSize == TypeSize::SIZE_16BIT && !vk12Features.shaderFloat16)
+			TCU_THROW(NotSupportedError, "16-bit floats not supported in shaders");
+		else if (m_params.typeSize == TypeSize::SIZE_64BIT && !devFeatures.shaderFloat64)
+			TCU_THROW(NotSupportedError, "64-bit floats not supported in shaders");
+	}
+}
+
+TrinaryMinMaxCase::ReplacementsMap TrinaryMinMaxCase::getSpirVReplacements (void) const
+{
+	ReplacementsMap replacements;
+
+	// Capabilities and extensions.
+	if (m_params.baseType == BaseType::TYPE_INT || m_params.baseType == BaseType::TYPE_UINT)
+	{
+		if (m_params.typeSize == TypeSize::SIZE_8BIT)
+			replacements["CAPABILITIES"]	+= "OpCapability Int8\n";
+		else if (m_params.typeSize == TypeSize::SIZE_16BIT)
+			replacements["CAPABILITIES"]	+= "OpCapability Int16\n";
+		else if (m_params.typeSize == TypeSize::SIZE_64BIT)
+			replacements["CAPABILITIES"]	+= "OpCapability Int64\n";
+	}
+	else // BaseType::TYPE_FLOAT
+	{
+		if (m_params.typeSize == TypeSize::SIZE_16BIT)
+			replacements["CAPABILITIES"]	+= "OpCapability Float16\n";
+		else if (m_params.typeSize == TypeSize::SIZE_64BIT)
+			replacements["CAPABILITIES"]	+= "OpCapability Float64\n";
+	}
+
+	if (m_params.typeSize == TypeSize::SIZE_8BIT)
+	{
+		replacements["CAPABILITIES"]		+= "OpCapability StorageBuffer8BitAccess\n";
+		replacements["EXTENSIONS"]			+= "OpExtension \"SPV_KHR_8bit_storage\"\n";
+	}
+	else if (m_params.typeSize == TypeSize::SIZE_16BIT)
+	{
+		replacements["CAPABILITIES"]		+= "OpCapability StorageBuffer16BitAccess\n";
+		replacements["EXTENSIONS"]			+= "OpExtension \"SPV_KHR_16bit_storage\"\n";
+	}
+
+	// Operand size in bytes.
+	const deUint32 opSize				= m_params.operandSize();
+	replacements["OPERAND_SIZE"]		= de::toString(opSize);
+	replacements["OPERAND_SIZE_2TIMES"]	= de::toString(opSize * 2u);
+	replacements["OPERAND_SIZE_3TIMES"]	= de::toString(opSize * 3u);
+
+	// Array size.
+	replacements["ARRAY_SIZE"]			= de::toString(kArraySize);
+
+	// Types and operand type: define the base integer or float type and the vector type if needed, then set the operand type replacement.
+	const std::string vecSize	= de::toString(m_params.numComponents());
+	const std::string bitSize	= de::toString(m_params.componentSize() * 8u);
+
+	if (m_params.baseType == BaseType::TYPE_INT || m_params.baseType == BaseType::TYPE_UINT)
+	{
+		const std::string	signBit		= (m_params.baseType == BaseType::TYPE_INT ? "1" : "0");
+		const std::string	typePrefix	= (m_params.baseType == BaseType::TYPE_UINT ? "u" : "");
+		std::string			baseTypeName;
+
+		// 32-bit integers are already defined in the default shader text.
+		if (m_params.typeSize != TypeSize::SIZE_32BIT)
+		{
+			baseTypeName = typePrefix + "int" + bitSize + "_t";
+			replacements["TYPES"] += "%" + baseTypeName + " = OpTypeInt " + bitSize + " " + signBit + "\n";
+		}
+		else
+		{
+			baseTypeName = typePrefix + "int";
+		}
+
+		if (m_params.aggregation == AggregationType::SCALAR)
+		{
+			replacements["OPERAND_TYPE"] = "%" + baseTypeName;
+		}
+		else
+		{
+			const std::string typeName = "%v" + vecSize + baseTypeName;
+			// %v3uint is already defined in the default shader text.
+			if (m_params.baseType != BaseType::TYPE_UINT || m_params.typeSize != TypeSize::SIZE_32BIT || m_params.aggregation != AggregationType::VEC3)
+			{
+				replacements["TYPES"] += typeName + " = OpTypeVector %" + baseTypeName + " " + vecSize + "\n";
+			}
+			replacements["OPERAND_TYPE"] = typeName;
+		}
+	}
+	else // BaseType::TYPE_FLOAT
+	{
+		const std::string baseTypeName = "float" + bitSize + "_t";
+		replacements["TYPES"] += "%" + baseTypeName + " = OpTypeFloat " + bitSize + "\n";
+
+		if (m_params.aggregation == AggregationType::SCALAR)
+		{
+			replacements["OPERAND_TYPE"] = "%" + baseTypeName;
+		}
+		else
+		{
+			const std::string typeName = "%v" + vecSize + baseTypeName;
+			replacements["TYPES"] += typeName + " = OpTypeVector %" + baseTypeName + " " + vecSize + "\n";
+			replacements["OPERAND_TYPE"] = typeName;
+		}
+	}
+
+	// Operation name.
+	const static std::vector<std::string> opTypeStr	= { "Min", "Max", "Mid" };
+	const static std::vector<std::string> opPrefix	= { "S", "U", "F" };
+	replacements["OPERATION_NAME"] = opPrefix[static_cast<int>(m_params.baseType)] + opTypeStr[static_cast<int>(m_params.operation)] + "3AMD";
+
+	return replacements;
+}
+
+void TrinaryMinMaxCase::initPrograms (vk::SourceCollections& programCollection) const
+{
+	// The shader below uses an input buffer at set 0 binding 0 and an output buffer at set 0 binding 1. Their structure is similar
+	// to the code below:
+	//
+	//      struct Operands {
+	//              <type> op1;
+	//              <type> op2;
+	//              <type> op3;
+	//      };
+	//
+	//      layout (set=0, binding=0, std430) buffer InputBlock {
+	//              Operands operands[<arraysize>];
+	//      };
+	//
+	//      layout (set=0, binding=1, std430) buffer OutputBlock {
+	//              <type> result[<arraysize>];
+	//      };
+	//
+	// Where <type> can be int8_t, uint32_t, float, etc. So in the input buffer the operands are "grouped" per operation and can
+	// have several components each and the output buffer contains an array of results, one per trio of input operands.
+
+	std::ostringstream shaderStr;
+	shaderStr
+		<< "; SPIR-V\n"
+		<< "; Version: 1.5\n"
+		<< "                            OpCapability Shader\n"
+		<< "${CAPABILITIES:opt}"
+		<< "                            OpExtension \"SPV_KHR_storage_buffer_storage_class\"\n"
+		<< "                            OpExtension \"SPV_AMD_shader_trinary_minmax\"\n"
+		<< "${EXTENSIONS:opt}"
+		<< "                  %std450 = OpExtInstImport \"GLSL.std.450\"\n"
+		<< "                 %trinary = OpExtInstImport \"SPV_AMD_shader_trinary_minmax\"\n"
+		<< "                            OpMemoryModel Logical GLSL450\n"
+		<< "                            OpEntryPoint GLCompute %main \"main\" %gl_GlobalInvocationID %output_buffer %input_buffer\n"
+		<< "                            OpExecutionMode %main LocalSize 1 1 1\n"
+		<< "                            OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId\n"
+		<< "                            OpDecorate %results_array_t ArrayStride ${OPERAND_SIZE}\n"
+		<< "                            OpMemberDecorate %OutputBlock 0 Offset 0\n"
+		<< "                            OpDecorate %OutputBlock Block\n"
+		<< "                            OpDecorate %output_buffer DescriptorSet 0\n"
+		<< "                            OpDecorate %output_buffer Binding 1\n"
+		<< "                            OpMemberDecorate %Operands 0 Offset 0\n"
+		<< "                            OpMemberDecorate %Operands 1 Offset ${OPERAND_SIZE}\n"
+		<< "                            OpMemberDecorate %Operands 2 Offset ${OPERAND_SIZE_2TIMES}\n"
+		<< "                            OpDecorate %_arr_Operands_arraysize ArrayStride ${OPERAND_SIZE_3TIMES}\n"
+		<< "                            OpMemberDecorate %InputBlock 0 Offset 0\n"
+		<< "                            OpDecorate %InputBlock Block\n"
+		<< "                            OpDecorate %input_buffer DescriptorSet 0\n"
+		<< "                            OpDecorate %input_buffer Binding 0\n"
+		<< "                            OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize\n"
+		<< "                    %void = OpTypeVoid\n"
+		<< "                %voidfunc = OpTypeFunction %void\n"
+		<< "                     %int = OpTypeInt 32 1\n"
+		<< "                    %uint = OpTypeInt 32 0\n"
+		<< "                  %v3uint = OpTypeVector %uint 3\n"
+		<< "${TYPES:opt}"
+		<< "                   %int_0 = OpConstant %int 0\n"
+		<< "                   %int_1 = OpConstant %int 1\n"
+		<< "                   %int_2 = OpConstant %int 2\n"
+		<< "                  %uint_1 = OpConstant %uint 1\n"
+		<< "                  %uint_0 = OpConstant %uint 0\n"
+		<< "               %arraysize = OpConstant %uint ${ARRAY_SIZE}\n"
+		<< "      %_ptr_Function_uint = OpTypePointer Function %uint\n"
+		<< "       %_ptr_Input_v3uint = OpTypePointer Input %v3uint\n"
+		<< "   %gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input\n"
+		<< "         %_ptr_Input_uint = OpTypePointer Input %uint\n"
+		<< "         %results_array_t = OpTypeArray ${OPERAND_TYPE} %arraysize\n"
+		<< "                %Operands = OpTypeStruct ${OPERAND_TYPE} ${OPERAND_TYPE} ${OPERAND_TYPE}\n"
+		<< " %_arr_Operands_arraysize = OpTypeArray %Operands %arraysize\n"
+		<< "             %OutputBlock = OpTypeStruct %results_array_t\n"
+		<< "              %InputBlock = OpTypeStruct %_arr_Operands_arraysize\n"
+		<< "%_ptr_Uniform_OutputBlock = OpTypePointer StorageBuffer %OutputBlock\n"
+		<< " %_ptr_Uniform_InputBlock = OpTypePointer StorageBuffer %InputBlock\n"
+		<< "           %output_buffer = OpVariable %_ptr_Uniform_OutputBlock StorageBuffer\n"
+		<< "            %input_buffer = OpVariable %_ptr_Uniform_InputBlock StorageBuffer\n"
+		<< "              %optype_ptr = OpTypePointer StorageBuffer ${OPERAND_TYPE}\n"
+		<< "        %gl_WorkGroupSize = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1\n"
+		<< "                    %main = OpFunction %void None %voidfunc\n"
+		<< "               %mainlabel = OpLabel\n"
+		<< "                 %gidxptr = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0\n"
+		<< "                     %idx = OpLoad %uint %gidxptr\n"
+		<< "                  %op1ptr = OpAccessChain %optype_ptr %input_buffer %int_0 %idx %int_0\n"
+		<< "                     %op1 = OpLoad ${OPERAND_TYPE} %op1ptr\n"
+		<< "                  %op2ptr = OpAccessChain %optype_ptr %input_buffer %int_0 %idx %int_1\n"
+		<< "                     %op2 = OpLoad ${OPERAND_TYPE} %op2ptr\n"
+		<< "                  %op3ptr = OpAccessChain %optype_ptr %input_buffer %int_0 %idx %int_2\n"
+		<< "                     %op3 = OpLoad ${OPERAND_TYPE} %op3ptr\n"
+		<< "                  %result = OpExtInst ${OPERAND_TYPE} %trinary ${OPERATION_NAME} %op1 %op2 %op3\n"
+		<< "               %resultptr = OpAccessChain %optype_ptr %output_buffer %int_0 %idx\n"
+		<< "                            OpStore %resultptr %result\n"
+		<< "                            OpReturn\n"
+		<< "                            OpFunctionEnd\n"
+		;
+
+	const tcu::StringTemplate		shaderTemplate	{shaderStr.str()};
+	const vk::SpirVAsmBuildOptions	buildOptions	{VK_MAKE_VERSION(1, 2, 0), vk::SPIRV_VERSION_1_5};
+
+	programCollection.spirvAsmSources.add("comp", &buildOptions) << shaderTemplate.specialize(getSpirVReplacements());
+}
+
+TrinaryMinMaxInstance::TrinaryMinMaxInstance (Context& context, const TestParams& params)
+	: vkt::TestInstance	(context)
+	, m_params			(params)
+{}
+
+tcu::TestStatus TrinaryMinMaxInstance::iterate (void)
+{
+	const auto&	vkd			= m_context.getDeviceInterface();
+	const auto	device		= m_context.getDevice();
+	auto&		allocator	= m_context.getDefaultAllocator();
+	const auto	queue		= m_context.getUniversalQueue();
+	const auto	queueIndex	= m_context.getUniversalQueueFamilyIndex();
+
+	constexpr auto kNumOperations = TrinaryMinMaxCase::kArraySize;
+
+	const vk::VkDeviceSize kInputBufferSize		= static_cast<vk::VkDeviceSize>(kNumOperations * 3u * m_params.operandSize());
+	const vk::VkDeviceSize kOutputBufferSize	= static_cast<vk::VkDeviceSize>(kNumOperations * m_params.operandSize()); // Single output per operation.
+
+	// Create input, output and reference buffers.
+	auto inputBufferInfo	= vk::makeBufferCreateInfo(kInputBufferSize, vk::VK_BUFFER_USAGE_STORAGE_BUFFER_BIT);
+	auto outputBufferInfo	= vk::makeBufferCreateInfo(kOutputBufferSize, vk::VK_BUFFER_USAGE_STORAGE_BUFFER_BIT);
+
+	vk::BufferWithMemory	inputBuffer		{vkd, device, allocator, inputBufferInfo,	vk::MemoryRequirement::HostVisible};
+	vk::BufferWithMemory	outputBuffer	{vkd, device, allocator, outputBufferInfo,	vk::MemoryRequirement::HostVisible};
+	std::unique_ptr<char[]>	referenceBuffer	{new char[kOutputBufferSize]};
+
+	// Fill buffers with initial contents.
+	auto& inputAlloc	= inputBuffer.getAllocation();
+	auto& outputAlloc	= outputBuffer.getAllocation();
+
+	void* inputBufferPtr		= static_cast<deUint8*>(inputAlloc.getHostPtr()) + inputAlloc.getOffset();
+	void* outputBufferPtr		= static_cast<deUint8*>(outputAlloc.getHostPtr()) + outputAlloc.getOffset();
+	void* referenceBufferPtr	= referenceBuffer.get();
+
+	deMemset(inputBufferPtr, 0, static_cast<size_t>(kInputBufferSize));
+	deMemset(outputBufferPtr, 0, static_cast<size_t>(kOutputBufferSize));
+	deMemset(referenceBufferPtr, 0, static_cast<size_t>(kOutputBufferSize));
+
+	// Generate input buffer and calculate reference results.
+	OperationManager opMan{m_params};
+	opMan.genInputBuffer(inputBufferPtr, kNumOperations);
+	opMan.calculateResult(referenceBufferPtr, inputBufferPtr, kNumOperations);
+
+	// Flush buffer memory before starting.
+	vk::flushAlloc(vkd, device, inputAlloc);
+	vk::flushAlloc(vkd, device, outputAlloc);
+
+	// Descriptor set layout.
+	vk::DescriptorSetLayoutBuilder layoutBuilder;
+	layoutBuilder.addSingleBinding(vk::VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, vk::VK_SHADER_STAGE_COMPUTE_BIT);
+	layoutBuilder.addSingleBinding(vk::VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, vk::VK_SHADER_STAGE_COMPUTE_BIT);
+	auto descriptorSetLayout = layoutBuilder.build(vkd, device);
+
+	// Descriptor pool.
+	vk::DescriptorPoolBuilder poolBuilder;
+	poolBuilder.addType(vk::VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 2u);
+	auto descriptorPool = poolBuilder.build(vkd, device, vk::VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, 1u);
+
+	// Descriptor set.
+	const auto descriptorSet = vk::makeDescriptorSet(vkd, device, descriptorPool.get(), descriptorSetLayout.get());
+
+	// Update descriptor set using the buffers.
+	const auto inputBufferDescriptorInfo	= vk::makeDescriptorBufferInfo(inputBuffer.get(), 0ull, VK_WHOLE_SIZE);
+	const auto outputBufferDescriptorInfo	= vk::makeDescriptorBufferInfo(outputBuffer.get(), 0ull, VK_WHOLE_SIZE);
+
+	vk::DescriptorSetUpdateBuilder updateBuilder;
+	updateBuilder.writeSingle(descriptorSet.get(), vk::DescriptorSetUpdateBuilder::Location::binding(0u), vk::VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, &inputBufferDescriptorInfo);
+	updateBuilder.writeSingle(descriptorSet.get(), vk::DescriptorSetUpdateBuilder::Location::binding(1u), vk::VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, &outputBufferDescriptorInfo);
+	updateBuilder.update(vkd, device);
+
+	// Create compute pipeline.
+	auto shaderModule = vk::createShaderModule(vkd, device, m_context.getBinaryCollection().get("comp"), 0u);
+	auto pipelineLayout = vk::makePipelineLayout(vkd, device, descriptorSetLayout.get());
+
+	const vk::VkComputePipelineCreateInfo pipelineCreateInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO,
+		nullptr,
+		0u,															// flags
+		{															// compute shader
+			vk::VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,	// VkStructureType						sType;
+			nullptr,													// const void*							pNext;
+			0u,															// VkPipelineShaderStageCreateFlags		flags;
+			vk::VK_SHADER_STAGE_COMPUTE_BIT,							// VkShaderStageFlagBits				stage;
+			shaderModule.get(),											// VkShaderModule						module;
+			"main",														// const char*							pName;
+			nullptr,													// const VkSpecializationInfo*			pSpecializationInfo;
+		},
+		pipelineLayout.get(),										// layout
+		DE_NULL,													// basePipelineHandle
+		0,															// basePipelineIndex
+	};
+	auto pipeline = vk::createComputePipeline(vkd, device, DE_NULL, &pipelineCreateInfo);
+
+	// Synchronization barriers.
+	auto inputBufferHostToDevBarrier	= vk::makeBufferMemoryBarrier(vk::VK_ACCESS_HOST_WRITE_BIT, vk::VK_ACCESS_SHADER_READ_BIT, inputBuffer.get(), 0ull, VK_WHOLE_SIZE);
+	auto outputBufferHostToDevBarrier	= vk::makeBufferMemoryBarrier(vk::VK_ACCESS_HOST_WRITE_BIT, vk::VK_ACCESS_SHADER_WRITE_BIT, outputBuffer.get(), 0ull, VK_WHOLE_SIZE);
+	auto outputBufferDevToHostBarrier	= vk::makeBufferMemoryBarrier(vk::VK_ACCESS_SHADER_WRITE_BIT, vk::VK_ACCESS_HOST_READ_BIT, outputBuffer.get(), 0ull, VK_WHOLE_SIZE);
+
+	// Command buffer.
+	auto cmdPool		= vk::makeCommandPool(vkd, device, queueIndex);
+	auto cmdBufferPtr	= vk::allocateCommandBuffer(vkd, device, cmdPool.get(), vk::VK_COMMAND_BUFFER_LEVEL_PRIMARY);
+	auto cmdBuffer		= cmdBufferPtr.get();
+
+	// Record and submit commands.
+	vk::beginCommandBuffer(vkd, cmdBuffer);
+		vkd.cmdBindPipeline(cmdBuffer, vk::VK_PIPELINE_BIND_POINT_COMPUTE, pipeline.get());
+		vkd.cmdBindDescriptorSets(cmdBuffer, vk::VK_PIPELINE_BIND_POINT_COMPUTE, pipelineLayout.get(), 0, 1u, &descriptorSet.get(), 0u, nullptr);
+		vkd.cmdPipelineBarrier(cmdBuffer, vk::VK_PIPELINE_STAGE_HOST_BIT, vk::VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, 0u, 0u, nullptr, 1u, &inputBufferHostToDevBarrier, 0u, nullptr);
+		vkd.cmdPipelineBarrier(cmdBuffer, vk::VK_PIPELINE_STAGE_HOST_BIT, vk::VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, 0u, 0u, nullptr, 1u, &outputBufferHostToDevBarrier, 0u, nullptr);
+		vkd.cmdDispatch(cmdBuffer, kNumOperations, 1u, 1u);
+		vkd.cmdPipelineBarrier(cmdBuffer, vk::VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, vk::VK_PIPELINE_STAGE_HOST_BIT, 0u, 0u, nullptr, 1u, &outputBufferDevToHostBarrier, 0u, nullptr);
+	vk::endCommandBuffer(vkd, cmdBuffer);
+	vk::submitCommandsAndWait(vkd, device, queue, cmdBuffer);
+
+	// Verify output buffer contents.
+	vk::invalidateAlloc(vkd, device, outputAlloc);
+
+	const auto error = opMan.compareResults(referenceBufferPtr, outputBufferPtr, kNumOperations);
+
+	if (!error)
+		return tcu::TestStatus::pass("Pass");
+
+	std::ostringstream msg;
+	msg << "Value mismatch at operation " << error.get().first << " in component " << error.get().second;
+	return tcu::TestStatus::fail(msg.str());
+}
+
+} // anonymous
+
+tcu::TestCaseGroup* createTrinaryMinMaxGroup (tcu::TestContext& testCtx)
+{
+	deUint32 seed = 0xFEE768FCu;
+	de::MovePtr<tcu::TestCaseGroup> group{new tcu::TestCaseGroup{testCtx, "amd_trinary_minmax", "Tests for VK_AMD_trinary_minmax operations"}};
+
+	static const std::vector<std::pair<OperationType, std::string>> operationTypes =
+	{
+		{ OperationType::MIN, "min3" },
+		{ OperationType::MAX, "max3" },
+		{ OperationType::MID, "mid3" },
+	};
+
+	static const std::vector<std::pair<BaseType, std::string>> baseTypes =
+	{
+		{ BaseType::TYPE_INT,	"i" },
+		{ BaseType::TYPE_UINT,	"u" },
+		{ BaseType::TYPE_FLOAT,	"f" },
+	};
+
+	static const std::vector<std::pair<TypeSize, std::string>> typeSizes =
+	{
+		{ TypeSize::SIZE_8BIT,	"8"		},
+		{ TypeSize::SIZE_16BIT,	"16"	},
+		{ TypeSize::SIZE_32BIT,	"32"	},
+		{ TypeSize::SIZE_64BIT,	"64"	},
+	};
+
+	static const std::vector<std::pair<AggregationType, std::string>> aggregationTypes =
+	{
+		{ AggregationType::SCALAR,	"scalar"	},
+		{ AggregationType::VEC2,	"vec2"		},
+		{ AggregationType::VEC3,	"vec3"		},
+		{ AggregationType::VEC4,	"vec4"		},
+	};
+
+	for (const auto& opType : operationTypes)
+	{
+		const std::string opDesc = "Tests for " + opType.second + " operation";
+		de::MovePtr<tcu::TestCaseGroup> opGroup{new tcu::TestCaseGroup{testCtx, opType.second.c_str(), opDesc.c_str()}};
+
+		for (const auto& baseType : baseTypes)
+		for (const auto& typeSize : typeSizes)
+		{
+			// There are no 8-bit floats.
+			if (baseType.first == BaseType::TYPE_FLOAT && typeSize.first == TypeSize::SIZE_8BIT)
+				continue;
+
+			const std::string typeName = baseType.second + typeSize.second;
+			const std::string typeDesc = "Tests using " + typeName + " data";
+
+			de::MovePtr<tcu::TestCaseGroup> typeGroup{new tcu::TestCaseGroup{testCtx, typeName.c_str(), typeDesc.c_str()}};
+
+			for (const auto& aggType : aggregationTypes)
+			{
+				const TestParams params =
+				{
+					opType.first,		// OperationType	operation;
+					baseType.first,		// BaseType			baseType;
+					typeSize.first,		// TypeSize			typeSize;
+					aggType.first,		// AggregationType	aggregation;
+					seed++,				// deUint32			randomSeed;
+				};
+				typeGroup->addChild(new TrinaryMinMaxCase{testCtx, aggType.second, "", params});
+			}
+
+			opGroup->addChild(typeGroup.release());
+		}
+
+		group->addChild(opGroup.release());
+	}
+
+	return group.release();
+}
+
+} // SpirVAssembly
+} // vkt
diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmTrinaryMinMaxTests.hpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmTrinaryMinMaxTests.hpp
new file mode 100644
index 0000000..1bac64c
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmTrinaryMinMaxTests.hpp
@@ -0,0 +1,39 @@
+#ifndef _VKTSPVASMTRINARYMINMAXTESTS_HPP
+#define _VKTSPVASMTRINARYMINMAXTESTS_HPP
+/*-------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2020 Valve Corporation.
+ * Copyright (c) 2020 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief SPIR-V tests for VK_AMD_shader_trinary_minmax.
+ *//*--------------------------------------------------------------------*/
+
+#include "tcuTestCase.hpp"
+
+namespace vkt
+{
+namespace SpirVAssembly
+{
+
+tcu::TestCaseGroup* createTrinaryMinMaxGroup (tcu::TestContext& testCtx);
+
+} // SpirVAssembly
+} // vkt
+
+#endif // _VKTSPVASMTRINARYMINMAXTESTS_HPP
diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmUtils.hpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmUtils.hpp
index 20adddc..fd557ed 100644
--- a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmUtils.hpp
+++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmUtils.hpp
@@ -146,9 +146,10 @@
 class Resource
 {
 public:
-	Resource(const BufferSp& buffer_, vk::VkDescriptorType descriptorType_ = vk::VK_DESCRIPTOR_TYPE_STORAGE_BUFFER)
+	Resource(const BufferSp& buffer_, vk::VkDescriptorType descriptorType_ = vk::VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, void* userData_ = NULL)
 		: buffer(buffer_)
 		, descriptorType(descriptorType_)
+		, userData(userData_)
 	{
 	}
 
@@ -159,9 +160,13 @@
 	virtual void					setDescriptorType	(vk::VkDescriptorType type)		{ descriptorType = type; }
 	virtual vk::VkDescriptorType	getDescriptorType	()	const						{ return descriptorType; }
 
+	virtual void					setUserData			(void* data)					{ userData = data; }
+	virtual void*					getUserData			() const						{ return userData; }
+
 private:
 	BufferSp				buffer;
 	vk::VkDescriptorType	descriptorType;
+	void*					userData;
 };
 
 typedef bool (*VerifyIOFunc) (const std::vector<Resource>&		inputs,
diff --git a/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.cpp b/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.cpp
index bdc3d1e..702230f 100644
--- a/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.cpp
+++ b/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.cpp
@@ -1129,7 +1129,7 @@
 	src << ";\n";
 }
 
-void generateImmMatrixSrc (std::ostream& src, glu::DataType basicType, int matrixStride, bool isRowMajor, const void* valuePtr)
+void generateImmMatrixSrc (std::ostream& src, glu::DataType basicType, int matrixStride, bool isRowMajor, bool singleCol, int colNumber, const void* valuePtr)
 {
 	DE_ASSERT(glu::isDataTypeMatrix(basicType));
 
@@ -1137,20 +1137,25 @@
 	const int		numRows			= glu::getDataTypeMatrixNumRows(basicType);
 	const int		numCols			= glu::getDataTypeMatrixNumColumns(basicType);
 
-	src << glu::getDataTypeName(basicType) << "(";
+	src << glu::getDataTypeName(singleCol ? glu::getDataTypeMatrixColumnType(basicType) : basicType) << "(";
 
 	// Constructed in column-wise order.
+	bool firstElem = true;
 	for (int colNdx = 0; colNdx < numCols; colNdx++)
 	{
+		if (singleCol && colNdx != colNumber)
+			continue;
+
 		for (int rowNdx = 0; rowNdx < numRows; rowNdx++)
 		{
 			const deUint8*	compPtr	= (const deUint8*)valuePtr + (isRowMajor ? rowNdx*matrixStride + colNdx*compSize
 																				: colNdx*matrixStride + rowNdx*compSize);
 
-			if (colNdx > 0 || rowNdx > 0)
+			if (!firstElem)
 				src << ", ";
 
 			src << de::floatToString(*((const float*)compPtr), 1);
+			firstElem = false;
 		}
 	}
 
@@ -1372,7 +1377,7 @@
 				else
 				{
 					src << "\t" << resultVar << " = " << resultVar << " && compare_" << typeName << "(" << shaderName << ", ";
-					generateImmMatrixSrc (src, basicType, varLayout.matrixStride, varLayout.isRowMajor, valuePtr);
+					generateImmMatrixSrc (src, basicType, varLayout.matrixStride, varLayout.isRowMajor, false, -1, valuePtr);
 					src << ");\n";
 				}
 			}
@@ -1429,7 +1434,8 @@
 	int							instanceNdx,
 	const BlockDataPtr&			blockPtr,
 	const BufferVar&			bufVar,
-	const glu::SubTypeAccess&	accessPath)
+	const glu::SubTypeAccess&	accessPath,
+	MatrixStoreFlags			matrixStoreFlag)
 {
 	const VarType curType = accessPath.getType();
 
@@ -1438,14 +1444,14 @@
 		const int arraySize = curType.getArraySize() == VarType::UNSIZED_ARRAY ? block.getLastUnsizedArraySize(instanceNdx) : curType.getArraySize();
 
 		for (int elemNdx = 0; elemNdx < arraySize; elemNdx++)
-			generateWriteSrc(src, bufferLayout, block, instanceNdx, blockPtr, bufVar, accessPath.element(elemNdx));
+			generateWriteSrc(src, bufferLayout, block, instanceNdx, blockPtr, bufVar, accessPath.element(elemNdx), matrixStoreFlag);
 	}
 	else if (curType.isStructType())
 	{
 		const int numMembers = curType.getStructPtr()->getNumMembers();
 
 		for (int memberNdx = 0; memberNdx < numMembers; memberNdx++)
-			generateWriteSrc(src, bufferLayout, block, instanceNdx, blockPtr, bufVar, accessPath.member(memberNdx));
+			generateWriteSrc(src, bufferLayout, block, instanceNdx, blockPtr, bufVar, accessPath.member(memberNdx), matrixStoreFlag);
 	}
 	else
 	{
@@ -1465,21 +1471,43 @@
 			const char* castName = "";
 			glu::DataType promoteType = getPromoteType(basicType);
 			if (basicType != promoteType)
-				castName = glu::getDataTypeName(basicType);
-
-			src << "\t" << shaderName << " = " << castName << "(";
+				castName = glu::getDataTypeName((!isMatrix || matrixStoreFlag == STORE_FULL_MATRIX) ? basicType : glu::getDataTypeMatrixColumnType(basicType));
 
 			if (isMatrix)
-				generateImmMatrixSrc(src, basicType, varLayout.matrixStride, varLayout.isRowMajor, valuePtr);
-			else
+			{
+				switch (matrixStoreFlag)
+				{
+					case STORE_FULL_MATRIX: {
+						src << "\t" << shaderName << " = " << castName << "(";
+						generateImmMatrixSrc(src, basicType, varLayout.matrixStride, varLayout.isRowMajor, false, -1, valuePtr);
+						src << ");\n";
+						break;
+					}
+					case STORE_MATRIX_COLUMNS: {
+						int numCols = glu::getDataTypeMatrixNumColumns(basicType);
+						for (int colIdx = 0; colIdx < numCols; ++colIdx)
+						{
+							src << "\t" << shaderName << "[" << colIdx << "]" << " = " << castName << "(";
+							generateImmMatrixSrc(src, basicType, varLayout.matrixStride, varLayout.isRowMajor, true, colIdx, valuePtr);
+							src << ");\n";
+						}
+						break;
+					}
+					default:
+						DE_ASSERT(false);
+						break;
+				}
+			}
+			else {
+				src << "\t" << shaderName << " = " << castName << "(";
 				generateImmScalarVectorSrc(src, basicType, valuePtr);
-
-			src << ");\n";
+				src << ");\n";
+			}
 		}
 	}
 }
 
-void generateWriteSrc (std::ostream& src, const ShaderInterface& interface, const BufferLayout& layout, const vector<BlockDataPtr>& blockPointers)
+void generateWriteSrc (std::ostream& src, const ShaderInterface& interface, const BufferLayout& layout, const vector<BlockDataPtr>& blockPointers, MatrixStoreFlags matrixStoreFlag)
 {
 	for (int declNdx = 0; declNdx < interface.getNumBlocks(); declNdx++)
 	{
@@ -1502,13 +1530,13 @@
 				if ((bufVar.getFlags() & ACCESS_WRITE) == 0)
 					continue; // Don't write to that variable.
 
-				generateWriteSrc(src, layout, block, instanceNdx, blockPtr, bufVar, glu::SubTypeAccess(bufVar.getType()));
+				generateWriteSrc(src, layout, block, instanceNdx, blockPtr, bufVar, glu::SubTypeAccess(bufVar.getType()), matrixStoreFlag);
 			}
 		}
 	}
 }
 
-string generateComputeShader (const ShaderInterface& interface, const BufferLayout& layout, const vector<BlockDataPtr>& comparePtrs, const vector<BlockDataPtr>& writePtrs, MatrixLoadFlags matrixLoadFlag, bool usePhysStorageBuffer)
+string generateComputeShader (const ShaderInterface& interface, const BufferLayout& layout, const vector<BlockDataPtr>& comparePtrs, const vector<BlockDataPtr>& writePtrs, MatrixLoadFlags matrixLoadFlag, MatrixStoreFlags matrixStoreFlag, bool usePhysStorageBuffer)
 {
 	std::ostringstream src;
 
@@ -1580,7 +1608,7 @@
 		<< "\n";
 
 	// Value write.
-	generateWriteSrc(src, interface, layout, writePtrs);
+	generateWriteSrc(src, interface, layout, writePtrs, matrixStoreFlag);
 
 	src << "}\n";
 
@@ -1861,8 +1889,8 @@
 					if (numFailed < maxPrints)
 					{
 						std::ostringstream expected, got;
-						generateImmMatrixSrc(expected, refEntry.type, refEntry.matrixStride, refEntry.isRowMajor, refElemPtr);
-						generateImmMatrixSrc(got, resEntry.type, resEntry.matrixStride, resEntry.isRowMajor, resElemPtr);
+						generateImmMatrixSrc(expected, refEntry.type, refEntry.matrixStride, refEntry.isRowMajor, false, -1, refElemPtr);
+						generateImmMatrixSrc(got, resEntry.type, resEntry.matrixStride, resEntry.isRowMajor, false, -1, resElemPtr);
 						log << TestLog::Message << "ERROR: mismatch in " << refEntry.name << ", top-level ndx " << topElemNdx << ", bottom-level ndx " << elementNdx << ":\n"
 												<< "  expected " << expected.str() << "\n"
 												<< "  got " << got.str()
@@ -2499,7 +2527,7 @@
 		const int refCount = 1;
 		int resCount = 0;
 
-		invalidateMappedMemoryRange(vk, device, acBufferAlloc->getMemory(), acBufferAlloc->getOffset(), acBufferSize);
+		invalidateAlloc(vk, device, *acBufferAlloc);
 
 		resCount = *((const int*)acBufferAlloc->getHostPtr());
 
@@ -2513,7 +2541,7 @@
 	for (size_t allocNdx = 0; allocNdx < m_uniformAllocs.size(); allocNdx++)
 	{
 		vk::Allocation *alloc = m_uniformAllocs[allocNdx].get();
-		invalidateMappedMemoryRange(vk, device, alloc->getMemory(), alloc->getOffset(), VK_WHOLE_SIZE);
+		invalidateAlloc(vk, device, *alloc);
 	}
 
 	// Validate result
@@ -2531,10 +2559,11 @@
 
 // SSBOLayoutCase.
 
-SSBOLayoutCase::SSBOLayoutCase (tcu::TestContext& testCtx, const char* name, const char* description, BufferMode bufferMode, MatrixLoadFlags matrixLoadFlag, bool usePhysStorageBuffer)
+SSBOLayoutCase::SSBOLayoutCase (tcu::TestContext& testCtx, const char* name, const char* description, BufferMode bufferMode, MatrixLoadFlags matrixLoadFlag, MatrixStoreFlags matrixStoreFlag, bool usePhysStorageBuffer)
 	: TestCase			(testCtx, name, description)
 	, m_bufferMode		(bufferMode)
 	, m_matrixLoadFlag	(matrixLoadFlag)
+	, m_matrixStoreFlag	(matrixStoreFlag)
 	, m_usePhysStorageBuffer(usePhysStorageBuffer)
 {
 }
@@ -2588,7 +2617,7 @@
 	generateValues(m_refLayout, m_writeData.pointers, deStringHash(getName()) ^ 0x25ca4e7);
 	copyNonWrittenData(m_interface, m_refLayout, m_initialData.pointers, m_writeData.pointers);
 
-	m_computeShaderSrc = generateComputeShader(m_interface, m_refLayout, m_initialData.pointers, m_writeData.pointers, m_matrixLoadFlag, m_usePhysStorageBuffer);
+	m_computeShaderSrc = generateComputeShader(m_interface, m_refLayout, m_initialData.pointers, m_writeData.pointers, m_matrixLoadFlag, m_matrixStoreFlag, m_usePhysStorageBuffer);
 }
 
 } // ssbo
diff --git a/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.hpp b/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.hpp
index 8693e45..aa8ad2a 100644
--- a/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.hpp
+++ b/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.hpp
@@ -64,6 +64,12 @@
 	LOAD_MATRIX_COMPONENTS	= 1,
 };
 
+enum MatrixStoreFlags
+{
+	STORE_FULL_MATRIX		= 0,
+	STORE_MATRIX_COLUMNS	= 1,
+};
+
 class BufferVar
 {
 public:
@@ -232,7 +238,7 @@
 		BUFFERMODE_LAST
 	};
 
-								SSBOLayoutCase				(tcu::TestContext& testCtx, const char* name, const char* description, BufferMode bufferMode, MatrixLoadFlags matrixLoadFlag, bool usePhysStorageBuffer);
+								SSBOLayoutCase				(tcu::TestContext& testCtx, const char* name, const char* description, BufferMode bufferMode, MatrixLoadFlags matrixLoadFlag, MatrixStoreFlags matrixStoreFlag, bool usePhysStorageBuffer);
 	virtual						~SSBOLayoutCase				(void);
 
 	virtual void				delayedInit					(void);
@@ -243,6 +249,7 @@
 	BufferMode					m_bufferMode;
 	ShaderInterface				m_interface;
 	MatrixLoadFlags				m_matrixLoadFlag;
+	MatrixStoreFlags			m_matrixStoreFlag;
 	std::string					m_computeShaderSrc;
 	bool						m_usePhysStorageBuffer;
 
diff --git a/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutTests.cpp b/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutTests.cpp
index bf51c0a..edbe433 100644
--- a/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutTests.cpp
+++ b/external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutTests.cpp
@@ -43,6 +43,9 @@
 #include "vkTypeUtil.hpp"
 #include "vkCmdUtil.hpp"
 
+#include <array>
+#include <utility>
+
 namespace vkt
 {
 namespace ssbo
@@ -52,6 +55,8 @@
 
 using std::string;
 using std::vector;
+using std::array;
+using std::pair;
 using glu::VarType;
 using glu::StructType;
 using namespace vk;
@@ -104,7 +109,7 @@
 };
 
 RandomSSBOLayoutCase::RandomSSBOLayoutCase (tcu::TestContext& testCtx, const char* name, const char* description, BufferMode bufferMode, deUint32 features, deUint32 seed, bool usePhysStorageBuffer)
-	: SSBOLayoutCase		(testCtx, name, description, bufferMode, LOAD_FULL_MATRIX, usePhysStorageBuffer)
+	: SSBOLayoutCase		(testCtx, name, description, bufferMode, LOAD_FULL_MATRIX, STORE_FULL_MATRIX, usePhysStorageBuffer)
 	, m_features			(features)
 	, m_maxBlocks			((features & FEATURE_DESCRIPTOR_INDEXING)	? 1 : 4)
 	, m_maxInstances		((features & FEATURE_INSTANCE_ARRAYS)		? 3 : 0)
@@ -369,8 +374,8 @@
 class BlockBasicTypeCase : public SSBOLayoutCase
 {
 public:
-	BlockBasicTypeCase (tcu::TestContext& testCtx, const char* name, const char* description, const VarType& type, deUint32 layoutFlags, int numInstances, MatrixLoadFlags matrixLoadFlag, bool usePhysStorageBuffer)
-		: SSBOLayoutCase(testCtx, name, description, BUFFERMODE_PER_BLOCK, matrixLoadFlag, usePhysStorageBuffer)
+	BlockBasicTypeCase (tcu::TestContext& testCtx, const char* name, const char* description, const VarType& type, deUint32 layoutFlags, int numInstances, MatrixLoadFlags matrixLoadFlag, MatrixStoreFlags matrixStoreFlag, bool usePhysStorageBuffer)
+		: SSBOLayoutCase(testCtx, name, description, BUFFERMODE_PER_BLOCK, matrixLoadFlag, matrixStoreFlag, usePhysStorageBuffer)
 	{
 		VarType tempType = type;
 		while (tempType.isArrayType())
@@ -412,8 +417,8 @@
 class BlockBasicUnsizedArrayCase : public SSBOLayoutCase
 {
 public:
-	BlockBasicUnsizedArrayCase (tcu::TestContext& testCtx, const char* name, const char* description, const VarType& elementType, int arraySize, deUint32 layoutFlags, MatrixLoadFlags matrixLoadFlag, bool usePhysStorageBuffer)
-		: SSBOLayoutCase(testCtx, name, description, BUFFERMODE_PER_BLOCK, matrixLoadFlag, usePhysStorageBuffer)
+	BlockBasicUnsizedArrayCase (tcu::TestContext& testCtx, const char* name, const char* description, const VarType& elementType, int arraySize, deUint32 layoutFlags, MatrixLoadFlags matrixLoadFlag, MatrixStoreFlags matrixStoreFlag, bool usePhysStorageBuffer)
+		: SSBOLayoutCase(testCtx, name, description, BUFFERMODE_PER_BLOCK, matrixLoadFlag, matrixStoreFlag, usePhysStorageBuffer)
 	{
 		BufferBlock& block = m_interface.allocBlock("Block");
 		block.addMember(BufferVar("var", VarType(elementType, VarType::UNSIZED_ARRAY), ACCESS_READ|ACCESS_WRITE));
@@ -462,8 +467,8 @@
 class BlockSingleStructCase : public SSBOLayoutCase
 {
 public:
-	BlockSingleStructCase (tcu::TestContext& testCtx, const char* name, const char* description, deUint32 layoutFlags, BufferMode bufferMode, int numInstances, MatrixLoadFlags matrixLoadFlag, bool usePhysStorageBuffer)
-		: SSBOLayoutCase	(testCtx, name, description, bufferMode, matrixLoadFlag, usePhysStorageBuffer)
+	BlockSingleStructCase (tcu::TestContext& testCtx, const char* name, const char* description, deUint32 layoutFlags, BufferMode bufferMode, int numInstances, MatrixLoadFlags matrixLoadFlag, MatrixStoreFlags matrixStoreFlag, bool usePhysStorageBuffer)
+		: SSBOLayoutCase	(testCtx, name, description, bufferMode, matrixLoadFlag, matrixStoreFlag, usePhysStorageBuffer)
 		, m_layoutFlags		(layoutFlags)
 		, m_numInstances	(numInstances)
 	{
@@ -493,8 +498,8 @@
 class BlockSingleStructArrayCase : public SSBOLayoutCase
 {
 public:
-	BlockSingleStructArrayCase (tcu::TestContext& testCtx, const char* name, const char* description, deUint32 layoutFlags, BufferMode bufferMode, int numInstances, MatrixLoadFlags matrixLoadFlag, bool usePhysStorageBuffer)
-		: SSBOLayoutCase	(testCtx, name, description, bufferMode, matrixLoadFlag, usePhysStorageBuffer)
+	BlockSingleStructArrayCase (tcu::TestContext& testCtx, const char* name, const char* description, deUint32 layoutFlags, BufferMode bufferMode, int numInstances, MatrixLoadFlags matrixLoadFlag, MatrixStoreFlags matrixStoreFlag, bool usePhysStorageBuffer)
+		: SSBOLayoutCase	(testCtx, name, description, bufferMode, matrixLoadFlag, matrixStoreFlag, usePhysStorageBuffer)
 		, m_layoutFlags		(layoutFlags)
 		, m_numInstances	(numInstances)
 	{
@@ -526,8 +531,8 @@
 class BlockSingleNestedStructCase : public SSBOLayoutCase
 {
 public:
-	BlockSingleNestedStructCase (tcu::TestContext& testCtx, const char* name, const char* description, deUint32 layoutFlags, BufferMode bufferMode, int numInstances, MatrixLoadFlags matrixLoadFlag, bool usePhysStorageBuffer)
-		: SSBOLayoutCase	(testCtx, name, description, bufferMode, matrixLoadFlag, usePhysStorageBuffer)
+	BlockSingleNestedStructCase (tcu::TestContext& testCtx, const char* name, const char* description, deUint32 layoutFlags, BufferMode bufferMode, int numInstances, MatrixLoadFlags matrixLoadFlag, MatrixStoreFlags matrixStoreFlag, bool usePhysStorageBuffer)
+		: SSBOLayoutCase	(testCtx, name, description, bufferMode, matrixLoadFlag, matrixStoreFlag, usePhysStorageBuffer)
 		, m_layoutFlags		(layoutFlags)
 		, m_numInstances	(numInstances)
 	{
@@ -564,8 +569,8 @@
 class BlockSingleNestedStructArrayCase : public SSBOLayoutCase
 {
 public:
-	BlockSingleNestedStructArrayCase (tcu::TestContext& testCtx, const char* name, const char* description, deUint32 layoutFlags, BufferMode bufferMode, int numInstances, MatrixLoadFlags matrixLoadFlag, bool usePhysStorageBuffer)
-		: SSBOLayoutCase	(testCtx, name, description, bufferMode, matrixLoadFlag, usePhysStorageBuffer)
+	BlockSingleNestedStructArrayCase (tcu::TestContext& testCtx, const char* name, const char* description, deUint32 layoutFlags, BufferMode bufferMode, int numInstances, MatrixLoadFlags matrixLoadFlag, MatrixStoreFlags matrixStoreFlag, bool usePhysStorageBuffer)
+		: SSBOLayoutCase	(testCtx, name, description, bufferMode, matrixLoadFlag, matrixStoreFlag, usePhysStorageBuffer)
 		, m_layoutFlags		(layoutFlags)
 		, m_numInstances	(numInstances)
 	{
@@ -602,8 +607,8 @@
 class BlockUnsizedStructArrayCase : public SSBOLayoutCase
 {
 public:
-	BlockUnsizedStructArrayCase (tcu::TestContext& testCtx, const char* name, const char* description, deUint32 layoutFlags, BufferMode bufferMode, int numInstances, MatrixLoadFlags matrixLoadFlag, bool usePhysStorageBuffer)
-		: SSBOLayoutCase	(testCtx, name, description, bufferMode, matrixLoadFlag, usePhysStorageBuffer)
+	BlockUnsizedStructArrayCase (tcu::TestContext& testCtx, const char* name, const char* description, deUint32 layoutFlags, BufferMode bufferMode, int numInstances, MatrixLoadFlags matrixLoadFlag, MatrixStoreFlags matrixStoreFlag, bool usePhysStorageBuffer)
+		: SSBOLayoutCase	(testCtx, name, description, bufferMode, matrixLoadFlag, matrixStoreFlag, usePhysStorageBuffer)
 		, m_layoutFlags		(layoutFlags)
 		, m_numInstances	(numInstances)
 	{
@@ -644,8 +649,8 @@
 class Block2LevelUnsizedStructArrayCase : public SSBOLayoutCase
 {
 public:
-	Block2LevelUnsizedStructArrayCase (tcu::TestContext& testCtx, const char* name, const char* description, deUint32 layoutFlags, BufferMode bufferMode, int numInstances, MatrixLoadFlags matrixLoadFlag, bool usePhysStorageBuffer)
-		: SSBOLayoutCase	(testCtx, name, description, bufferMode, matrixLoadFlag, usePhysStorageBuffer)
+	Block2LevelUnsizedStructArrayCase (tcu::TestContext& testCtx, const char* name, const char* description, deUint32 layoutFlags, BufferMode bufferMode, int numInstances, MatrixLoadFlags matrixLoadFlag, MatrixStoreFlags matrixStoreFlag, bool usePhysStorageBuffer)
+		: SSBOLayoutCase	(testCtx, name, description, bufferMode, matrixLoadFlag, matrixStoreFlag, usePhysStorageBuffer)
 		, m_layoutFlags		(layoutFlags)
 		, m_numInstances	(numInstances)
 	{
@@ -685,8 +690,8 @@
 class BlockUnsizedNestedStructArrayCase : public SSBOLayoutCase
 {
 public:
-	BlockUnsizedNestedStructArrayCase (tcu::TestContext& testCtx, const char* name, const char* description, deUint32 layoutFlags, BufferMode bufferMode, int numInstances, MatrixLoadFlags matrixLoadFlag, bool usePhysStorageBuffer)
-		: SSBOLayoutCase	(testCtx, name, description, bufferMode, matrixLoadFlag, usePhysStorageBuffer)
+	BlockUnsizedNestedStructArrayCase (tcu::TestContext& testCtx, const char* name, const char* description, deUint32 layoutFlags, BufferMode bufferMode, int numInstances, MatrixLoadFlags matrixLoadFlag, MatrixStoreFlags matrixStoreFlag, bool usePhysStorageBuffer)
+		: SSBOLayoutCase	(testCtx, name, description, bufferMode, matrixLoadFlag, matrixStoreFlag, usePhysStorageBuffer)
 		, m_layoutFlags		(layoutFlags)
 		, m_numInstances	(numInstances)
 	{
@@ -733,8 +738,8 @@
 class BlockMultiBasicTypesCase : public SSBOLayoutCase
 {
 public:
-	BlockMultiBasicTypesCase	(tcu::TestContext& testCtx, const char* name, const char* description, deUint32 flagsA, deUint32 flagsB, BufferMode bufferMode, int numInstances, MatrixLoadFlags matrixLoadFlag, bool usePhysStorageBuffer)
-		: SSBOLayoutCase		(testCtx, name, description, bufferMode, matrixLoadFlag, usePhysStorageBuffer)
+	BlockMultiBasicTypesCase	(tcu::TestContext& testCtx, const char* name, const char* description, deUint32 flagsA, deUint32 flagsB, BufferMode bufferMode, int numInstances, MatrixLoadFlags matrixLoadFlag, MatrixStoreFlags matrixStoreFlag, bool usePhysStorageBuffer)
+		: SSBOLayoutCase		(testCtx, name, description, bufferMode, matrixLoadFlag, matrixStoreFlag, usePhysStorageBuffer)
 		, m_flagsA				(flagsA)
 		, m_flagsB				(flagsB)
 		, m_numInstances		(numInstances)
@@ -772,8 +777,8 @@
 class BlockMultiNestedStructCase : public SSBOLayoutCase
 {
 public:
-	BlockMultiNestedStructCase (tcu::TestContext& testCtx, const char* name, const char* description, deUint32 flagsA, deUint32 flagsB, BufferMode bufferMode, int numInstances, MatrixLoadFlags matrixLoadFlag, bool usePhysStorageBuffer)
-		: SSBOLayoutCase	(testCtx, name, description, bufferMode, matrixLoadFlag, usePhysStorageBuffer)
+	BlockMultiNestedStructCase (tcu::TestContext& testCtx, const char* name, const char* description, deUint32 flagsA, deUint32 flagsB, BufferMode bufferMode, int numInstances, MatrixLoadFlags matrixLoadFlag, MatrixStoreFlags matrixStoreFlag, bool usePhysStorageBuffer)
+		: SSBOLayoutCase	(testCtx, name, description, bufferMode, matrixLoadFlag, matrixStoreFlag, usePhysStorageBuffer)
 		, m_flagsA			(flagsA)
 		, m_flagsB			(flagsB)
 		, m_numInstances	(numInstances)
@@ -1141,7 +1146,7 @@
 
 	static const struct
 	{
-		const char*							name;
+		const char*						name;
 		SSBOLayoutCase::BufferMode		mode;
 	} bufferModes[] =
 	{
@@ -1149,6 +1154,21 @@
 		{ "single_buffer",		SSBOLayoutCase::BUFFERMODE_SINGLE	}
 	};
 
+	using SuffixLoadFlag	= pair<string, MatrixLoadFlags>;
+	using SuffixStoreFlag	= pair<string, MatrixStoreFlags>;
+
+	static const array<SuffixLoadFlag, 2> matrixLoadTypes =
+	{{
+		SuffixLoadFlag( "",				LOAD_FULL_MATRIX		),
+		SuffixLoadFlag( "_comp_access",	LOAD_MATRIX_COMPONENTS	),
+	}};
+
+	static const array<SuffixStoreFlag, 2> matrixStoreTypes =
+	{{
+		SuffixStoreFlag( "",			STORE_FULL_MATRIX		),
+		SuffixStoreFlag( "_store_cols",	STORE_MATRIX_COLUMNS	),
+	}};
+
 	// ssbo.single_basic_type
 	{
 		tcu::TestCaseGroup* singleBasicTypeGroup = new tcu::TestCaseGroup(m_testCtx, "single_basic_type", "Single basic variable in single buffer");
@@ -1165,7 +1185,7 @@
 				const char*		typeName	= glu::getDataTypeName(type);
 
 				if (!glu::dataTypeSupportsPrecisionModifier(type))
-					layoutGroup->addChild(new BlockBasicTypeCase(m_testCtx, typeName, "", VarType(type, glu::PRECISION_LAST), layoutFlags[layoutFlagNdx].flags, 0, LOAD_FULL_MATRIX, m_usePhysStorageBuffer));
+					layoutGroup->addChild(new BlockBasicTypeCase(m_testCtx, typeName, "", VarType(type, glu::PRECISION_LAST), layoutFlags[layoutFlagNdx].flags, 0, LOAD_FULL_MATRIX, STORE_FULL_MATRIX, m_usePhysStorageBuffer));
 				else
 				{
 					for (int precNdx = 0; precNdx < glu::PRECISION_LAST; precNdx++)
@@ -1173,7 +1193,7 @@
 						const glu::Precision	precision	= glu::Precision(precNdx);
 						const string			caseName	= string(glu::getPrecisionName(precision)) + "_" + typeName;
 
-						layoutGroup->addChild(new BlockBasicTypeCase(m_testCtx, caseName.c_str(), "", VarType(type, precision), layoutFlags[layoutFlagNdx].flags, 0, LOAD_FULL_MATRIX, m_usePhysStorageBuffer));
+						layoutGroup->addChild(new BlockBasicTypeCase(m_testCtx, caseName.c_str(), "", VarType(type, precision), layoutFlags[layoutFlagNdx].flags, 0, LOAD_FULL_MATRIX, STORE_FULL_MATRIX, m_usePhysStorageBuffer));
 					}
 				}
 
@@ -1186,8 +1206,9 @@
 							const glu::Precision	precision	= glu::Precision(precNdx);
 							const string			caseName	= string(matrixFlags[matFlagNdx].name) + "_" + string(glu::getPrecisionName(precision)) + "_" + typeName;
 
-							layoutGroup->addChild(new BlockBasicTypeCase(m_testCtx, caseName.c_str(),					 "", glu::VarType(type, precision), layoutFlags[layoutFlagNdx].flags|matrixFlags[matFlagNdx].flags, 0, LOAD_FULL_MATRIX, m_usePhysStorageBuffer));
-							layoutGroup->addChild(new BlockBasicTypeCase(m_testCtx, (caseName + "_comp_access").c_str(), "", glu::VarType(type, precision), layoutFlags[layoutFlagNdx].flags|matrixFlags[matFlagNdx].flags, 0, LOAD_MATRIX_COMPONENTS, m_usePhysStorageBuffer));
+							for (const auto& loadType	: matrixLoadTypes)
+							for (const auto& storeType	: matrixStoreTypes)
+								layoutGroup->addChild(new BlockBasicTypeCase(m_testCtx, (caseName + loadType.first + storeType.first).c_str(), "", glu::VarType(type, precision), layoutFlags[layoutFlagNdx].flags|matrixFlags[matFlagNdx].flags, 0, loadType.second, storeType.second, m_usePhysStorageBuffer));
 						}
 					}
 				}
@@ -1213,18 +1234,17 @@
 
 				layoutGroup->addChild(new BlockBasicTypeCase(m_testCtx, typeName, "",
 															 VarType(VarType(type, !glu::dataTypeSupportsPrecisionModifier(type) ? glu::PRECISION_LAST : glu::PRECISION_HIGHP), arraySize),
-															 layoutFlags[layoutFlagNdx].flags, 0, LOAD_FULL_MATRIX, m_usePhysStorageBuffer));
+															 layoutFlags[layoutFlagNdx].flags, 0, LOAD_FULL_MATRIX, STORE_FULL_MATRIX, m_usePhysStorageBuffer));
 
 				if (glu::isDataTypeMatrix(type))
 				{
 					for (int matFlagNdx = 0; matFlagNdx < DE_LENGTH_OF_ARRAY(matrixFlags); matFlagNdx++)
 					{
-						layoutGroup->addChild(new BlockBasicTypeCase(m_testCtx, (string(matrixFlags[matFlagNdx].name) + "_" + typeName).c_str(), "",
-																	 VarType(VarType(type, glu::PRECISION_HIGHP), arraySize),
-																	 layoutFlags[layoutFlagNdx].flags|matrixFlags[matFlagNdx].flags, 0, LOAD_FULL_MATRIX, m_usePhysStorageBuffer));
-						layoutGroup->addChild(new BlockBasicTypeCase(m_testCtx, (string(matrixFlags[matFlagNdx].name) + "_" + typeName + "_comp_access").c_str(), "",
-																	 VarType(VarType(type, glu::PRECISION_HIGHP), arraySize),
-																	 layoutFlags[layoutFlagNdx].flags|matrixFlags[matFlagNdx].flags, 0, LOAD_MATRIX_COMPONENTS, m_usePhysStorageBuffer));
+						for (const auto& loadType	: matrixLoadTypes)
+						for (const auto& storeType	: matrixStoreTypes)
+							layoutGroup->addChild(new BlockBasicTypeCase(m_testCtx, (string(matrixFlags[matFlagNdx].name) + "_" + typeName + loadType.first + storeType.first).c_str(), "",
+																		 VarType(VarType(type, glu::PRECISION_HIGHP), arraySize),
+																		 layoutFlags[layoutFlagNdx].flags|matrixFlags[matFlagNdx].flags, 0, loadType.second, storeType.second, m_usePhysStorageBuffer));
 					}
 				}
 			}
@@ -1249,18 +1269,17 @@
 
 				layoutGroup->addChild(new BlockBasicUnsizedArrayCase(m_testCtx, typeName, "",
 																	 VarType(type, !glu::dataTypeSupportsPrecisionModifier(type) ? glu::PRECISION_LAST : glu::PRECISION_HIGHP),
-																	 arraySize, layoutFlags[layoutFlagNdx].flags, LOAD_FULL_MATRIX, m_usePhysStorageBuffer));
+																	 arraySize, layoutFlags[layoutFlagNdx].flags, LOAD_FULL_MATRIX, STORE_FULL_MATRIX, m_usePhysStorageBuffer));
 
 				if (glu::isDataTypeMatrix(type))
 				{
 					for (int matFlagNdx = 0; matFlagNdx < DE_LENGTH_OF_ARRAY(matrixFlags); matFlagNdx++)
 					{
-						layoutGroup->addChild(new BlockBasicUnsizedArrayCase(m_testCtx, (string(matrixFlags[matFlagNdx].name) + "_" + typeName).c_str(), "",
-																			 VarType(type, glu::PRECISION_HIGHP), arraySize,
-																			 layoutFlags[layoutFlagNdx].flags|matrixFlags[matFlagNdx].flags, LOAD_FULL_MATRIX, m_usePhysStorageBuffer));
-						layoutGroup->addChild(new BlockBasicUnsizedArrayCase(m_testCtx, (string(matrixFlags[matFlagNdx].name) + "_" + typeName + "_comp_access").c_str(), "",
-																			 VarType(type, glu::PRECISION_HIGHP), arraySize,
-																			 layoutFlags[layoutFlagNdx].flags|matrixFlags[matFlagNdx].flags, LOAD_MATRIX_COMPONENTS, m_usePhysStorageBuffer));
+						for (const auto& loadType	: matrixLoadTypes)
+						for (const auto& storeType	: matrixStoreTypes)
+							layoutGroup->addChild(new BlockBasicUnsizedArrayCase(m_testCtx, (string(matrixFlags[matFlagNdx].name) + "_" + typeName + loadType.first + storeType.first).c_str(), "",
+																				 VarType(type, glu::PRECISION_HIGHP), arraySize,
+																				 layoutFlags[layoutFlagNdx].flags|matrixFlags[matFlagNdx].flags, loadType.second, storeType.second, m_usePhysStorageBuffer));
 					}
 				}
 			}
@@ -1286,18 +1305,17 @@
 				const VarType	childType	(VarType(type, !glu::dataTypeSupportsPrecisionModifier(type) ? glu::PRECISION_LAST : glu::PRECISION_HIGHP), childSize);
 				const VarType	fullType	(childType, parentSize);
 
-				layoutGroup->addChild(new BlockBasicTypeCase(m_testCtx, typeName, "", fullType, layoutFlags[layoutFlagNdx].flags, 0, LOAD_FULL_MATRIX, m_usePhysStorageBuffer));
+				layoutGroup->addChild(new BlockBasicTypeCase(m_testCtx, typeName, "", fullType, layoutFlags[layoutFlagNdx].flags, 0, LOAD_FULL_MATRIX, STORE_FULL_MATRIX, m_usePhysStorageBuffer));
 
 				if (glu::isDataTypeMatrix(type))
 				{
 					for (int matFlagNdx = 0; matFlagNdx < DE_LENGTH_OF_ARRAY(matrixFlags); matFlagNdx++)
 					{
-						layoutGroup->addChild(new BlockBasicTypeCase(m_testCtx, (string(matrixFlags[matFlagNdx].name) + "_" + typeName).c_str(), "",
-																	 fullType,
-																	 layoutFlags[layoutFlagNdx].flags|matrixFlags[matFlagNdx].flags, 0, LOAD_FULL_MATRIX, m_usePhysStorageBuffer));
-						layoutGroup->addChild(new BlockBasicTypeCase(m_testCtx, (string(matrixFlags[matFlagNdx].name) + "_" + typeName + "_comp_access").c_str(), "",
-																	 fullType,
-																	 layoutFlags[layoutFlagNdx].flags|matrixFlags[matFlagNdx].flags, 0, LOAD_MATRIX_COMPONENTS, m_usePhysStorageBuffer));
+						for (const auto& loadType	: matrixLoadTypes)
+						for (const auto& storeType	: matrixStoreTypes)
+							layoutGroup->addChild(new BlockBasicTypeCase(m_testCtx, (string(matrixFlags[matFlagNdx].name) + "_" + typeName + loadType.first + storeType.first).c_str(), "",
+																		 fullType,
+																		 layoutFlags[layoutFlagNdx].flags|matrixFlags[matFlagNdx].flags, 0, loadType.second, storeType.second, m_usePhysStorageBuffer));
 					}
 				}
 			}
@@ -1325,18 +1343,17 @@
 				const VarType	childType1	(childType0, childSize1);
 				const VarType	fullType	(childType1, parentSize);
 
-				layoutGroup->addChild(new BlockBasicTypeCase(m_testCtx, typeName, "", fullType, layoutFlags[layoutFlagNdx].flags, 0, LOAD_FULL_MATRIX, m_usePhysStorageBuffer));
+				layoutGroup->addChild(new BlockBasicTypeCase(m_testCtx, typeName, "", fullType, layoutFlags[layoutFlagNdx].flags, 0, LOAD_FULL_MATRIX, STORE_FULL_MATRIX, m_usePhysStorageBuffer));
 
 				if (glu::isDataTypeMatrix(type))
 				{
 					for (int matFlagNdx = 0; matFlagNdx < DE_LENGTH_OF_ARRAY(matrixFlags); matFlagNdx++)
 					{
-						layoutGroup->addChild(new BlockBasicTypeCase(m_testCtx, (string(matrixFlags[matFlagNdx].name) + "_" + typeName).c_str(), "",
-																	 fullType,
-																	 layoutFlags[layoutFlagNdx].flags|matrixFlags[matFlagNdx].flags, 0, LOAD_FULL_MATRIX, m_usePhysStorageBuffer));
-						layoutGroup->addChild(new BlockBasicTypeCase(m_testCtx, (string(matrixFlags[matFlagNdx].name) + "_" + typeName + "_comp_access").c_str(), "",
-																	 fullType,
-																	 layoutFlags[layoutFlagNdx].flags|matrixFlags[matFlagNdx].flags, 0, LOAD_MATRIX_COMPONENTS, m_usePhysStorageBuffer));
+						for (const auto& loadType	: matrixLoadTypes)
+						for (const auto& storeType	: matrixStoreTypes)
+							layoutGroup->addChild(new BlockBasicTypeCase(m_testCtx, (string(matrixFlags[matFlagNdx].name) + "_" + typeName + loadType.first + storeType.first).c_str(), "",
+																		 fullType,
+																		 layoutFlags[layoutFlagNdx].flags|matrixFlags[matFlagNdx].flags, 0, loadType.second, storeType.second, m_usePhysStorageBuffer));
 					}
 				}
 			}
@@ -1363,18 +1380,17 @@
 				const VarType	childType0	(VarType(type, !glu::dataTypeSupportsPrecisionModifier(type) ? glu::PRECISION_LAST : glu::PRECISION_HIGHP), childSize0);
 				const VarType	childType1	(childType0, childSize1);
 
-				layoutGroup->addChild(new BlockBasicUnsizedArrayCase(m_testCtx, typeName, "", childType1, parentSize, layoutFlags[layoutFlagNdx].flags, LOAD_FULL_MATRIX, m_usePhysStorageBuffer));
+				layoutGroup->addChild(new BlockBasicUnsizedArrayCase(m_testCtx, typeName, "", childType1, parentSize, layoutFlags[layoutFlagNdx].flags, LOAD_FULL_MATRIX, STORE_FULL_MATRIX, m_usePhysStorageBuffer));
 
 				if (glu::isDataTypeMatrix(type))
 				{
 					for (int matFlagNdx = 0; matFlagNdx < DE_LENGTH_OF_ARRAY(matrixFlags); matFlagNdx++)
 					{
-						layoutGroup->addChild(new BlockBasicUnsizedArrayCase(m_testCtx, (string(matrixFlags[matFlagNdx].name) + "_" + typeName).c_str(), "",
-																			 childType1, parentSize,
-																			 layoutFlags[layoutFlagNdx].flags|matrixFlags[matFlagNdx].flags, LOAD_FULL_MATRIX, m_usePhysStorageBuffer));
-						layoutGroup->addChild(new BlockBasicUnsizedArrayCase(m_testCtx, (string(matrixFlags[matFlagNdx].name) + "_" + typeName + "_comp_access").c_str(), "",
-																			 childType1, parentSize,
-																			 layoutFlags[layoutFlagNdx].flags|matrixFlags[matFlagNdx].flags, LOAD_MATRIX_COMPONENTS, m_usePhysStorageBuffer));
+						for (const auto& loadType	: matrixLoadTypes)
+						for (const auto& storeType	: matrixStoreTypes)
+							layoutGroup->addChild(new BlockBasicUnsizedArrayCase(m_testCtx, (string(matrixFlags[matFlagNdx].name) + "_" + typeName + loadType.first + storeType.first).c_str(), "",
+																				 childType1, parentSize,
+																				 layoutFlags[layoutFlagNdx].flags|matrixFlags[matFlagNdx].flags, loadType.second, storeType.second, m_usePhysStorageBuffer));
 					}
 				}
 			}
@@ -1404,8 +1420,9 @@
 					if (isArray)
 						caseName += "_instance_array";
 
-					modeGroup->addChild(new BlockSingleStructCase(m_testCtx, caseName.c_str(),					  "", caseFlags, bufferModes[modeNdx].mode, isArray ? 3 : 0, LOAD_FULL_MATRIX, m_usePhysStorageBuffer));
-					modeGroup->addChild(new BlockSingleStructCase(m_testCtx, (caseName + "_comp_access").c_str(), "", caseFlags, bufferModes[modeNdx].mode, isArray ? 3 : 0, LOAD_MATRIX_COMPONENTS, m_usePhysStorageBuffer));
+					for (const auto& loadType	: matrixLoadTypes)
+					for (const auto& storeType	: matrixStoreTypes)
+						modeGroup->addChild(new BlockSingleStructCase(m_testCtx, (caseName + loadType.first + storeType.first).c_str(), "", caseFlags, bufferModes[modeNdx].mode, isArray ? 3 : 0, loadType.second, storeType.second, m_usePhysStorageBuffer));
 				}
 			}
 		}
@@ -1434,8 +1451,9 @@
 					if (isArray)
 						baseName += "_instance_array";
 
-					modeGroup->addChild(new BlockSingleStructArrayCase(m_testCtx, baseName.c_str(),						"", baseFlags, bufferModes[modeNdx].mode, isArray ? 3 : 0, LOAD_FULL_MATRIX, m_usePhysStorageBuffer));
-					modeGroup->addChild(new BlockSingleStructArrayCase(m_testCtx, (baseName + "_comp_access").c_str(),	"", baseFlags, bufferModes[modeNdx].mode, isArray ? 3 : 0, LOAD_MATRIX_COMPONENTS, m_usePhysStorageBuffer));
+					for (const auto& loadType	: matrixLoadTypes)
+					for (const auto& storeType	: matrixStoreTypes)
+						modeGroup->addChild(new BlockSingleStructArrayCase(m_testCtx, (baseName + loadType.first + storeType.first).c_str(), "", baseFlags, bufferModes[modeNdx].mode, isArray ? 3 : 0, loadType.second, storeType.second, m_usePhysStorageBuffer));
 				}
 			}
 		}
@@ -1464,8 +1482,9 @@
 					if (isArray)
 						baseName += "_instance_array";
 
-					modeGroup->addChild(new BlockSingleNestedStructCase(m_testCtx, baseName.c_str(),					"", baseFlags, bufferModes[modeNdx].mode, isArray ? 3 : 0, LOAD_FULL_MATRIX, m_usePhysStorageBuffer));
-					modeGroup->addChild(new BlockSingleNestedStructCase(m_testCtx, (baseName + "_comp_access").c_str(),	"", baseFlags, bufferModes[modeNdx].mode, isArray ? 3 : 0, LOAD_MATRIX_COMPONENTS, m_usePhysStorageBuffer));
+					for (const auto& loadType	: matrixLoadTypes)
+					for (const auto& storeType	: matrixStoreTypes)
+						modeGroup->addChild(new BlockSingleNestedStructCase(m_testCtx, (baseName + loadType.first + storeType.first).c_str(), "", baseFlags, bufferModes[modeNdx].mode, isArray ? 3 : 0, loadType.second, storeType.second, m_usePhysStorageBuffer));
 				}
 			}
 		}
@@ -1494,8 +1513,9 @@
 					if (isArray)
 						baseName += "_instance_array";
 
-					modeGroup->addChild(new BlockSingleNestedStructArrayCase(m_testCtx, baseName.c_str(),					 "", baseFlags, bufferModes[modeNdx].mode, isArray ? 3 : 0, LOAD_FULL_MATRIX, m_usePhysStorageBuffer));
-					modeGroup->addChild(new BlockSingleNestedStructArrayCase(m_testCtx, (baseName + "_comp_access").c_str(), "", baseFlags, bufferModes[modeNdx].mode, isArray ? 3 : 0, LOAD_MATRIX_COMPONENTS, m_usePhysStorageBuffer));
+					for (const auto& loadType	: matrixLoadTypes)
+					for (const auto& storeType	: matrixStoreTypes)
+						modeGroup->addChild(new BlockSingleNestedStructArrayCase(m_testCtx, (baseName + loadType.first + storeType.first).c_str(), "", baseFlags, bufferModes[modeNdx].mode, isArray ? 3 : 0, loadType.second, storeType.second, m_usePhysStorageBuffer));
 				}
 			}
 		}
@@ -1524,8 +1544,9 @@
 					if (isArray)
 						baseName += "_instance_array";
 
-					modeGroup->addChild(new BlockUnsizedStructArrayCase(m_testCtx, baseName.c_str(),					"", baseFlags, bufferModes[modeNdx].mode, isArray ? 3 : 0, LOAD_FULL_MATRIX, m_usePhysStorageBuffer));
-					modeGroup->addChild(new BlockUnsizedStructArrayCase(m_testCtx, (baseName + "_comp_access").c_str(),	"", baseFlags, bufferModes[modeNdx].mode, isArray ? 3 : 0, LOAD_MATRIX_COMPONENTS, m_usePhysStorageBuffer));
+					for (const auto& loadType	: matrixLoadTypes)
+					for (const auto& storeType	: matrixStoreTypes)
+						modeGroup->addChild(new BlockUnsizedStructArrayCase(m_testCtx, (baseName + loadType.first + storeType.first).c_str(), "", baseFlags, bufferModes[modeNdx].mode, isArray ? 3 : 0, loadType.second, storeType.second, m_usePhysStorageBuffer));
 				}
 			}
 		}
@@ -1554,8 +1575,9 @@
 					if (isArray)
 						baseName += "_instance_array";
 
-					modeGroup->addChild(new Block2LevelUnsizedStructArrayCase(m_testCtx, baseName.c_str(),						"", baseFlags, bufferModes[modeNdx].mode, isArray ? 3 : 0, LOAD_FULL_MATRIX, m_usePhysStorageBuffer));
-					modeGroup->addChild(new Block2LevelUnsizedStructArrayCase(m_testCtx, (baseName + "_comp_access").c_str(),	"", baseFlags, bufferModes[modeNdx].mode, isArray ? 3 : 0, LOAD_MATRIX_COMPONENTS, m_usePhysStorageBuffer));
+					for (const auto& loadType	: matrixLoadTypes)
+					for (const auto& storeType	: matrixStoreTypes)
+						modeGroup->addChild(new Block2LevelUnsizedStructArrayCase(m_testCtx, (baseName + loadType.first + storeType.first).c_str(), "", baseFlags, bufferModes[modeNdx].mode, isArray ? 3 : 0, loadType.second, storeType.second, m_usePhysStorageBuffer));
 				}
 			}
 		}
@@ -1584,8 +1606,9 @@
 					if (isArray)
 						baseName += "_instance_array";
 
-					modeGroup->addChild(new BlockUnsizedNestedStructArrayCase(m_testCtx, baseName.c_str(),					  "", baseFlags, bufferModes[modeNdx].mode, isArray ? 3 : 0, LOAD_FULL_MATRIX, m_usePhysStorageBuffer));
-					modeGroup->addChild(new BlockUnsizedNestedStructArrayCase(m_testCtx, (baseName + "_comp_access").c_str(), "", baseFlags, bufferModes[modeNdx].mode, isArray ? 3 : 0, LOAD_MATRIX_COMPONENTS, m_usePhysStorageBuffer));
+					for (const auto& loadType	: matrixLoadTypes)
+					for (const auto& storeType	: matrixStoreTypes)
+						modeGroup->addChild(new BlockUnsizedNestedStructArrayCase(m_testCtx, (baseName + loadType.first + storeType.first).c_str(), "", baseFlags, bufferModes[modeNdx].mode, isArray ? 3 : 0, loadType.second, storeType.second, m_usePhysStorageBuffer));
 				}
 			}
 		}
@@ -1609,18 +1632,17 @@
 
 				layoutGroup->addChild(new BlockBasicTypeCase(m_testCtx, typeName, "",
 															 VarType(type, !glu::dataTypeSupportsPrecisionModifier(type) ? glu::PRECISION_LAST : glu::PRECISION_HIGHP),
-															 layoutFlags[layoutFlagNdx].flags, numInstances, LOAD_FULL_MATRIX, m_usePhysStorageBuffer));
+															 layoutFlags[layoutFlagNdx].flags, numInstances, LOAD_FULL_MATRIX, STORE_FULL_MATRIX, m_usePhysStorageBuffer));
 
 				if (glu::isDataTypeMatrix(type))
 				{
 					for (int matFlagNdx = 0; matFlagNdx < DE_LENGTH_OF_ARRAY(matrixFlags); matFlagNdx++)
 					{
-						layoutGroup->addChild(new BlockBasicTypeCase(m_testCtx, (string(matrixFlags[matFlagNdx].name) + "_" + typeName).c_str(), "",
-																	 VarType(type, glu::PRECISION_HIGHP), layoutFlags[layoutFlagNdx].flags|matrixFlags[matFlagNdx].flags,
-																	 numInstances, LOAD_FULL_MATRIX, m_usePhysStorageBuffer));
-						layoutGroup->addChild(new BlockBasicTypeCase(m_testCtx, (string(matrixFlags[matFlagNdx].name) + "_" + typeName + "_comp_access").c_str(), "",
-																	 VarType(type, glu::PRECISION_HIGHP), layoutFlags[layoutFlagNdx].flags|matrixFlags[matFlagNdx].flags,
-																	 numInstances, LOAD_MATRIX_COMPONENTS, m_usePhysStorageBuffer));
+						for (const auto& loadType	: matrixLoadTypes)
+						for (const auto& storeType	: matrixStoreTypes)
+							layoutGroup->addChild(new BlockBasicTypeCase(m_testCtx, (string(matrixFlags[matFlagNdx].name) + "_" + typeName + loadType.first + storeType.first).c_str(), "",
+																		 VarType(type, glu::PRECISION_HIGHP), layoutFlags[layoutFlagNdx].flags|matrixFlags[matFlagNdx].flags,
+																		 numInstances, loadType.second, storeType.second, m_usePhysStorageBuffer));
 					}
 				}
 			}
@@ -1647,8 +1669,9 @@
 					if (isArray)
 						baseName += "_instance_array";
 
-					modeGroup->addChild(new BlockMultiBasicTypesCase(m_testCtx, baseName.c_str(),					 "", baseFlags, baseFlags, bufferModes[modeNdx].mode, isArray ? 3 : 0, LOAD_FULL_MATRIX, m_usePhysStorageBuffer));
-					modeGroup->addChild(new BlockMultiBasicTypesCase(m_testCtx, (baseName + "_comp_access").c_str(), "", baseFlags, baseFlags, bufferModes[modeNdx].mode, isArray ? 3 : 0, LOAD_MATRIX_COMPONENTS, m_usePhysStorageBuffer));
+					for (const auto& loadType	: matrixLoadTypes)
+					for (const auto& storeType	: matrixStoreTypes)
+						modeGroup->addChild(new BlockMultiBasicTypesCase(m_testCtx, (baseName + loadType.first + storeType.first).c_str(), "", baseFlags, baseFlags, bufferModes[modeNdx].mode, isArray ? 3 : 0, loadType.second, storeType.second, m_usePhysStorageBuffer));
 				}
 			}
 
@@ -1660,8 +1683,9 @@
 				if (isArray)
 					baseName += "_instance_array";
 
-				modeGroup->addChild(new BlockMultiBasicTypesCase(m_testCtx, baseName.c_str(),					 "", baseFlags, baseFlags, bufferModes[modeNdx].mode, isArray ? 3 : 0, LOAD_FULL_MATRIX, m_usePhysStorageBuffer));
-				modeGroup->addChild(new BlockMultiBasicTypesCase(m_testCtx, (baseName + "_comp_access").c_str(), "", baseFlags, baseFlags, bufferModes[modeNdx].mode, isArray ? 3 : 0, LOAD_MATRIX_COMPONENTS, m_usePhysStorageBuffer));
+				for (const auto& loadType	: matrixLoadTypes)
+				for (const auto& storeType	: matrixStoreTypes)
+					modeGroup->addChild(new BlockMultiBasicTypesCase(m_testCtx, (baseName + loadType.first + storeType.first).c_str(), "", baseFlags, baseFlags, bufferModes[modeNdx].mode, isArray ? 3 : 0, loadType.second, storeType.second, m_usePhysStorageBuffer));
 			}
 		}
 	}
@@ -1686,8 +1710,9 @@
 					if (isArray)
 						baseName += "_instance_array";
 
-					modeGroup->addChild(new BlockMultiNestedStructCase(m_testCtx, baseName.c_str(),						"", baseFlags, baseFlags, bufferModes[modeNdx].mode, isArray ? 3 : 0, LOAD_FULL_MATRIX, m_usePhysStorageBuffer));
-					modeGroup->addChild(new BlockMultiNestedStructCase(m_testCtx, (baseName + "_comp_access").c_str(), "", baseFlags, baseFlags, bufferModes[modeNdx].mode, isArray ? 3 : 0, LOAD_MATRIX_COMPONENTS, m_usePhysStorageBuffer));
+					for (const auto& loadType	: matrixLoadTypes)
+					for (const auto& storeType	: matrixStoreTypes)
+						modeGroup->addChild(new BlockMultiNestedStructCase(m_testCtx, (baseName + loadType.first + storeType.first).c_str(), "", baseFlags, baseFlags, bufferModes[modeNdx].mode, isArray ? 3 : 0, loadType.second, storeType.second, m_usePhysStorageBuffer));
 				}
 			}
 		}
diff --git a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBallotBroadcastTests.cpp b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBallotBroadcastTests.cpp
index dbc7b25..a652849 100755
--- a/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBallotBroadcastTests.cpp
+++ b/external/vulkancts/modules/vulkan/subgroups/vktSubgroupsBallotBroadcastTests.cpp
@@ -83,7 +83,8 @@
 	VkFormat			format;
 	de::SharedPtr<bool>	geometryPointSizeSupported;
 	deBool				extShaderSubGroupBallotTests;
-	deBool				requiredSubgroupSize;
+	deBool				subgroupSizeControl;
+	int					requiredSubgroupSize;
 };
 
 std::string getExtHeader(CaseDefinition caseDef)
@@ -120,7 +121,11 @@
 		broadcast		= "subgroupBroadcast";
 		broadcastFirst	= "subgroupBroadcastFirst";
 		mask			= "mask = subgroupBallot(true);\n";
-		max = (int)subgroups::maxSupportedSubgroupSize();
+
+		if (caseDef.subgroupSizeControl)
+			max = caseDef.requiredSubgroupSize;
+		else
+			max = (int)subgroups::maxSupportedSubgroupSize();
 
 		bdy << "  uvec4 mask = subgroupBallot(true);\n"
 			<< "  uint sgSize = gl_SubgroupSize;\n"
@@ -131,21 +136,20 @@
 
 	if (caseDef.opType == OPTYPE_BROADCAST)
 	{
-		bdy	<< "  tempRes = 0x3;\n";
+		bdy	<< "  tempRes = 0x3;\n"
+			<< "  " << fmt << " ops[" << max << "];\n"
+			<< "  " << fmt << " d = data[sgInvocation];\n";
+
 		for (int i = 0; i < max; i++)
-		{
-			bdy << "  {\n"
-			<< "    const uint id = "<< i << ";\n"
-			<< "    " << fmt << " op = " << broadcast << "(data[sgInvocation], id);\n"
-			<< "    if ((id < sgSize) && subgroupBallotBitExtract(mask, id))\n"
+			bdy << "  ops[" << i << "] = " << broadcast << "(d, " << i << "u);\n";
+
+		bdy << "  for(int id = 0; id < sgSize; id++)\n"
+			<< "  {\n"
+			<< "    if (subgroupBallotBitExtract(mask, id) && ops[id] != data[id])\n"
 			<< "    {\n"
-			<< "      if (op != data[id])\n"
-			<< "      {\n"
-			<< "        tempRes = 0;\n"
-			<< "      }\n"
+			<< "      tempRes = 0;\n"
 			<< "    }\n"
-			<< "  }\n";
-		}
+			<< "  };\n";
 	}
 	else if (caseDef.opType == OPTYPE_BROADCAST_NONCONST)
 	{
@@ -265,7 +269,7 @@
 	if ((caseDef.opType == OPTYPE_BROADCAST_NONCONST) && !subgroups::isSubgroupBroadcastDynamicIdSupported(context))
 		TCU_THROW(NotSupportedError, "Device does not support SubgroupBroadcastDynamicId");
 
-	if (caseDef.requiredSubgroupSize)
+	if (caseDef.subgroupSizeControl)
 	{
 		if (!context.requireDeviceFunctionality("VK_EXT_subgroup_size_control"))
 			TCU_THROW(NotSupportedError, "Device does not support VK_EXT_subgroup_size_control extension");
@@ -284,6 +288,21 @@
 
 		if (subgroupSizeControlFeatures.computeFullSubgroups == DE_FALSE)
 			TCU_THROW(NotSupportedError, "Device does not support full subgroups in compute shaders");
+
+		VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
+		subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
+		subgroupSizeControlProperties.pNext = DE_NULL;
+		VkPhysicalDeviceProperties2 properties;
+		properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
+		properties.pNext = &subgroupSizeControlProperties;
+
+		context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
+
+		if (caseDef.requiredSubgroupSize < (int)subgroupSizeControlProperties.minSubgroupSize
+			|| caseDef.requiredSubgroupSize > (int)subgroupSizeControlProperties.maxSubgroupSize)
+		{
+			TCU_THROW(NotSupportedError, "Unsupported subgroup size");
+		}
 	}
 
 	*caseDef.geometryPointSizeSupported = subgroups::isTessellationAndGeometryPointSizeSupported(context);
@@ -344,35 +363,11 @@
 		inputData.numElements = caseDef.extShaderSubGroupBallotTests ? 64u : subgroups::maxSupportedSubgroupSize();
 		inputData.initializeType = subgroups::SSBOData::InitializeNonZero;
 
-		if (caseDef.requiredSubgroupSize == DE_FALSE)
+		if (caseDef.subgroupSizeControl)
+			return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkCompute,
+				caseDef.requiredSubgroupSize, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
+		else
 			return subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkCompute);
-
-		tcu::TestLog& log	= context.getTestContext().getLog();
-		VkPhysicalDeviceSubgroupSizeControlPropertiesEXT subgroupSizeControlProperties;
-		subgroupSizeControlProperties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT;
-		subgroupSizeControlProperties.pNext = DE_NULL;
-		VkPhysicalDeviceProperties2 properties;
-		properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
-		properties.pNext = &subgroupSizeControlProperties;
-
-		context.getInstanceInterface().getPhysicalDeviceProperties2(context.getPhysicalDevice(), &properties);
-
-		log << tcu::TestLog::Message << "Testing required subgroup size range [" <<  subgroupSizeControlProperties.minSubgroupSize << ", "
-			<< subgroupSizeControlProperties.maxSubgroupSize << "]" << tcu::TestLog::EndMessage;
-
-		// According to the spec, requiredSubgroupSize must be a power-of-two integer.
-		for (deUint32 size = subgroupSizeControlProperties.minSubgroupSize; size <= subgroupSizeControlProperties.maxSubgroupSize; size *= 2)
-		{
-			tcu::TestStatus result = subgroups::makeComputeTest(context, VK_FORMAT_R32_UINT, &inputData, 1, DE_NULL, checkCompute,
-																size, VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT);
-			if (result.getCode() != QP_TEST_RESULT_PASS)
-			{
-				log << tcu::TestLog::Message << "subgroupSize " << size << " failed" << tcu::TestLog::EndMessage;
-				return result;
-			}
-		}
-
-		return tcu::TestStatus::pass("OK");
 	}
 	else
 	{
@@ -454,22 +449,27 @@
 			const std::string name = getOpTypeCaseName(opTypeIndex) + "_" + subgroups::getFormatNameForGLSL(format);
 
 			{
-				CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, format, de::SharedPtr<bool>(new bool), DE_FALSE, DE_FALSE};
+				CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_COMPUTE_BIT, format, de::SharedPtr<bool>(new bool), DE_FALSE, DE_FALSE, 0};
 				addFunctionCaseWithPrograms(computeGroup.get(), name, "", supportedCheck, initPrograms, test, caseDef);
 				caseDef.extShaderSubGroupBallotTests = DE_TRUE;
 				if (formatTypeIsSupportedARB)
 					addFunctionCaseWithPrograms(computeGroupARB.get(), name, "", supportedCheck, initPrograms, test, caseDef);
 
-				caseDef.extShaderSubGroupBallotTests = DE_FALSE;
-				caseDef.requiredSubgroupSize = DE_TRUE;
-				addFunctionCaseWithPrograms(computeGroup.get(), name + "_requiredsubgroupsize", "", supportedCheck, initPrograms, test, caseDef);
-				caseDef.extShaderSubGroupBallotTests = DE_TRUE;
-				if (formatTypeIsSupportedARB)
-					addFunctionCaseWithPrograms(computeGroupARB.get(), name + "_requiredsubgroupsize", "", supportedCheck, initPrograms, test, caseDef);
+				for (int subgroupSize = 1; subgroupSize <= (int)subgroups::maxSupportedSubgroupSize(); subgroupSize *= 2)
+				{
+					std::string testName = name + "_requiredsubgroupsize" + de::toString(subgroupSize);
+					caseDef.extShaderSubGroupBallotTests = DE_FALSE;
+					caseDef.subgroupSizeControl = DE_TRUE;
+					caseDef.requiredSubgroupSize = subgroupSize;
+					addFunctionCaseWithPrograms(computeGroup.get(), testName, "", supportedCheck, initPrograms, test, caseDef);
+					caseDef.extShaderSubGroupBallotTests = DE_TRUE;
+					if (formatTypeIsSupportedARB)
+						addFunctionCaseWithPrograms(computeGroupARB.get(), testName, "", supportedCheck, initPrograms, test, caseDef);
+				}
 			}
 
 			{
-				CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, format, de::SharedPtr<bool>(new bool), DE_FALSE, DE_FALSE};
+				CaseDefinition caseDef = {opTypeIndex, VK_SHADER_STAGE_ALL_GRAPHICS, format, de::SharedPtr<bool>(new bool), DE_FALSE, DE_FALSE, 0};
 				addFunctionCaseWithPrograms(graphicGroup.get(), name, "", supportedCheck, initPrograms, test, caseDef);
 				caseDef.extShaderSubGroupBallotTests = DE_TRUE;
 				if (formatTypeIsSupportedARB)
@@ -479,7 +479,7 @@
 
 			for (int stageIndex = 0; stageIndex < DE_LENGTH_OF_ARRAY(stages); ++stageIndex)
 			{
-				CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], format, de::SharedPtr<bool>(new bool), DE_FALSE, DE_FALSE};
+				CaseDefinition caseDef = {opTypeIndex, stages[stageIndex], format, de::SharedPtr<bool>(new bool), DE_FALSE, DE_FALSE, 0};
 				addFunctionCaseWithPrograms(framebufferGroup.get(), name + getShaderStageName(caseDef.shaderStage), "",
 							supportedCheck, initFrameBufferPrograms, noSSBOtest, caseDef);
 				caseDef.extShaderSubGroupBallotTests = DE_TRUE;
diff --git a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationCrossInstanceSharingTests.cpp b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationCrossInstanceSharingTests.cpp
index 8ccd654..8cf418a 100644
--- a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationCrossInstanceSharingTests.cpp
+++ b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationCrossInstanceSharingTests.cpp
@@ -538,63 +538,11 @@
 	return vk::allocateCommandBuffer(vkd, device, &allocateInfo);
 }
 
-de::MovePtr<vk::Allocation> allocateAndBindMemory (const vk::DeviceInterface&					vkd,
-												   vk::VkDevice									device,
-												   vk::VkBuffer									buffer,
-												   vk::VkExternalMemoryHandleTypeFlagBits	externalType,
-												   deUint32&									exportedMemoryTypeIndex,
-												   bool											dedicated,
-												   bool											getMemReq2Supported)
-{
-	vk::VkMemoryRequirements memoryRequirements = { 0u, 0u, 0u, };
-
-	if (getMemReq2Supported)
-	{
-		const vk::VkBufferMemoryRequirementsInfo2	requirementInfo =
-		{
-			vk::VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
-			DE_NULL,
-			buffer
-		};
-		vk::VkMemoryDedicatedRequirements			dedicatedRequirements =
-		{
-			vk::VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
-			DE_NULL,
-			VK_FALSE,
-			VK_FALSE
-		};
-		vk::VkMemoryRequirements2					requirements =
-		{
-			vk::VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
-			&dedicatedRequirements,
-			{ 0u, 0u, 0u, }
-		};
-		vkd.getBufferMemoryRequirements2(device, &requirementInfo, &requirements);
-
-		if (!dedicated && dedicatedRequirements.requiresDedicatedAllocation)
-			TCU_THROW(NotSupportedError, "Memory requires dedicated allocation");
-
-		memoryRequirements = requirements.memoryRequirements;
-	}
-	else
-	{
-		vkd.getBufferMemoryRequirements(device, buffer, &memoryRequirements);
-	}
-
-
-	vk::Move<vk::VkDeviceMemory> memory = allocateExportableMemory(vkd, device, memoryRequirements, externalType, dedicated ? buffer : (vk::VkBuffer)0, exportedMemoryTypeIndex);
-	VK_CHECK(vkd.bindBufferMemory(device, buffer, *memory, 0u));
-
-	return de::MovePtr<vk::Allocation>(new SimpleAllocation(vkd, device, memory.disown()));
-}
-
-de::MovePtr<vk::Allocation> allocateAndBindMemory (const vk::DeviceInterface&					vkd,
-												   vk::VkDevice									device,
-												   vk::VkImage									image,
-												   vk::VkExternalMemoryHandleTypeFlagBits	externalType,
-												   deUint32&									exportedMemoryTypeIndex,
-												   bool											dedicated,
-												   bool											getMemReq2Supported)
+vk::VkMemoryRequirements getMemoryRequirements(const vk::DeviceInterface&				vkd,
+											   vk::VkDevice								device,
+											   vk::VkImage								image,
+											   bool										dedicated,
+											   bool										getMemReq2Supported)
 {
 	vk::VkMemoryRequirements memoryRequirements = { 0u, 0u, 0u, };
 
@@ -631,106 +579,118 @@
 		vkd.getImageMemoryRequirements(device, image, &memoryRequirements);
 	}
 
-	vk::Move<vk::VkDeviceMemory> memory = allocateExportableMemory(vkd, device, memoryRequirements, externalType, dedicated ? image : (vk::VkImage)0, exportedMemoryTypeIndex);
-	VK_CHECK(vkd.bindImageMemory(device, image, *memory, 0u));
-
-	return de::MovePtr<vk::Allocation>(new SimpleAllocation(vkd, device, memory.disown()));
+	return memoryRequirements;
 }
 
-de::MovePtr<Resource> createResource (const vk::DeviceInterface&				vkd,
-									  vk::VkDevice								device,
-									  const ResourceDescription&				resourceDesc,
-									  const std::vector<deUint32>&				queueFamilyIndices,
-									  const OperationSupport&					readOp,
-									  const OperationSupport&					writeOp,
-									  vk::VkExternalMemoryHandleTypeFlagBits	externalType,
-									  deUint32&									exportedMemoryTypeIndex,
-									  bool										dedicated,
-									  bool										getMemReq2Supported)
+vk::VkMemoryRequirements getMemoryRequirements(const vk::DeviceInterface&				vkd,
+											   vk::VkDevice								device,
+											   vk::VkBuffer								buffer,
+											   bool										dedicated,
+											   bool										getMemReq2Supported)
 {
-	if (resourceDesc.type == RESOURCE_TYPE_IMAGE)
+	vk::VkMemoryRequirements memoryRequirements = { 0u, 0u, 0u, };
+
+	if (getMemReq2Supported)
 	{
-		const vk::VkExtent3D				extent					=
+		const vk::VkBufferMemoryRequirementsInfo2	requirementInfo =
 		{
-			(deUint32)resourceDesc.size.x(),
-			de::max(1u, (deUint32)resourceDesc.size.y()),
-			de::max(1u, (deUint32)resourceDesc.size.z())
-		};
-		const vk::VkImageSubresourceRange	subresourceRange		=
-		{
-			resourceDesc.imageAspect,
-			0u,
-			1u,
-			0u,
-			1u
-		};
-		const vk::VkImageSubresourceLayers	subresourceLayers		=
-		{
-			resourceDesc.imageAspect,
-			0u,
-			0u,
-			1u
-		};
-		const vk::VkExternalMemoryImageCreateInfo externalInfo =
-		{
-			vk::VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
+			vk::VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
 			DE_NULL,
-			(vk::VkExternalMemoryHandleTypeFlags)externalType
+			buffer
 		};
-		const vk::VkImageCreateInfo			createInfo				=
+		vk::VkMemoryDedicatedRequirements			dedicatedRequirements =
 		{
-			vk::VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
-			&externalInfo,
-			0u,
-
-			resourceDesc.imageType,
-			resourceDesc.imageFormat,
-			extent,
-			1u,
-			1u,
-			vk::VK_SAMPLE_COUNT_1_BIT,
-			vk::VK_IMAGE_TILING_OPTIMAL,
-			readOp.getInResourceUsageFlags() | writeOp.getOutResourceUsageFlags(),
-			vk::VK_SHARING_MODE_EXCLUSIVE,
-
-			(deUint32)queueFamilyIndices.size(),
-			&queueFamilyIndices[0],
-			vk::VK_IMAGE_LAYOUT_UNDEFINED
+			vk::VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
+			DE_NULL,
+			VK_FALSE,
+			VK_FALSE
 		};
+		vk::VkMemoryRequirements2					requirements =
+		{
+			vk::VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
+			&dedicatedRequirements,
+			{ 0u, 0u, 0u, }
+		};
+		vkd.getBufferMemoryRequirements2(device, &requirementInfo, &requirements);
 
-		vk::Move<vk::VkImage>			image		= vk::createImage(vkd, device, &createInfo);
-		de::MovePtr<vk::Allocation>		allocation	= allocateAndBindMemory(vkd, device, *image, externalType, exportedMemoryTypeIndex, dedicated, getMemReq2Supported);
+		if (!dedicated && dedicatedRequirements.requiresDedicatedAllocation)
+			TCU_THROW(NotSupportedError, "Memory requires dedicated allocation");
 
-		return de::MovePtr<Resource>(new Resource(image, allocation, extent, resourceDesc.imageType, resourceDesc.imageFormat, subresourceRange, subresourceLayers));
+		memoryRequirements = requirements.memoryRequirements;
 	}
 	else
 	{
-		const vk::VkDeviceSize							offset			= 0u;
-		const vk::VkDeviceSize							size			= static_cast<vk::VkDeviceSize>(resourceDesc.size.x());
-		const vk::VkBufferUsageFlags					usage			= readOp.getInResourceUsageFlags() | writeOp.getOutResourceUsageFlags();
-		const vk:: VkExternalMemoryBufferCreateInfo	externalInfo	=
-		{
-			vk::VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
-			DE_NULL,
-			(vk::VkExternalMemoryHandleTypeFlags)externalType
-		};
-		const vk::VkBufferCreateInfo					createInfo		=
-		{
-			vk::VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
-			&externalInfo,
-			0u,
-
-			size,
-			usage,
-			vk::VK_SHARING_MODE_EXCLUSIVE,
-			(deUint32)queueFamilyIndices.size(),
-			&queueFamilyIndices[0]
-		};
-		vk::Move<vk::VkBuffer>		buffer		= vk::createBuffer(vkd, device, &createInfo);
-		de::MovePtr<vk::Allocation>	allocation	= allocateAndBindMemory(vkd, device, *buffer, externalType, exportedMemoryTypeIndex, dedicated, getMemReq2Supported);
-
-		return de::MovePtr<Resource>(new Resource(resourceDesc.type, buffer, allocation, offset, size));
+		vkd.getBufferMemoryRequirements(device, buffer, &memoryRequirements);
 	}
+
+	return memoryRequirements;
+}
+
+Move<VkImage> createImage(const vk::DeviceInterface&				vkd,
+						  vk::VkDevice								device,
+						  const ResourceDescription&				resourceDesc,
+						  const vk::VkExtent3D						extent,
+						  const std::vector<deUint32>&				queueFamilyIndices,
+						  const OperationSupport&					readOp,
+						  const OperationSupport&					writeOp,
+						  vk::VkExternalMemoryHandleTypeFlagBits	externalType)
+{
+	const vk::VkExternalMemoryImageCreateInfo externalInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
+		DE_NULL,
+		(vk::VkExternalMemoryHandleTypeFlags)externalType
+	};
+	const vk::VkImageCreateInfo			createInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
+		&externalInfo,
+		0u,
+
+		resourceDesc.imageType,
+		resourceDesc.imageFormat,
+		extent,
+		1u,
+		1u,
+		vk::VK_SAMPLE_COUNT_1_BIT,
+		vk::VK_IMAGE_TILING_OPTIMAL,
+		readOp.getInResourceUsageFlags() | writeOp.getOutResourceUsageFlags(),
+		vk::VK_SHARING_MODE_EXCLUSIVE,
+
+		(deUint32)queueFamilyIndices.size(),
+		&queueFamilyIndices[0],
+		vk::VK_IMAGE_LAYOUT_UNDEFINED
+	};
+
+	return vk::createImage(vkd, device, &createInfo);
+}
+
+Move<VkBuffer> createBuffer(const vk::DeviceInterface&						vkd,
+							vk::VkDevice									device,
+							const vk::VkDeviceSize							size,
+							const vk::VkBufferUsageFlags					usage,
+							const vk::VkExternalMemoryHandleTypeFlagBits	memoryHandleType,
+							const std::vector<deUint32>&					queueFamilyIndices)
+{
+	const vk::VkExternalMemoryBufferCreateInfo	externalInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
+		DE_NULL,
+		(vk::VkExternalMemoryHandleTypeFlags)memoryHandleType
+	};
+	const vk::VkBufferCreateInfo				createInfo =
+	{
+		vk::VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
+		&externalInfo,
+		0u,
+
+		size,
+		usage,
+		vk::VK_SHARING_MODE_EXCLUSIVE,
+		(deUint32)queueFamilyIndices.size(),
+		&queueFamilyIndices[0]
+	};
+	return vk::createBuffer(vkd, device, &createInfo);
 }
 
 de::MovePtr<vk::Allocation> importAndBindMemory (const vk::DeviceInterface&					vkd,
@@ -1085,13 +1045,65 @@
 		const vk::Unique<vk::VkSemaphore>		semaphoreA			(createExportableSemaphoreType(m_vkdA, *m_deviceA, m_config.semaphoreType, m_semaphoreHandleType));
 		const vk::Unique<vk::VkSemaphore>		semaphoreB			(createSemaphoreType(m_vkdB, *m_deviceB, m_config.semaphoreType));
 
-		deUint32								exportedMemoryTypeIndex = ~0U;
-		const de::UniquePtr<Resource>			resourceA			(createResource(m_vkdA, *m_deviceA, m_config.resource, m_queueFamilyIndicesA, *m_supportReadOp, *m_supportWriteOp, m_memoryHandleType, exportedMemoryTypeIndex, m_config.dedicated, m_getMemReq2Supported));
+		const ResourceDescription&				resourceDesc		= m_config.resource;
+		de::MovePtr<Resource>					resourceA;
+
+		deUint32 exportedMemoryTypeIndex = ~0U;
+		if (resourceDesc.type == RESOURCE_TYPE_IMAGE)
+		{
+			const vk::VkExtent3D				extent =
+			{
+				(deUint32)resourceDesc.size.x(),
+				de::max(1u, (deUint32)resourceDesc.size.y()),
+				de::max(1u, (deUint32)resourceDesc.size.z())
+			};
+			const vk::VkImageSubresourceRange	subresourceRange =
+			{
+				resourceDesc.imageAspect,
+				0u,
+				1u,
+				0u,
+				1u
+			};
+			const vk::VkImageSubresourceLayers	subresourceLayers =
+			{
+				resourceDesc.imageAspect,
+				0u,
+				0u,
+				1u
+			};
+
+			vk::Move<vk::VkImage>			image					= createImage(m_vkdA, *m_deviceA, resourceDesc, extent, m_queueFamilyIndicesA,
+																				  *m_supportReadOp, *m_supportWriteOp, m_memoryHandleType);
+			const vk::VkMemoryRequirements	requirements			= getMemoryRequirements(m_vkdA, *m_deviceA, *image, m_config.dedicated, m_getMemReq2Supported);
+											exportedMemoryTypeIndex = chooseMemoryType(requirements.memoryTypeBits);
+			vk::Move<vk::VkDeviceMemory>	memory					= allocateExportableMemory(m_vkdA, *m_deviceA, requirements.size, exportedMemoryTypeIndex, m_memoryHandleType, m_config.dedicated ? *image : (vk::VkImage)0);
+
+			VK_CHECK(m_vkdA.bindImageMemory(*m_deviceA, *image, *memory, 0u));
+
+			de::MovePtr<vk::Allocation> allocation = de::MovePtr<vk::Allocation>(new SimpleAllocation(m_vkdA, *m_deviceA, memory.disown()));
+			resourceA = de::MovePtr<Resource>(new Resource(image, allocation, extent, resourceDesc.imageType, resourceDesc.imageFormat, subresourceRange, subresourceLayers));
+		}
+		else
+		{
+			const vk::VkDeviceSize				offset					= 0u;
+			const vk::VkDeviceSize				size					= static_cast<vk::VkDeviceSize>(resourceDesc.size.x());
+			const vk::VkBufferUsageFlags		usage					= m_supportReadOp->getInResourceUsageFlags() | m_supportWriteOp->getOutResourceUsageFlags();
+			vk::Move<vk::VkBuffer>				buffer					= createBuffer(m_vkdA, *m_deviceA, size, usage, m_memoryHandleType, m_queueFamilyIndicesA);
+			const vk::VkMemoryRequirements		requirements			= getMemoryRequirements(m_vkdA, *m_deviceA, *buffer, m_config.dedicated, m_getMemReq2Supported);
+												exportedMemoryTypeIndex = chooseMemoryType(requirements.memoryTypeBits);
+			vk::Move<vk::VkDeviceMemory>		memory					= allocateExportableMemory(m_vkdA, *m_deviceA, requirements.size, exportedMemoryTypeIndex, m_memoryHandleType, m_config.dedicated ? *buffer : (vk::VkBuffer)0);
+
+			VK_CHECK(m_vkdA.bindBufferMemory(*m_deviceA, *buffer, *memory, 0u));
+
+			de::MovePtr<vk::Allocation> allocation = de::MovePtr<vk::Allocation>(new SimpleAllocation(m_vkdA, *m_deviceA, memory.disown()));
+			resourceA = de::MovePtr<Resource>(new Resource(resourceDesc.type, buffer, allocation, offset, size));
+		}
 
 		NativeHandle							nativeMemoryHandle;
 		getMemoryNative(m_vkdA, *m_deviceA, resourceA->getMemory(), m_memoryHandleType, nativeMemoryHandle);
 
-		const de::UniquePtr<Resource>			resourceB			(importResource(m_vkdB, *m_deviceB, m_config.resource, m_queueFamilyIndicesB, *m_supportReadOp, *m_supportWriteOp, nativeMemoryHandle, m_memoryHandleType, exportedMemoryTypeIndex, m_config.dedicated));
+		const de::UniquePtr<Resource>			resourceB			(importResource(m_vkdB, *m_deviceB, resourceDesc, m_queueFamilyIndicesB, *m_supportReadOp, *m_supportWriteOp, nativeMemoryHandle, m_memoryHandleType, exportedMemoryTypeIndex, m_config.dedicated));
 
 
 		const vk::VkQueue						queueA				(getQueue(m_vkdA, *m_deviceA, queueFamilyA));
diff --git a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationSignalOrderTests.cpp b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationSignalOrderTests.cpp
index 0d95a19..8b1135b 100644
--- a/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationSignalOrderTests.cpp
+++ b/external/vulkancts/modules/vulkan/synchronization/vktSynchronizationSignalOrderTests.cpp
@@ -232,11 +232,9 @@
 	m_vkd.freeMemory(m_device, getMemory(), DE_NULL);
 }
 
-MovePtr<Allocation> allocateAndBindMemory (const DeviceInterface&				vkd,
-										   VkDevice								device,
-										   VkBuffer								buffer,
-										   VkExternalMemoryHandleTypeFlagBits	externalType,
-										   deUint32&							memoryIndex)
+vk::VkMemoryRequirements getMemoryRequirements (const DeviceInterface&				vkd,
+												 VkDevice							device,
+												 VkBuffer							buffer)
 {
 	const VkBufferMemoryRequirementsInfo2	requirementInfo =
 	{
@@ -251,20 +249,13 @@
 		{ 0u, 0u, 0u, }
 	};
 	vkd.getBufferMemoryRequirements2(device, &requirementInfo, &requirements);
-
-	Move<VkDeviceMemory>					memory			= allocateExportableMemory(vkd, device, requirements.memoryRequirements, externalType, buffer, memoryIndex);
-	VK_CHECK(vkd.bindBufferMemory(device, buffer, *memory, 0u));
-
-	return MovePtr<Allocation>(new SimpleAllocation(vkd, device, memory.disown()));
+	return requirements.memoryRequirements;
 }
 
-MovePtr<Allocation> allocateAndBindMemory (const DeviceInterface&				vkd,
-										   VkDevice								device,
-										   VkImage								image,
-										   VkExternalMemoryHandleTypeFlagBits	externalType,
-										   deUint32&							exportedMemoryTypeIndex)
+vk::VkMemoryRequirements getMemoryRequirements(const DeviceInterface&				vkd,
+												VkDevice							device,
+												VkImage								image)
 {
-	VkMemoryRequirements memoryRequirements = { 0u, 0u, 0u, };
 	const VkImageMemoryRequirementsInfo2	requirementInfo =
 	{
 		VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
@@ -279,15 +270,9 @@
 	};
 	vkd.getImageMemoryRequirements2(device, &requirementInfo, &requirements);
 
-	memoryRequirements = requirements.memoryRequirements;
-
-	Move<VkDeviceMemory> memory = allocateExportableMemory(vkd, device, memoryRequirements, externalType, image, exportedMemoryTypeIndex);
-	VK_CHECK(vkd.bindImageMemory(device, image, *memory, 0u));
-
-	return MovePtr<Allocation>(new SimpleAllocation(vkd, device, memory.disown()));
+	return requirements.memoryRequirements;
 }
 
-
 MovePtr<Allocation> importAndBindMemory (const DeviceInterface&					vkd,
 										 VkDevice								device,
 										 VkBuffer								buffer,
@@ -350,100 +335,6 @@
 	SharedPtr<Operation>		op;
 };
 
-de::MovePtr<Resource> createResource (const DeviceInterface&				vkd,
-									  VkDevice								device,
-									  const ResourceDescription&			resourceDesc,
-									  const deUint32						queueFamilyIndex,
-									  const OperationSupport&				readOp,
-									  const OperationSupport&				writeOp,
-									  VkExternalMemoryHandleTypeFlagBits	externalType,
-									  deUint32&								exportedMemoryTypeIndex)
-{
-	if (resourceDesc.type == RESOURCE_TYPE_IMAGE)
-	{
-		const VkExtent3D				extent					=
-		{
-			(deUint32)resourceDesc.size.x(),
-			de::max(1u, (deUint32)resourceDesc.size.y()),
-			de::max(1u, (deUint32)resourceDesc.size.z())
-		};
-		const VkImageSubresourceRange	subresourceRange		=
-		{
-			resourceDesc.imageAspect,
-			0u,
-			1u,
-			0u,
-			1u
-		};
-		const VkImageSubresourceLayers	subresourceLayers		=
-		{
-			resourceDesc.imageAspect,
-			0u,
-			0u,
-			1u
-		};
-		const VkExternalMemoryImageCreateInfo externalInfo		=
-		{
-			VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
-			DE_NULL,
-			(VkExternalMemoryHandleTypeFlags)externalType
-		};
-		const VkImageCreateInfo			createInfo				=
-		{
-			VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
-			&externalInfo,
-			0u,
-
-			resourceDesc.imageType,
-			resourceDesc.imageFormat,
-			extent,
-			1u,
-			1u,
-			VK_SAMPLE_COUNT_1_BIT,
-			VK_IMAGE_TILING_OPTIMAL,
-			readOp.getInResourceUsageFlags() | writeOp.getOutResourceUsageFlags(),
-			VK_SHARING_MODE_EXCLUSIVE,
-
-			1u,
-			&queueFamilyIndex,
-			VK_IMAGE_LAYOUT_UNDEFINED
-		};
-
-		Move<VkImage>			image		= createImage(vkd, device, &createInfo);
-		MovePtr<Allocation>		allocation	= allocateAndBindMemory(vkd, device, *image, externalType, exportedMemoryTypeIndex);
-
-		return MovePtr<Resource>(new Resource(image, allocation, extent, resourceDesc.imageType, resourceDesc.imageFormat, subresourceRange, subresourceLayers));
-	}
-	else
-	{
-		const VkDeviceSize						offset			= 0u;
-		const VkDeviceSize						size			= static_cast<VkDeviceSize>(resourceDesc.size.x());
-		const VkBufferUsageFlags				usage			= readOp.getInResourceUsageFlags() | writeOp.getOutResourceUsageFlags();
-		const VkExternalMemoryBufferCreateInfo	externalInfo	=
-		{
-			VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
-			DE_NULL,
-			(VkExternalMemoryHandleTypeFlags)externalType
-		};
-		const VkBufferCreateInfo				createInfo		=
-		{
-			VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
-			&externalInfo,
-			0u,
-
-			size,
-			usage,
-			VK_SHARING_MODE_EXCLUSIVE,
-			1u,
-			&queueFamilyIndex
-		};
-		Move<VkBuffer>							buffer		= createBuffer(vkd, device, &createInfo);
-		MovePtr<Allocation>						allocation	= allocateAndBindMemory(vkd, device, *buffer, externalType, exportedMemoryTypeIndex);
-
-		return MovePtr<Resource>(new Resource(resourceDesc.type, buffer, allocation, offset, size));
-	}
-}
-
 de::MovePtr<Resource> importResource (const DeviceInterface&				vkd,
 									  VkDevice								device,
 									  const ResourceDescription&			resourceDesc,
@@ -626,6 +517,67 @@
 
 	}
 
+	Move<VkImage> createImage (const vk::DeviceInterface&	vkd,
+							   vk::VkDevice					device,
+							   const vk::VkExtent3D&		extent,
+							   deUint32						queueFamilyIndex)
+	{
+		const VkExternalMemoryImageCreateInfo externalInfo =
+		{
+			VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
+			DE_NULL,
+			(VkExternalMemoryHandleTypeFlags)m_memoryHandleType
+		};
+		const VkImageCreateInfo createInfo =
+		{
+			VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
+			&externalInfo,
+			0u,
+
+			m_resourceDesc.imageType,
+			m_resourceDesc.imageFormat,
+			extent,
+			1u,
+			1u,
+			VK_SAMPLE_COUNT_1_BIT,
+			VK_IMAGE_TILING_OPTIMAL,
+			m_readOpSupport->getInResourceUsageFlags() | m_writeOpSupport->getOutResourceUsageFlags(),
+			VK_SHARING_MODE_EXCLUSIVE,
+
+			1u,
+			&queueFamilyIndex,
+			VK_IMAGE_LAYOUT_UNDEFINED
+		};
+
+		return vk::createImage(vkd, device, &createInfo);
+	}
+
+	Move<VkBuffer> createBuffer (const vk::DeviceInterface&		vkd,
+								 vk::VkDevice					device,
+								 const vk::VkDeviceSize&		size,
+								 deUint32						queueFamilyIndex)
+	{
+		const VkExternalMemoryBufferCreateInfo	externalInfo =
+		{
+			VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
+			DE_NULL,
+			(VkExternalMemoryHandleTypeFlags)m_memoryHandleType
+		};
+		const VkBufferCreateInfo				createInfo =
+		{
+			VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
+			&externalInfo,
+			0u,
+
+			size,
+			m_readOpSupport->getInResourceUsageFlags() | m_writeOpSupport->getOutResourceUsageFlags(),
+			VK_SHARING_MODE_EXCLUSIVE,
+			1u,
+			&queueFamilyIndex
+		};
+		return vk::createBuffer(vkd, device, &createInfo);
+	}
+
 	tcu::TestStatus iterate (void)
 	{
 		// We're using 2 devices to make sure we have 2 queues even on
@@ -657,24 +609,65 @@
 		std::vector<VkSemaphore>							semaphoreHandlesB;
 		std::vector<deUint64>								timelineValuesA;
 		std::vector<deUint64>								timelineValuesB;
-		std::vector<QueueSubmitOrderSharedIteration>		iterations;
+		std::vector<QueueSubmitOrderSharedIteration>		iterations(12);
 		std::vector<VkPipelineStageFlags>					stageBits;
 
 		// Create a dozen of set of write/read operations.
-		iterations.resize(12);
 		for (deUint32 iterIdx = 0; iterIdx < iterations.size(); iterIdx++)
 		{
 			QueueSubmitOrderSharedIteration&	iter				= iterations[iterIdx];
 			deUint32							memoryTypeIndex;
 			NativeHandle						nativeMemoryHandle;
 
-			iter.resourceA	= makeSharedPtr(createResource(vkA, deviceA,
-														   m_resourceDesc,
-														   universalQueueFamilyIndex,
-														   *m_readOpSupport,
-														   *m_writeOpSupport,
-														   m_memoryHandleType,
-														   memoryTypeIndex));
+			if (m_resourceDesc.type == RESOURCE_TYPE_IMAGE)
+			{
+				const VkExtent3D				extent =
+				{
+					(deUint32)m_resourceDesc.size.x(),
+					de::max(1u, (deUint32)m_resourceDesc.size.y()),
+					de::max(1u, (deUint32)m_resourceDesc.size.z())
+				};
+				const VkImageSubresourceRange	subresourceRange =
+				{
+					m_resourceDesc.imageAspect,
+					0u,
+					1u,
+					0u,
+					1u
+				};
+				const VkImageSubresourceLayers	subresourceLayers =
+				{
+					m_resourceDesc.imageAspect,
+					0u,
+					0u,
+					1u
+				};
+
+				Move<VkImage>							image			= createImage(vkA, deviceA, extent, universalQueueFamilyIndex);
+				const vk::VkMemoryRequirements			requirements	= getMemoryRequirements(vkA, deviceA, *image);
+														memoryTypeIndex = chooseMemoryType(requirements.memoryTypeBits);
+				vk::Move<vk::VkDeviceMemory>			memory			= allocateExportableMemory(vkA, deviceA, requirements.size, memoryTypeIndex, m_memoryHandleType, *image);
+
+				VK_CHECK(vkA.bindImageMemory(deviceA, *image, *memory, 0u));
+
+				MovePtr<Allocation> allocation(new SimpleAllocation(vkA, deviceA, memory.disown()));
+				iter.resourceA = makeSharedPtr(new Resource(image, allocation, extent, m_resourceDesc.imageType, m_resourceDesc.imageFormat, subresourceRange, subresourceLayers));
+			}
+			else
+			{
+				const VkDeviceSize						offset			= 0u;
+				const VkDeviceSize						size			= static_cast<VkDeviceSize>(m_resourceDesc.size.x());
+				Move<VkBuffer>							buffer			= createBuffer(vkA, deviceA, size, universalQueueFamilyIndex);
+				const vk::VkMemoryRequirements			requirements	= getMemoryRequirements(vkA, deviceA, *buffer);
+														memoryTypeIndex	= chooseMemoryType(requirements.memoryTypeBits);
+				vk::Move<vk::VkDeviceMemory>			memory			= allocateExportableMemory(vkA, deviceA, requirements.size, memoryTypeIndex, m_memoryHandleType, *buffer);
+
+				VK_CHECK(vkA.bindBufferMemory(deviceA, *buffer, *memory, 0u));
+
+				MovePtr<Allocation> allocation(new SimpleAllocation(vkA, deviceA, memory.disown()));
+				iter.resourceA = makeSharedPtr(new Resource(m_resourceDesc.type, buffer, allocation, offset, size));
+			}
+
 			getMemoryNative(vkA, deviceA, iter.resourceA->getMemory(), m_memoryHandleType, nativeMemoryHandle);
 			iter.resourceB	= makeSharedPtr(importResource(vkB, *deviceB,
 														   m_resourceDesc,
diff --git a/external/vulkancts/modules/vulkan/tessellation/vktTessellationCoordinatesTests.cpp b/external/vulkancts/modules/vulkan/tessellation/vktTessellationCoordinatesTests.cpp
index 1c6e5e7..ee71ae4 100644
--- a/external/vulkancts/modules/vulkan/tessellation/vktTessellationCoordinatesTests.cpp
+++ b/external/vulkancts/modules/vulkan/tessellation/vktTessellationCoordinatesTests.cpp
@@ -62,10 +62,12 @@
 	bool operator() (const T& a, const T& b) const { return a.size() < b.size(); }
 };
 
-std::string getCaseName (const TessPrimitiveType primitiveType, const SpacingMode spacingMode)
+std::string getCaseName (const TessPrimitiveType primitiveType, const SpacingMode spacingMode, bool executionModeInEvaluationShader)
 {
 	std::ostringstream str;
 	str << getTessPrimitiveTypeShaderName(primitiveType) << "_" << getSpacingModeShaderName(spacingMode);
+	if (!executionModeInEvaluationShader)
+		str << "_execution_mode_in_tesc";
 	return str.str();
 }
 
@@ -365,7 +367,8 @@
 public:
 								TessCoordTest	(tcu::TestContext&			testCtx,
 												 const TessPrimitiveType	primitiveType,
-												 const SpacingMode			spacingMode);
+												 const SpacingMode			spacingMode,
+												 const bool					executionModeInEvaluationShader = true);
 
 	void						initPrograms	(SourceCollections&			programCollection) const;
 	TestInstance*				createInstance	(Context&					context) const;
@@ -373,83 +376,249 @@
 private:
 	const TessPrimitiveType		m_primitiveType;
 	const SpacingMode			m_spacingMode;
+	const bool					m_executionModeInEvaluationShader;
 };
 
 TessCoordTest::TessCoordTest (tcu::TestContext&			testCtx,
 							  const TessPrimitiveType	primitiveType,
-							  const SpacingMode			spacingMode)
-	: TestCase			(testCtx, getCaseName(primitiveType, spacingMode), "")
-	, m_primitiveType	(primitiveType)
-	, m_spacingMode		(spacingMode)
+							  const SpacingMode			spacingMode,
+							  const bool				executionModeInEvaluationShader)
+	: TestCase							(testCtx, getCaseName(primitiveType, spacingMode, executionModeInEvaluationShader), "")
+	, m_primitiveType					(primitiveType)
+	, m_spacingMode						(spacingMode)
+	, m_executionModeInEvaluationShader	(executionModeInEvaluationShader)
 {
 }
 
 void TessCoordTest::initPrograms (SourceCollections& programCollection) const
 {
-	// Vertex shader - no inputs
+	if (m_executionModeInEvaluationShader)
 	{
-		std::ostringstream src;
-		src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_310_ES) << "\n"
-			<< "\n"
-			<< "void main (void)\n"
-			<< "{\n"
-			<< "}\n";
+		// Vertex shader - no inputs
+		{
+			std::ostringstream src;
+			src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_310_ES) << "\n"
+				<< "\n"
+				<< "void main (void)\n"
+				<< "{\n"
+				<< "}\n";
 
-		programCollection.glslSources.add("vert") << glu::VertexSource(src.str());
+			programCollection.glslSources.add("vert") << glu::VertexSource(src.str());
+		}
+
+		// Tessellation control shader
+		{
+			std::ostringstream src;
+			src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_310_ES) << "\n"
+				<< "#extension GL_EXT_tessellation_shader : require\n"
+				<< "\n"
+				<< "layout(vertices = 1) out;\n"
+				<< "\n"
+				<< "layout(set = 0, binding = 0, std430) readonly restrict buffer TessLevels {\n"
+				<< "    float inner0;\n"
+				<< "    float inner1;\n"
+				<< "    float outer0;\n"
+				<< "    float outer1;\n"
+				<< "    float outer2;\n"
+				<< "    float outer3;\n"
+				<< "} sb_levels;\n"
+				<< "\n"
+				<< "void main (void)\n"
+				<< "{\n"
+				<< "    gl_TessLevelInner[0] = sb_levels.inner0;\n"
+				<< "    gl_TessLevelInner[1] = sb_levels.inner1;\n"
+				<< "\n"
+				<< "    gl_TessLevelOuter[0] = sb_levels.outer0;\n"
+				<< "    gl_TessLevelOuter[1] = sb_levels.outer1;\n"
+				<< "    gl_TessLevelOuter[2] = sb_levels.outer2;\n"
+				<< "    gl_TessLevelOuter[3] = sb_levels.outer3;\n"
+				<< "}\n";
+
+			programCollection.glslSources.add("tesc") << glu::TessellationControlSource(src.str());
+		}
+
+		// Tessellation evaluation shader
+		{
+			std::ostringstream src;
+			src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_310_ES) << "\n"
+				<< "#extension GL_EXT_tessellation_shader : require\n"
+				<< "\n"
+				<< "layout(" << getTessPrimitiveTypeShaderName(m_primitiveType) << ", "
+				<< getSpacingModeShaderName(m_spacingMode) << ", point_mode) in;\n" << "\n"
+				<< "layout(set = 0, binding = 1, std430) coherent restrict buffer Output {\n"
+				<< "    int  numInvocations;\n"
+				<< "    vec3 tessCoord[];\n"		// alignment is 16 bytes, same as vec4
+				<< "} sb_out;\n"
+				<< "\n"
+				<< "void main (void)\n"
+				<< "{\n"
+				<< "    int index = atomicAdd(sb_out.numInvocations, 1);\n"
+				<< "    sb_out.tessCoord[index] = gl_TessCoord;\n"
+				<< "}\n";
+
+			programCollection.glslSources.add("tese") << glu::TessellationEvaluationSource(src.str());
+		}
 	}
-
-	// Tessellation control shader
+	else
 	{
-		std::ostringstream src;
-		src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_310_ES) << "\n"
-			<< "#extension GL_EXT_tessellation_shader : require\n"
-			<< "\n"
-			<< "layout(vertices = 1) out;\n"
-			<< "\n"
-			<< "layout(set = 0, binding = 0, std430) readonly restrict buffer TessLevels {\n"
-			<< "    float inner0;\n"
-			<< "    float inner1;\n"
-			<< "    float outer0;\n"
-			<< "    float outer1;\n"
-			<< "    float outer2;\n"
-			<< "    float outer3;\n"
-			<< "} sb_levels;\n"
-			<< "\n"
-			<< "void main (void)\n"
-			<< "{\n"
-			<< "    gl_TessLevelInner[0] = sb_levels.inner0;\n"
-			<< "    gl_TessLevelInner[1] = sb_levels.inner1;\n"
-			<< "\n"
-			<< "    gl_TessLevelOuter[0] = sb_levels.outer0;\n"
-			<< "    gl_TessLevelOuter[1] = sb_levels.outer1;\n"
-			<< "    gl_TessLevelOuter[2] = sb_levels.outer2;\n"
-			<< "    gl_TessLevelOuter[3] = sb_levels.outer3;\n"
-			<< "}\n";
+		// note: spirv code for all stages coresponds to glsl version above
 
-		programCollection.glslSources.add("tesc") << glu::TessellationControlSource(src.str());
-	}
+		programCollection.spirvAsmSources.add("vert")
+			<< "OpCapability Shader\n"
+			   "%glsl_ext_inst = OpExtInstImport \"GLSL.std.450\"\n"
+			   "OpMemoryModel Logical GLSL450\n"
+			   "OpEntryPoint Vertex %main_fun \"main\"\n"
+			   "%type_void       = OpTypeVoid\n"
+			   "%type_void_f     = OpTypeFunction %type_void\n"
+			   "%main_fun        = OpFunction %type_void None %type_void_f\n"
+			   "%main_label      = OpLabel\n"
+			   "OpReturn\n"
+			   "OpFunctionEnd\n";
 
-	// Tessellation evaluation shader
-	{
-		std::ostringstream src;
-		src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_310_ES) << "\n"
-			<< "#extension GL_EXT_tessellation_shader : require\n"
-			<< "\n"
-			<< "layout(" << getTessPrimitiveTypeShaderName(m_primitiveType) << ", "
-						 << getSpacingModeShaderName(m_spacingMode) << ", point_mode) in;\n"
-			<< "\n"
-			<< "layout(set = 0, binding = 1, std430) coherent restrict buffer Output {\n"
-			<< "    int  numInvocations;\n"
-			<< "    vec3 tessCoord[];\n"		// alignment is 16 bytes, same as vec4
-			<< "} sb_out;\n"
-			<< "\n"
-			<< "void main (void)\n"
-			<< "{\n"
-			<< "    int index = atomicAdd(sb_out.numInvocations, 1);\n"
-			<< "    sb_out.tessCoord[index] = gl_TessCoord;\n"
-			<< "}\n";
+		// glsl requires primitive_mode, vertex_spacing, ordering and point_mode layout qualifiers to be defined in
+		// tessellation evaluation shader while spirv allows corresponding execution modes to be defined in TES and/or
+		// TCS; here we test using execution modes only in TCS as TES is tested with glsl version of tests
 
-		programCollection.glslSources.add("tese") << glu::TessellationEvaluationSource(src.str());
+		const std::string executionMode =
+			std::string("OpExecutionMode %main_fun ") + getTessPrimitiveTypeShaderName(m_primitiveType, true) + "\n"
+			"OpExecutionMode %main_fun " + getSpacingModeShaderName(m_spacingMode, true) + "\n" +
+			"OpExecutionMode %main_fun PointMode\n"
+			"OpExecutionMode %main_fun VertexOrderCcw\n";
+
+		std::string tescSrc =
+			   "OpCapability Tessellation\n"
+			   "%glsl_ext_inst = OpExtInstImport \"GLSL.std.450\"\n"
+			   "OpMemoryModel Logical GLSL450\n"
+			   "OpEntryPoint TessellationControl %main_fun \"main\" %var_tess_level_inner %var_tess_level_outer\n"
+			   "OpExecutionMode %main_fun OutputVertices 1\n";
+		tescSrc += executionMode +
+			   "OpDecorate %var_tess_level_inner Patch\n"
+			   "OpDecorate %var_tess_level_inner BuiltIn TessLevelInner\n"
+			   "OpMemberDecorate %type_struct_sb_levels 0 Restrict\n"
+			   "OpMemberDecorate %type_struct_sb_levels 0 NonWritable\n"
+			   "OpMemberDecorate %type_struct_sb_levels 0 Offset 0\n"
+			   "OpMemberDecorate %type_struct_sb_levels 1 Restrict\n"
+			   "OpMemberDecorate %type_struct_sb_levels 1 NonWritable\n"
+			   "OpMemberDecorate %type_struct_sb_levels 1 Offset 4\n"
+			   "OpMemberDecorate %type_struct_sb_levels 2 Restrict\n"
+			   "OpMemberDecorate %type_struct_sb_levels 2 NonWritable\n"
+			   "OpMemberDecorate %type_struct_sb_levels 2 Offset 8\n"
+			   "OpMemberDecorate %type_struct_sb_levels 3 Restrict\n"
+			   "OpMemberDecorate %type_struct_sb_levels 3 NonWritable\n"
+			   "OpMemberDecorate %type_struct_sb_levels 3 Offset 12\n"
+			   "OpMemberDecorate %type_struct_sb_levels 4 Restrict\n"
+			   "OpMemberDecorate %type_struct_sb_levels 4 NonWritable\n"
+			   "OpMemberDecorate %type_struct_sb_levels 4 Offset 16\n"
+			   "OpMemberDecorate %type_struct_sb_levels 5 Restrict\n"
+			   "OpMemberDecorate %type_struct_sb_levels 5 NonWritable\n"
+			   "OpMemberDecorate %type_struct_sb_levels 5 Offset 20\n"
+			   "OpDecorate %type_struct_sb_levels BufferBlock\n"
+			   "OpDecorate %var_struct_sb_levels DescriptorSet 0\n"
+			   "OpDecorate %var_struct_sb_levels Binding 0\n"
+			   "OpDecorate %var_tess_level_outer Patch\n"
+			   "OpDecorate %var_tess_level_outer BuiltIn TessLevelOuter\n"
+			   "%type_void                 = OpTypeVoid\n"
+			   "%type_void_f               = OpTypeFunction %type_void\n"
+			   "%type_f32                  = OpTypeFloat 32\n"
+			   "%type_u32                  = OpTypeInt 32 0\n"
+			   "%c_u32_2                   = OpConstant %type_u32 2\n"
+			   "%type_arr_f32_2            = OpTypeArray %type_f32 %c_u32_2\n"
+			   "%type_arr_f32_2_ptr        = OpTypePointer Output %type_arr_f32_2\n"
+			   "%type_i32                  = OpTypeInt 32 1\n"
+			   "%type_struct_sb_levels     = OpTypeStruct %type_f32 %type_f32 %type_f32 %type_f32 %type_f32 %type_f32\n"
+			   "%type_struct_sb_levels_ptr = OpTypePointer Uniform %type_struct_sb_levels\n"
+			   "%var_struct_sb_levels      = OpVariable %type_struct_sb_levels_ptr Uniform\n"
+			   "%type_uni_f32_ptr          = OpTypePointer Uniform %type_f32\n"
+			   "%type_out_f32_ptr          = OpTypePointer Output %type_f32\n"
+			   "%c_i32_0                   = OpConstant %type_i32 0\n"
+			   "%c_i32_1                   = OpConstant %type_i32 1\n"
+			   "%c_u32_4                   = OpConstant %type_u32 4\n"
+			   "%c_i32_2                   = OpConstant %type_i32 2\n"
+			   "%c_i32_3                   = OpConstant %type_i32 3\n"
+			   "%c_i32_4                   = OpConstant %type_i32 4\n"
+			   "%c_i32_5                   = OpConstant %type_i32 5\n"
+			   "%type_arr_f32_4            = OpTypeArray %type_f32 %c_u32_4\n"
+			   "%type_arr_f32_4_ptr        = OpTypePointer Output %type_arr_f32_4\n"
+			   "%var_tess_level_inner      = OpVariable %type_arr_f32_2_ptr Output\n"
+			   "%var_tess_level_outer      = OpVariable %type_arr_f32_4_ptr Output\n"
+			   "%main_fun                  = OpFunction %type_void None %type_void_f\n"
+			   "%main_label                = OpLabel\n"
+			   "%tess_inner_0_ptr          = OpAccessChain %type_uni_f32_ptr %var_struct_sb_levels %c_i32_0\n"
+			   "%tess_inner_0              = OpLoad %type_f32 %tess_inner_0_ptr\n"
+			   "%gl_tess_inner_0           = OpAccessChain %type_out_f32_ptr %var_tess_level_inner %c_i32_0\n"
+			   "                             OpStore %gl_tess_inner_0 %tess_inner_0\n"
+			   "%tess_inner_1_ptr          = OpAccessChain %type_uni_f32_ptr %var_struct_sb_levels %c_i32_1\n"
+			   "%tess_inner_1              = OpLoad %type_f32 %tess_inner_1_ptr\n"
+			   "%gl_tess_inner_1           = OpAccessChain %type_out_f32_ptr %var_tess_level_inner %c_i32_1\n"
+			   "                             OpStore %gl_tess_inner_1 %tess_inner_1\n"
+			   "%tess_outer_0_ptr          = OpAccessChain %type_uni_f32_ptr %var_struct_sb_levels %c_i32_2\n"
+			   "%tess_outer_0              = OpLoad %type_f32 %tess_outer_0_ptr\n"
+			   "%gl_tess_outer_0           = OpAccessChain %type_out_f32_ptr %var_tess_level_outer %c_i32_0\n"
+			   "                             OpStore %gl_tess_outer_0 %tess_outer_0\n"
+			   "%tess_outer_1_ptr          = OpAccessChain %type_uni_f32_ptr %var_struct_sb_levels %c_i32_3\n"
+			   "%tess_outer_1              = OpLoad %type_f32 %tess_outer_1_ptr\n"
+			   "%gl_tess_outer_1           = OpAccessChain %type_out_f32_ptr %var_tess_level_outer %c_i32_1\n"
+			   "                             OpStore %gl_tess_outer_1 %tess_outer_1\n"
+			   "%tess_outer_2_ptr          = OpAccessChain %type_uni_f32_ptr %var_struct_sb_levels %c_i32_4\n"
+			   "%tess_outer_2              = OpLoad %type_f32 %tess_outer_2_ptr\n"
+			   "%gl_tess_outer_2           = OpAccessChain %type_out_f32_ptr %var_tess_level_outer %c_i32_2\n"
+			   "                             OpStore %gl_tess_outer_2 %tess_outer_2\n"
+			   "%tess_outer_3_ptr          = OpAccessChain %type_uni_f32_ptr %var_struct_sb_levels %c_i32_5\n"
+			   "%tess_outer_3              = OpLoad %type_f32 %tess_outer_3_ptr\n"
+			   "%gl_tess_outer_3           = OpAccessChain %type_out_f32_ptr %var_tess_level_outer %c_i32_3\n"
+			   "                             OpStore %gl_tess_outer_3 %tess_outer_3\n"
+			   "OpReturn\n"
+			   "OpFunctionEnd\n";
+		programCollection.spirvAsmSources.add("tesc") << tescSrc;
+
+		std::string teseSrc =
+			   "OpCapability Tessellation\n"
+			   "%glsl_ext_inst = OpExtInstImport \"GLSL.std.450\"\n"
+			   "OpMemoryModel Logical GLSL450\n"
+			   "OpEntryPoint TessellationEvaluation %main_fun \"main\" %var_gl_tess_coord\n"
+			   "OpDecorate %type_run_arr_v3_f32 ArrayStride 16\n"
+			   "OpMemberDecorate %type_struct 0 Coherent\n"
+			   "OpMemberDecorate %type_struct 0 Restrict\n"
+			   "OpMemberDecorate %type_struct 0 Offset 0\n"
+			   "OpMemberDecorate %type_struct 1 Coherent\n"
+			   "OpMemberDecorate %type_struct 1 Restrict\n"
+			   "OpMemberDecorate %type_struct 1 Offset 16\n"
+			   "OpDecorate %type_struct BufferBlock\n"
+			   "OpDecorate %var_struct_ptr DescriptorSet 0\n"
+			   "OpDecorate %var_struct_ptr Binding 1\n"
+			   "OpDecorate %var_gl_tess_coord BuiltIn TessCoord\n"
+			   "%type_void             = OpTypeVoid\n"
+			   "%type_void_f           = OpTypeFunction %type_void\n"
+			   "%type_i32              = OpTypeInt 32 1\n"
+			   "%type_u32              = OpTypeInt 32 0\n"
+			   "%type_i32_fp           = OpTypePointer Function %type_i32\n"
+			   "%type_f32              = OpTypeFloat 32\n"
+			   "%type_v3_f32           = OpTypeVector %type_f32 3\n"
+			   "%type_run_arr_v3_f32   = OpTypeRuntimeArray %type_v3_f32\n"
+			   "%type_struct           = OpTypeStruct %type_i32 %type_run_arr_v3_f32\n"
+			   "%type_uni_struct_ptr   = OpTypePointer Uniform %type_struct\n"
+			   "%type_uni_i32_ptr      = OpTypePointer Uniform %type_i32\n"
+			   "%type_uni_v3_f32_ptr   = OpTypePointer Uniform %type_v3_f32\n"
+			   "%type_in_v3_f32_ptr    = OpTypePointer Input %type_v3_f32\n"
+			   "%c_i32_0               = OpConstant %type_i32 0\n"
+			   "%c_i32_1               = OpConstant %type_i32 1\n"
+			   "%c_u32_0               = OpConstant %type_u32 1\n"
+			   "%c_u32_1               = OpConstant %type_u32 0\n"
+			   "%var_struct_ptr        = OpVariable %type_uni_struct_ptr Uniform\n"
+			   "%var_gl_tess_coord     = OpVariable %type_in_v3_f32_ptr Input\n"
+			   "%main_fun              = OpFunction %type_void None %type_void_f\n"
+			   "%main_label            = OpLabel\n"
+			   "%var_i32_ptr           = OpVariable %type_i32_fp Function\n"
+			   "%num_invocations       = OpAccessChain %type_uni_i32_ptr %var_struct_ptr %c_i32_0\n"
+			   "%index_0               = OpAtomicIAdd %type_i32 %num_invocations %c_u32_0 %c_u32_1 %c_i32_1\n"
+			   "                         OpStore %var_i32_ptr %index_0\n"
+			   "%index_1               = OpLoad %type_i32 %var_i32_ptr\n"
+			   "%gl_tess_coord         = OpLoad %type_v3_f32 %var_gl_tess_coord\n"
+			   "%out_tess_coord        = OpAccessChain %type_uni_v3_f32_ptr %var_struct_ptr %c_i32_1 %index_1\n"
+			   "                         OpStore %out_tess_coord %gl_tess_coord\n"
+			   "OpReturn\n"
+			   "OpFunctionEnd\n";
+		programCollection.spirvAsmSources.add("tese") << teseSrc;
 	}
 }
 
@@ -650,8 +819,13 @@
 	de::MovePtr<tcu::TestCaseGroup> group (new tcu::TestCaseGroup(testCtx, "tesscoord", "Tessellation coordinates tests"));
 
 	for (int primitiveTypeNdx = 0; primitiveTypeNdx < TESSPRIMITIVETYPE_LAST; ++primitiveTypeNdx)
-	for (int spacingModeNdx = 0; spacingModeNdx < SPACINGMODE_LAST; ++spacingModeNdx)
-		group->addChild(new TessCoordTest(testCtx, (TessPrimitiveType)primitiveTypeNdx, (SpacingMode)spacingModeNdx));
+		for (int spacingModeNdx = 0; spacingModeNdx < SPACINGMODE_LAST; ++spacingModeNdx)
+		{
+			group->addChild(new TessCoordTest(testCtx, (TessPrimitiveType)primitiveTypeNdx, (SpacingMode)spacingModeNdx));
+
+			// test if TessCoord builtin has correct value in Evaluation shader when execution mode is set only in Control shader
+			group->addChild(new TessCoordTest(testCtx, (TessPrimitiveType)primitiveTypeNdx, (SpacingMode)spacingModeNdx, false));
+		}
 
 	return group.release();
 }
diff --git a/external/vulkancts/modules/vulkan/tessellation/vktTessellationUtil.hpp b/external/vulkancts/modules/vulkan/tessellation/vktTessellationUtil.hpp
index 05c8520..9b7ba42 100644
--- a/external/vulkancts/modules/vulkan/tessellation/vktTessellationUtil.hpp
+++ b/external/vulkancts/modules/vulkan/tessellation/vktTessellationUtil.hpp
@@ -231,17 +231,23 @@
 int								referencePrimitiveCount						(const TessPrimitiveType primitiveType, const SpacingMode spacingMode, const bool usePointMode, const float* innerLevels, const float* outerLevels);
 int								numVerticesPerPrimitive						(const TessPrimitiveType primitiveType, const bool usePointMode);
 
-static inline const char* getTessPrimitiveTypeShaderName (const TessPrimitiveType type)
+static inline const char* getTessPrimitiveTypeShaderName (const TessPrimitiveType type, bool forSpirv = false)
 {
-	switch (type)
+	static std::string primitiveName[][2] =
 	{
-		case TESSPRIMITIVETYPE_TRIANGLES:	return "triangles";
-		case TESSPRIMITIVETYPE_QUADS:		return "quads";
-		case TESSPRIMITIVETYPE_ISOLINES:	return "isolines";
-		default:
-			DE_FATAL("Unexpected primitive type.");
-			return DE_NULL;
+		// glsl name	spirv name
+		{ "triangles", "Triangles"},
+		{ "quads"	 , "Quads" },
+		{ "isolines" , "Isolines" }
+	};
+
+	if (type >= TESSPRIMITIVETYPE_LAST)
+	{
+		DE_FATAL("Unexpected primitive type.");
+		return DE_NULL;
 	}
+
+	return primitiveName[type][forSpirv].c_str();
 }
 
 static inline const char* getDomainName (const TessPrimitiveType type)
@@ -270,17 +276,23 @@
 	return DE_NULL;
 }
 
-static inline const char* getSpacingModeShaderName (SpacingMode mode)
+static inline const char* getSpacingModeShaderName (SpacingMode mode, bool forSpirv = false)
 {
-	switch (mode)
+	static std::string spacingName[][2] =
 	{
-		case SPACINGMODE_EQUAL:				return "equal_spacing";
-		case SPACINGMODE_FRACTIONAL_ODD:	return "fractional_odd_spacing";
-		case SPACINGMODE_FRACTIONAL_EVEN:	return "fractional_even_spacing";
-		default:
-			DE_FATAL("Unexpected spacing mode.");
-			return DE_NULL;
+		// glsl name					spirv name
+		{ "equal_spacing",				"SpacingEqual"},
+		{ "fractional_odd_spacing",		"SpacingFractionalOdd" },
+		{ "fractional_even_spacing",	"SpacingFractionalEven" }
+	};
+
+	if (mode >= SPACINGMODE_LAST)
+	{
+		DE_FATAL("Unexpected spacing type.");
+		return DE_NULL;
 	}
+
+	return spacingName[mode][forSpirv].c_str();
 }
 
 static inline const char* getPartitioningShaderName (SpacingMode mode)
diff --git a/external/vulkancts/modules/vulkan/texture/CMakeLists.txt b/external/vulkancts/modules/vulkan/texture/CMakeLists.txt
index 3ccd307..e2a5f44 100644
--- a/external/vulkancts/modules/vulkan/texture/CMakeLists.txt
+++ b/external/vulkancts/modules/vulkan/texture/CMakeLists.txt
@@ -15,6 +15,8 @@
 	vktTextureTests.hpp
 	vktTextureTestUtil.cpp
 	vktTextureTestUtil.hpp
+	vktTextureConversionTests.cpp
+	vktTextureConversionTests.hpp
 	vktTextureFilteringExplicitLodTests.cpp
 	vktTextureFilteringExplicitLodTests.hpp
 	vktTextureFilteringTests.cpp
diff --git a/external/vulkancts/modules/vulkan/texture/vktTextureConversionTests.cpp b/external/vulkancts/modules/vulkan/texture/vktTextureConversionTests.cpp
new file mode 100644
index 0000000..f061d39
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/texture/vktTextureConversionTests.cpp
@@ -0,0 +1,53 @@
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2020 The Khronos Group Inc.
+ * Copyright (c) 2020 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Texture conversion tests.
+ *//*--------------------------------------------------------------------*/
+
+#include "vktTextureConversionTests.hpp"
+#include "vktAmberTestCase.hpp"
+#include "vktTestGroupUtil.hpp"
+
+using namespace vk;
+
+namespace vkt
+{
+namespace texture
+{
+namespace
+{
+
+void populateTextureConversionTests (tcu::TestCaseGroup* group)
+{
+	tcu::TestContext& testCtx = group->getTestContext();
+
+	group->addChild(cts_amber::createAmberTestCase(testCtx, "b10g11r11-negative-values", "", "texture/conversion", "b10g11r11-ufloat-pack32-negative-values.amber"));
+}
+
+} // anonymous
+
+tcu::TestCaseGroup* createTextureConversionTests (tcu::TestContext& testCtx)
+{
+	return createTestGroup(testCtx, "conversion", "Texture conversion tests.", populateTextureConversionTests);
+}
+
+} // texture
+} // vkt
diff --git a/external/vulkancts/modules/vulkan/texture/vktTextureConversionTests.hpp b/external/vulkancts/modules/vulkan/texture/vktTextureConversionTests.hpp
new file mode 100644
index 0000000..453a162
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/texture/vktTextureConversionTests.hpp
@@ -0,0 +1,41 @@
+#ifndef _VKTTEXTURECONVERSIONTESTS_HPP
+#define _VKTTEXTURECONVERSIONTESTS_HPP
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2020 The Khronos Group Inc.
+ * Copyright (c) 2020 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Texture conversion tests.
+ *//*--------------------------------------------------------------------*/
+
+#include "tcuDefs.hpp"
+#include "tcuTestCase.hpp"
+#include "vktTestCase.hpp"
+
+namespace vkt
+{
+namespace texture
+{
+
+tcu::TestCaseGroup*	createTextureConversionTests	(tcu::TestContext& testCtx);
+
+} // texture
+} // vkt
+
+#endif // _VKTTEXTURECONVERSIONTESTS_HPP
diff --git a/external/vulkancts/modules/vulkan/texture/vktTextureFilteringTests.cpp b/external/vulkancts/modules/vulkan/texture/vktTextureFilteringTests.cpp
index e0d0c38..e04bd00 100644
--- a/external/vulkancts/modules/vulkan/texture/vktTextureFilteringTests.cpp
+++ b/external/vulkancts/modules/vulkan/texture/vktTextureFilteringTests.cpp
@@ -44,6 +44,93 @@
 {
 namespace texture
 {
+namespace util
+{
+
+template <>
+void checkTextureSupport (Context& context, const Texture2DTestCaseParameters& testParameters)
+{
+	if (testParameters.minFilter == tcu::Sampler::Sampler::CUBIC || testParameters.minFilter == tcu::Sampler::Sampler::CUBIC_MIPMAP_NEAREST || testParameters.minFilter == tcu::Sampler::Sampler::CUBIC_MIPMAP_LINEAR ||
+		testParameters.magFilter == tcu::Sampler::Sampler::CUBIC)
+	{
+		context.requireDeviceFunctionality("VK_EXT_filter_cubic");
+
+		// check if image format supports cubic filtering
+		const vk::VkPhysicalDeviceImageViewImageFormatInfoEXT imageViewImageFormatInfo =
+		{
+			VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT,		// VkStructureType    sType;
+			DE_NULL,																// void*              pNext;
+			VK_IMAGE_VIEW_TYPE_2D													// VkImageViewType    imageViewType;
+		};
+
+		const vk::VkPhysicalDeviceImageFormatInfo2 formatInfo =
+		{
+			VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,					// VkStructureType       sType;
+			&imageViewImageFormatInfo,												// const void*           pNext;
+			testParameters.format,													// VkFormat              format;
+			VK_IMAGE_TYPE_2D,														// VkImageType           type;
+			VK_IMAGE_TILING_OPTIMAL,												// VkImageTiling         tiling;
+			VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT |
+			VK_IMAGE_USAGE_TRANSFER_SRC_BIT |
+			VK_IMAGE_USAGE_TRANSFER_DST_BIT,										// VkImageUsageFlags     usage;
+			0u																		// VkImageCreateFlags    flags;
+		};
+
+		vk::VkFilterCubicImageViewImageFormatPropertiesEXT cubicImageViewProperties =
+		{
+			VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT,	// VkStructureType	sType;
+			DE_NULL,																// void*			pNext;
+			DE_FALSE,																// VkBool32		filterCubic;
+			DE_FALSE																// VkBool32		filterCubicMinmax;
+		};
+
+		vk::VkImageFormatProperties2 formatProperties =
+		{
+			VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,							// VkStructureType			sType;
+			&cubicImageViewProperties,												// void*					pNext;
+			vk::VkImageFormatProperties()											// VkImageFormatProperties	imageFormatProperties;
+		};
+
+		const vk::VkResult res = context.getInstanceInterface().getPhysicalDeviceImageFormatProperties2(context.getPhysicalDevice(), &formatInfo, &formatProperties);
+		if (res == vk::VK_ERROR_FORMAT_NOT_SUPPORTED)
+			TCU_THROW(NotSupportedError, "Image format not supported");
+		VK_CHECK(res);
+
+		if (!cubicImageViewProperties.filterCubic)
+			TCU_THROW(NotSupportedError, "Image format does not support cubic filtering");
+
+		VkFormatProperties formatProps;
+		context.getInstanceInterface().getPhysicalDeviceFormatProperties(context.getPhysicalDevice(), testParameters.format, &formatProps);
+		if ((formatProps.optimalTilingFeatures & VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT) == 0)
+			TCU_THROW(NotSupportedError, "Format properties do not support cubic filtering feature");
+	}
+
+	if (testParameters.wrapS == tcu::Sampler::Sampler::MIRRORED_ONCE || testParameters.wrapT == tcu::Sampler::Sampler::MIRRORED_ONCE)
+		context.requireDeviceFunctionality("VK_KHR_sampler_mirror_clamp_to_edge");
+}
+
+template <>
+void checkTextureSupport (Context& context, const TextureCubeTestCaseParameters& testParameters)
+{
+	if (testParameters.wrapS == tcu::Sampler::Sampler::MIRRORED_ONCE || testParameters.wrapT == tcu::Sampler::Sampler::MIRRORED_ONCE)
+		context.requireDeviceFunctionality("VK_KHR_sampler_mirror_clamp_to_edge");
+}
+
+template <>
+void checkTextureSupport (Context& context, const Texture2DArrayTestCaseParameters& testParameters)
+{
+	if (testParameters.wrapS == tcu::Sampler::Sampler::MIRRORED_ONCE || testParameters.wrapT == tcu::Sampler::Sampler::MIRRORED_ONCE)
+		context.requireDeviceFunctionality("VK_KHR_sampler_mirror_clamp_to_edge");
+}
+
+template <>
+void checkTextureSupport (Context& context, const Texture3DTestCaseParameters& testParameters)
+{
+	if (testParameters.wrapS == tcu::Sampler::Sampler::MIRRORED_ONCE || testParameters.wrapT == tcu::Sampler::Sampler::MIRRORED_ONCE || testParameters.wrapR == tcu::Sampler::Sampler::MIRRORED_ONCE)
+		context.requireDeviceFunctionality("VK_KHR_sampler_mirror_clamp_to_edge");
+}
+
+} // util
 
 namespace
 {
@@ -131,9 +218,6 @@
 		cScale												= fmtInfo.valueMax - fmtInfo.valueMin;
 	}
 
-	if (testParameters.wrapS == Sampler::MIRRORED_ONCE || testParameters.wrapT == Sampler::MIRRORED_ONCE)
-		context.requireDeviceFunctionality("VK_KHR_sampler_mirror_clamp_to_edge");
-
 	// Create 2 textures.
 	m_textures.reserve(2);
 	for (int ndx = 0; ndx < 2; ndx++)
@@ -213,7 +297,6 @@
 tcu::TestStatus Texture2DFilteringTestInstance::iterate (void)
 {
 	tcu::TestLog&					log			= m_context.getTestContext().getLog();
-
 	const pipeline::TestTexture2D&	texture		= m_renderer.get2DTexture(m_cases[m_caseNdx].textureIndex);
 	const tcu::TextureFormat		texFmt		= texture.getTextureFormat();
 	const tcu::TextureFormatInfo	fmtInfo		= tcu::getTextureFormatInfo(texFmt);
@@ -351,9 +434,6 @@
 		cScale												= fmtInfo.valueMax - fmtInfo.valueMin;
 	}
 
-	if (testParameters.wrapS == Sampler::MIRRORED_ONCE || testParameters.wrapT == Sampler::MIRRORED_ONCE)
-		context.requireDeviceFunctionality("VK_KHR_sampler_mirror_clamp_to_edge");
-
 	m_textures.reserve(2);
 	for (int ndx = 0; ndx < 2; ndx++)
 		m_textures.push_back(TestTextureCubeSp(new pipeline::TestTextureCube(vk::mapVkFormat(m_testParameters.format), m_testParameters.size)));
@@ -597,9 +677,6 @@
 		cScale												= fmtInfo.valueMax - fmtInfo.valueMin;
 	}
 
-	if (testParameters.wrapS == Sampler::MIRRORED_ONCE || testParameters.wrapT == Sampler::MIRRORED_ONCE)
-		context.requireDeviceFunctionality("VK_KHR_sampler_mirror_clamp_to_edge");
-
 	// Create textures.
 	m_textures.reserve(2);
 	for (int ndx = 0; ndx < 2; ndx++)
@@ -818,9 +895,6 @@
 		cScale												= fmtInfo.valueMax - fmtInfo.valueMin;
 	}
 
-	if (testParameters.wrapS == Sampler::MIRRORED_ONCE || testParameters.wrapT == Sampler::MIRRORED_ONCE || testParameters.wrapR == Sampler::MIRRORED_ONCE)
-		context.requireDeviceFunctionality("VK_KHR_sampler_mirror_clamp_to_edge");
-
 	// Create textures.
 	m_textures.reserve(2);
 	for (int ndx = 0; ndx < 2; ndx++)
@@ -960,17 +1034,17 @@
 	return m_caseNdx < (int)m_cases.size() ? tcu::TestStatus::incomplete() : tcu::TestStatus::pass("Pass");
 }
 
-bool verifierCanBeUsed (const VkFormat format, const Sampler::FilterMode minFilter, const Sampler::FilterMode magFilter)
+bool verifierCanBeUsed(const VkFormat format, const Sampler::FilterMode minFilter, const Sampler::FilterMode magFilter)
 {
 	const tcu::TextureFormat				textureFormat		= mapVkFormat(format);
 	const tcu::TextureChannelClass			textureChannelClass	= tcu::getTextureChannelClass(textureFormat.type);
 
-	return !(!(textureChannelClass == tcu::TEXTURECHANNELCLASS_UNSIGNED_FIXED_POINT	||
-			   textureChannelClass == tcu::TEXTURECHANNELCLASS_SIGNED_FIXED_POINT	||
-			   textureChannelClass == tcu::TEXTURECHANNELCLASS_FLOATING_POINT) &&
-			  (tcu::TexVerifierUtil::isLinearFilter(minFilter) || tcu::TexVerifierUtil::isLinearFilter(magFilter)));
+	return !(!(textureChannelClass == tcu::TEXTURECHANNELCLASS_UNSIGNED_FIXED_POINT ||
+		textureChannelClass == tcu::TEXTURECHANNELCLASS_SIGNED_FIXED_POINT ||
+		textureChannelClass == tcu::TEXTURECHANNELCLASS_FLOATING_POINT) &&
+		(tcu::TexVerifierUtil::isLinearFilter(minFilter) || tcu::TexVerifierUtil::isLinearFilter(magFilter) ||
+		 tcu::TexVerifierUtil::isCubicFilter(minFilter)  || tcu::TexVerifierUtil::isCubicFilter(magFilter)));
 }
-
 void populateTextureFilteringTests (tcu::TestCaseGroup* textureFilteringTests)
 {
 	tcu::TestContext&	testCtx		= textureFilteringTests->getTestContext();
@@ -988,11 +1062,13 @@
 		{ "mirror_clamp_to_edge",	Sampler::MIRRORED_ONCE		}
 	};
 
-	static const struct
+	struct FilterModes
 	{
 		const char* const			name;
 		const Sampler::FilterMode	mode;
-	} minFilterModes[] =
+	};
+
+	static const FilterModes minFilterModes[] =
 	{
 		{ "nearest",				Sampler::NEAREST					},
 		{ "linear",					Sampler::LINEAR						},
@@ -1002,16 +1078,32 @@
 		{ "linear_mipmap_linear",	Sampler::LINEAR_MIPMAP_LINEAR		}
 	};
 
-	static const struct
-	{
-		const char* const			name;
-		const Sampler::FilterMode	mode;
-	} magFilterModes[] =
+	static const FilterModes magFilterModes[] =
 	{
 		{ "nearest",				Sampler::NEAREST },
 		{ "linear",					Sampler::LINEAR	 }
 	};
 
+	static const FilterModes minFilterModes2D[] =
+	{
+		{ "nearest",				Sampler::NEAREST					},
+		{ "linear",					Sampler::LINEAR						},
+		{ "cubic",					Sampler::CUBIC						},
+		{ "nearest_mipmap_nearest",	Sampler::NEAREST_MIPMAP_NEAREST		},
+		{ "linear_mipmap_nearest",	Sampler::LINEAR_MIPMAP_NEAREST		},
+		{ "nearest_mipmap_linear",	Sampler::NEAREST_MIPMAP_LINEAR		},
+		{ "linear_mipmap_linear",	Sampler::LINEAR_MIPMAP_LINEAR		},
+		{ "cubic_mipmap_nearest",	Sampler::CUBIC_MIPMAP_NEAREST		},
+		{ "cubic_mipmap_linear",	Sampler::CUBIC_MIPMAP_LINEAR		}
+	};
+
+	static const FilterModes magFilterModes2D[] =
+	{
+		{ "nearest",				Sampler::NEAREST },
+		{ "linear",					Sampler::LINEAR	 },
+		{ "cubic",					Sampler::CUBIC	 }
+	};
+
 	static const struct
 	{
 		const int	width;
@@ -1106,11 +1198,11 @@
 			const string					filterGroupName	= filterableFormatsByType[fmtNdx].name;
 			de::MovePtr<tcu::TestCaseGroup>	filterGroup		(new tcu::TestCaseGroup(testCtx, filterGroupName.c_str(), ""));
 
-			for (int filterNdx = 0; filterNdx < DE_LENGTH_OF_ARRAY(minFilterModes); filterNdx++)
+			for (int filterNdx = 0; filterNdx < DE_LENGTH_OF_ARRAY(minFilterModes2D); filterNdx++)
 			{
-				const Sampler::FilterMode	minFilter		= minFilterModes[filterNdx].mode;
-				const bool					isMipmap		= minFilter != Sampler::NEAREST && minFilter != Sampler::LINEAR;
-				const string				name			= minFilterModes[filterNdx].name;
+				const Sampler::FilterMode	minFilter		= minFilterModes2D[filterNdx].mode;
+				const bool					isMipmap		= minFilter != Sampler::NEAREST && minFilter != Sampler::LINEAR && minFilter != Sampler::CUBIC;
+				const string				name			= minFilterModes2D[filterNdx].name;
 				Texture2DTestCaseParameters	testParameters;
 
 				testParameters.format		= filterableFormatsByType[fmtNdx].format;
@@ -1141,11 +1233,11 @@
 			const string					filterGroupName = de::toString(sizes2D[sizeNdx].width) + "x" + de::toString(sizes2D[sizeNdx].height);
 			de::MovePtr<tcu::TestCaseGroup>	filterGroup		(new tcu::TestCaseGroup(testCtx, filterGroupName.c_str(), ""));
 
-			for (int filterNdx = 0; filterNdx < DE_LENGTH_OF_ARRAY(minFilterModes); filterNdx++)
+			for (int filterNdx = 0; filterNdx < DE_LENGTH_OF_ARRAY(minFilterModes2D); filterNdx++)
 			{
-				const Sampler::FilterMode	minFilter		= minFilterModes[filterNdx].mode;
-				const bool					isMipmap		= minFilter != Sampler::NEAREST && minFilter != Sampler::LINEAR;
-				const string				name			= minFilterModes[filterNdx].name;
+				const Sampler::FilterMode	minFilter		= minFilterModes2D[filterNdx].mode;
+				const bool					isMipmap		= minFilter != Sampler::NEAREST && minFilter != Sampler::LINEAR && minFilter != Sampler::CUBIC;
+				const string				name			= minFilterModes2D[filterNdx].name;
 				Texture2DTestCaseParameters	testParameters;
 
 				testParameters.format		= VK_FORMAT_R8G8B8A8_UNORM;
@@ -1167,13 +1259,13 @@
 		}
 
 		// Wrap modes.
-		for (int minFilterNdx = 0; minFilterNdx < DE_LENGTH_OF_ARRAY(minFilterModes); minFilterNdx++)
+		for (int minFilterNdx = 0; minFilterNdx < DE_LENGTH_OF_ARRAY(minFilterModes2D); minFilterNdx++)
 		{
-			de::MovePtr<tcu::TestCaseGroup>	minFilterGroup(new tcu::TestCaseGroup(testCtx, minFilterModes[minFilterNdx].name, ""));
+			de::MovePtr<tcu::TestCaseGroup>	minFilterGroup(new tcu::TestCaseGroup(testCtx, minFilterModes2D[minFilterNdx].name, ""));
 
-			for (int magFilterNdx = 0; magFilterNdx < DE_LENGTH_OF_ARRAY(magFilterModes); magFilterNdx++)
+			for (int magFilterNdx = 0; magFilterNdx < DE_LENGTH_OF_ARRAY(magFilterModes2D); magFilterNdx++)
 			{
-				de::MovePtr<tcu::TestCaseGroup>	magFilterGroup(new tcu::TestCaseGroup(testCtx, magFilterModes[magFilterNdx].name, ""));
+				de::MovePtr<tcu::TestCaseGroup>	magFilterGroup(new tcu::TestCaseGroup(testCtx, magFilterModes2D[magFilterNdx].name, ""));
 
 				for (int wrapSNdx = 0; wrapSNdx < DE_LENGTH_OF_ARRAY(wrapModes); wrapSNdx++)
 				{
@@ -1185,8 +1277,8 @@
 						Texture2DTestCaseParameters	testParameters;
 
 						testParameters.format		= VK_FORMAT_R8G8B8A8_UNORM;
-						testParameters.minFilter	= minFilterModes[minFilterNdx].mode;
-						testParameters.magFilter	= magFilterModes[magFilterNdx].mode;
+						testParameters.minFilter	= minFilterModes2D[minFilterNdx].mode;
+						testParameters.magFilter	= magFilterModes2D[magFilterNdx].mode;
 						testParameters.mipmaps		= true;
 
 						testParameters.wrapS		= wrapModes[wrapSNdx].mode;
@@ -1226,10 +1318,10 @@
 			const string					filterGroupName	= filterableFormatsByType[fmtNdx].name;
 			de::MovePtr<tcu::TestCaseGroup>	filterGroup		(new tcu::TestCaseGroup(testCtx, filterGroupName.c_str(), ""));
 
-			for (int filterNdx = 0; filterNdx < DE_LENGTH_OF_ARRAY(magFilterModes); filterNdx++)
+			for (int filterNdx = 0; filterNdx < DE_LENGTH_OF_ARRAY(magFilterModes2D); filterNdx++)
 			{
-				const Sampler::FilterMode	magFilter		= magFilterModes[filterNdx].mode;
-				const string				name			= magFilterModes[filterNdx].name;
+				const Sampler::FilterMode	magFilter		= magFilterModes2D[filterNdx].mode;
+				const string				name			= magFilterModes2D[filterNdx].name;
 				Texture2DTestCaseParameters	testParameters;
 
 				testParameters.unnormal		= true;
@@ -1262,10 +1354,10 @@
 			const string					filterGroupName = de::toString(sizes2D[sizeNdx].width) + "x" + de::toString(sizes2D[sizeNdx].height);
 			de::MovePtr<tcu::TestCaseGroup>	filterGroup		(new tcu::TestCaseGroup(testCtx, filterGroupName.c_str(), ""));
 
-			for (int filterNdx = 0; filterNdx < DE_LENGTH_OF_ARRAY(magFilterModes); filterNdx++)
+			for (int filterNdx = 0; filterNdx < DE_LENGTH_OF_ARRAY(magFilterModes2D); filterNdx++)
 			{
-				const Sampler::FilterMode	magFilter		= magFilterModes[filterNdx].mode;
-				const string				name			= magFilterModes[filterNdx].name;
+				const Sampler::FilterMode	magFilter		= magFilterModes2D[filterNdx].mode;
+				const string				name			= magFilterModes2D[filterNdx].name;
 				Texture2DTestCaseParameters	testParameters;
 
 				testParameters.unnormal		= true;
diff --git a/external/vulkancts/modules/vulkan/texture/vktTextureSubgroupLodTests.cpp b/external/vulkancts/modules/vulkan/texture/vktTextureSubgroupLodTests.cpp
index fb253c9..74575db 100644
--- a/external/vulkancts/modules/vulkan/texture/vktTextureSubgroupLodTests.cpp
+++ b/external/vulkancts/modules/vulkan/texture/vktTextureSubgroupLodTests.cpp
@@ -38,9 +38,9 @@
 void populateSubgroupLodTests (tcu::TestCaseGroup* group)
 {
 	tcu::TestContext&			testCtx			= group->getTestContext();
-	cts_amber::AmberTestCase*	testCaseLod		= cts_amber::createAmberTestCase(testCtx, "texturelod", "", "texture_subgroup_lod", "texture_lod.amber");
-	cts_amber::AmberTestCase*	testCaseGrad	= cts_amber::createAmberTestCase(testCtx, "texturegrad", "", "texture_subgroup_lod", "texture_grad.amber");
-	cts_amber::AmberTestCase*	testCaseFetch	= cts_amber::createAmberTestCase(testCtx, "texelfetch", "", "texture_subgroup_lod", "texel_fetch.amber");
+	cts_amber::AmberTestCase*	testCaseLod		= cts_amber::createAmberTestCase(testCtx, "texturelod", "", "texture/subgroup_lod", "texture_lod.amber");
+	cts_amber::AmberTestCase*	testCaseGrad	= cts_amber::createAmberTestCase(testCtx, "texturegrad", "", "texture/subgroup_lod", "texture_grad.amber");
+	cts_amber::AmberTestCase*	testCaseFetch	= cts_amber::createAmberTestCase(testCtx, "texelfetch", "", "texture/subgroup_lod", "texel_fetch.amber");
 
 	group->addChild(testCaseLod);
 	group->addChild(testCaseGrad);
diff --git a/external/vulkancts/modules/vulkan/texture/vktTextureTestUtil.hpp b/external/vulkancts/modules/vulkan/texture/vktTextureTestUtil.hpp
index 840773c..89f582b 100644
--- a/external/vulkancts/modules/vulkan/texture/vktTextureTestUtil.hpp
+++ b/external/vulkancts/modules/vulkan/texture/vktTextureTestUtil.hpp
@@ -280,6 +280,14 @@
 TestTexture2DSp loadTexture2D (const tcu::Archive& archive, const std::vector<std::string>& filenames);
 TestTextureCubeSp loadTextureCube (const tcu::Archive& archive, const std::vector<std::string>& filenames);
 
+// Add checkTextureSupport() function specialization for your test parameters class/struct if you need to use checkSupport() functionality
+template <typename T>
+void checkTextureSupport (Context& context, const T& testParameters)
+{
+	DE_UNREF(context);
+	DE_UNREF(testParameters);
+}
+
 template <typename INSTANCE_TYPE>
 class TextureTestCase : public TestCase
 {
@@ -298,6 +306,11 @@
 										{
 											initializePrograms(programCollection, m_testsParameters.texCoordPrecision, m_testsParameters.programs);
 										}
+	virtual void						checkSupport				(Context& context) const
+										{
+											checkTextureSupport(context, m_testsParameters);
+										}
+
 
 protected:
 	const typename INSTANCE_TYPE::ParameterType m_testsParameters;
diff --git a/external/vulkancts/modules/vulkan/texture/vktTextureTests.cpp b/external/vulkancts/modules/vulkan/texture/vktTextureTests.cpp
index 2bcfaa2..ed0d5f5 100644
--- a/external/vulkancts/modules/vulkan/texture/vktTextureTests.cpp
+++ b/external/vulkancts/modules/vulkan/texture/vktTextureTests.cpp
@@ -33,6 +33,7 @@
 #include "vktTextureCompressedFormatTests.hpp"
 #include "vktTextureSwizzleTests.hpp"
 #include "vktTextureSubgroupLodTests.hpp"
+#include "vktTextureConversionTests.hpp"
 
 namespace vkt
 {
@@ -53,6 +54,7 @@
 	textureTests->addChild(createTextureCompressedFormatTests	(testCtx));
 	textureTests->addChild(createTextureSwizzleTests			(testCtx));
 	textureTests->addChild(createTextureSubgroupLodTests		(testCtx));
+	textureTests->addChild(createTextureConversionTests			(testCtx));
 }
 
 } // anonymous
diff --git a/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackSimpleTests.cpp b/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackSimpleTests.cpp
index 2aff013..9d96bcc 100644
--- a/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackSimpleTests.cpp
+++ b/external/vulkancts/modules/vulkan/transform_feedback/vktTransformFeedbackSimpleTests.cpp
@@ -42,6 +42,8 @@
 #include "tcuRGBA.hpp"
 
 #include <iostream>
+#include <functional>
+#include <set>
 
 namespace vkt
 {
@@ -66,7 +68,16 @@
 	TEST_TYPE_XFB_CLIPDISTANCE,
 	TEST_TYPE_XFB_CULLDISTANCE,
 	TEST_TYPE_XFB_CLIP_AND_CULL,
+	TEST_TYPE_LINE_LIST,
+	TEST_TYPE_LINE_STRIP,
+	TEST_TYPE_TRIANGLE_LIST,
+	TEST_TYPE_TRIANGLE_STRIP,
+	TEST_TYPE_TRIANGLE_FAN,
+	TEST_TYPE_LINE_LIST_ADJACENCY,
+	TEST_TYPE_LINE_STRIP_ADJACENCY,
 	TEST_TYPE_TRIANGLE_STRIP_ADJACENCY,
+	TEST_TYPE_TRIANGLE_LIST_ADJACENCY,
+	TEST_TYPE_PATCH_LIST,
 	TEST_TYPE_STREAMS_POINTSIZE,
 	TEST_TYPE_STREAMS_CLIPDISTANCE,
 	TEST_TYPE_STREAMS_CULLDISTANCE,
@@ -134,6 +145,8 @@
 									   const VkPipelineLayout		pipelineLayout,
 									   const VkRenderPass			renderPass,
 									   const VkShaderModule			vertexModule,
+									   const VkShaderModule			tessellationControlModule,
+									   const VkShaderModule			tessellationEvalModule,
 									   const VkShaderModule			geometryModule,
 									   const VkShaderModule			fragmendModule,
 									   const VkExtent2D				renderSize,
@@ -182,22 +195,22 @@
 	};
 	const VkPipelineRasterizationStateCreateInfo*			rasterizationStateCreateInfoPtr		= (rasterizationStreamPtr == DE_NULL) ? DE_NULL : &rasterizationStateCreateInfo;
 
-	return makeGraphicsPipeline(vk,									// const DeviceInterface&							vk
-								device,								// const VkDevice									device
-								pipelineLayout,						// const VkPipelineLayout							pipelineLayout
-								vertexModule,						// const VkShaderModule								vertexShaderModule
-								DE_NULL,							// const VkShaderModule								tessellationControlModule
-								DE_NULL,							// const VkShaderModule								tessellationEvalModule
-								geometryModule,						// const VkShaderModule								geometryShaderModule
-								fragmendModule,						// const VkShaderModule								fragmentShaderModule
-								renderPass,							// const VkRenderPass								renderPass
-								viewports,							// const std::vector<VkViewport>&					viewports
-								scissors,							// const std::vector<VkRect2D>&						scissors
-								topology,							// const VkPrimitiveTopology						topology
-								subpass,							// const deUint32									subpass
-								0u,									// const deUint32									patchControlPoints
-								vertexInputStateCreateInfoPtr,		// const VkPipelineVertexInputStateCreateInfo*		vertexInputStateCreateInfo
-								rasterizationStateCreateInfoPtr);	// const VkPipelineRasterizationStateCreateInfo*	rasterizationStateCreateInfo
+	return makeGraphicsPipeline(vk,											// const DeviceInterface&							vk
+								device,										// const VkDevice									device
+								pipelineLayout,								// const VkPipelineLayout							pipelineLayout
+								vertexModule,								// const VkShaderModule								vertexShaderModule
+								tessellationControlModule,					// const VkShaderModule								tessellationControlModule
+								tessellationEvalModule,						// const VkShaderModule								tessellationEvalModule
+								geometryModule,								// const VkShaderModule								geometryShaderModule
+								fragmendModule,								// const VkShaderModule								fragmentShaderModule
+								renderPass,									// const VkRenderPass								renderPass
+								viewports,									// const std::vector<VkViewport>&					viewports
+								scissors,									// const std::vector<VkRect2D>&						scissors
+								topology,									// const VkPrimitiveTopology						topology
+								subpass,									// const deUint32									subpass
+								(tessellationEvalModule != DE_NULL) * 3u,	// const deUint32									patchControlPoints
+								vertexInputStateCreateInfoPtr,				// const VkPipelineVertexInputStateCreateInfo*		vertexInputStateCreateInfo
+								rasterizationStateCreateInfoPtr);			// const VkPipelineRasterizationStateCreateInfo*	rasterizationStateCreateInfo
 }
 
 VkImageCreateInfo makeImageCreateInfo (const VkImageCreateFlags flags, const VkImageType type, const VkFormat format, const VkExtent2D size, const deUint32 numLayers, const VkImageUsageFlags usage)
@@ -374,7 +387,8 @@
 	deUint32										getNextChunkSize				(const deUint32 usedBytes, const deUint32 bufBytes);
 	std::vector<VkDeviceSize>						generateSizesList				(const size_t bufBytes, const size_t chunkCount);
 	std::vector<VkDeviceSize>						generateOffsetsList				(const std::vector<VkDeviceSize>& sizesList);
-	void											verifyTransformFeedbackBuffer	(const MovePtr<Allocation>& bufAlloc, const deUint32 bufBytes);
+	void											verifyTransformFeedbackBuffer	(const MovePtr<Allocation>& bufAlloc,
+																					 const deUint32 bufBytes);
 
 	const bool										m_extensions;
 	const VkExtent2D								m_imageExtent2D;
@@ -495,12 +509,13 @@
 	return result;
 }
 
-void TransformFeedbackTestInstance::verifyTransformFeedbackBuffer (const MovePtr<Allocation>& bufAlloc, const deUint32 bufBytes)
+void TransformFeedbackTestInstance::verifyTransformFeedbackBuffer (const MovePtr<Allocation>& bufAlloc,
+																   const deUint32 bufBytes)
 {
 	const DeviceInterface&	vk			= m_context.getDeviceInterface();
 	const VkDevice			device		= m_context.getDevice();
 
-	invalidateMappedMemoryRange(vk, device, bufAlloc->getMemory(), bufAlloc->getOffset(), bufBytes);
+	invalidateAlloc(vk, device, *bufAlloc);
 
 	const deUint32			numPoints	= static_cast<deUint32>(bufBytes / sizeof(deUint32));
 	const deUint32*			tfData		= (deUint32*)bufAlloc->getHostPtr();
@@ -536,7 +551,7 @@
 	const Unique<VkRenderPass>			renderPass				(makeRenderPass							(vk, device, VK_FORMAT_UNDEFINED));
 	const Unique<VkFramebuffer>			framebuffer				(makeFramebuffer						(vk, device, *renderPass, 0u, DE_NULL, m_imageExtent2D.width, m_imageExtent2D.height));
 	const Unique<VkPipelineLayout>		pipelineLayout			(TransformFeedback::makePipelineLayout	(vk, device));
-	const Unique<VkPipeline>			pipeline				(makeGraphicsPipeline					(vk, device, *pipelineLayout, *renderPass, *vertexModule, DE_NULL, DE_NULL, m_imageExtent2D, 0u));
+	const Unique<VkPipeline>			pipeline				(makeGraphicsPipeline					(vk, device, *pipelineLayout, *renderPass, *vertexModule, DE_NULL, DE_NULL, DE_NULL, DE_NULL, m_imageExtent2D, 0u));
 	const Unique<VkCommandPool>			cmdPool					(createCommandPool						(vk, device, VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, queueFamilyIndex));
 	const Unique<VkCommandBuffer>		cmdBuffer				(allocateCommandBuffer					(vk, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY));
 
@@ -609,7 +624,7 @@
 	const Unique<VkRenderPass>				renderPass				(makeRenderPass							(vk, device, VK_FORMAT_UNDEFINED));
 	const Unique<VkFramebuffer>				framebuffer				(makeFramebuffer						(vk, device, *renderPass, 0u, DE_NULL, m_imageExtent2D.width, m_imageExtent2D.height));
 	const Unique<VkPipelineLayout>			pipelineLayout			(TransformFeedback::makePipelineLayout	(vk, device));
-	const Unique<VkPipeline>				pipeline				(makeGraphicsPipeline					(vk, device, *pipelineLayout, *renderPass, *vertexModule, DE_NULL, DE_NULL, m_imageExtent2D, 0u));
+	const Unique<VkPipeline>				pipeline				(makeGraphicsPipeline					(vk, device, *pipelineLayout, *renderPass, *vertexModule, DE_NULL, DE_NULL, DE_NULL, DE_NULL, m_imageExtent2D, 0u));
 
 	const Unique<VkCommandPool>				cmdPool					(createCommandPool						(vk, device, VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, queueFamilyIndex));
 	const Unique<VkCommandBuffer>			cmdBuffer				(allocateCommandBuffer					(vk, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY));
@@ -675,50 +690,205 @@
 	return tcu::TestStatus::pass("Pass");
 }
 
-class TransformFeedbackTriangleStripWithAdjacencyTestInstance : public TransformFeedbackTestInstance
+class TransformFeedbackWindingOrderTestInstance : public TransformFeedbackTestInstance
 {
 public:
-						TransformFeedbackTriangleStripWithAdjacencyTestInstance	(Context& context, const TestParameters& parameters);
+	TransformFeedbackWindingOrderTestInstance(Context& context, const TestParameters& parameters);
 
 protected:
-	tcu::TestStatus		iterate													(void);
-	void				verifyTransformFeedbackBuffer							(const MovePtr<Allocation>& bufAlloc, const VkDeviceSize bufBytes);
+	struct TopologyParameters
+	{
+		VkPrimitiveTopology topology;
+
+		// number of vertex in primitive; 2 for line, 3 for triangle
+		deUint32 vertexPerPrimitive;
+
+		// pointer to function calculating number of points that
+		// will be generated for given part count
+		std::function<deUint32(deUint32)> getNumGeneratedPoints;
+
+		// pointer to function generating expected values; parameter is
+		// primitive index, result array with expected data for primitive vertex
+		std::function<std::vector<deUint32>(deUint32)> getExpectedValuesForPrimitive;
+	};
+	typedef const std::map<TestType, TopologyParameters> TopologyParametersMap;
+
+protected:
+	const TopologyParametersMap&	getTopologyParametersMap					(void);
+	tcu::TestStatus					iterate										(void);
+	void							verifyTransformFeedbackBuffer				(const MovePtr<Allocation>& bufAlloc,
+																				 const deUint32 bufBytes);
+
+private:
+	TopologyParameters				m_tParameters;
+	const bool						m_requiresTesselationStage;
 };
 
-TransformFeedbackTriangleStripWithAdjacencyTestInstance::TransformFeedbackTriangleStripWithAdjacencyTestInstance (Context& context, const TestParameters& parameters)
+TransformFeedbackWindingOrderTestInstance::TransformFeedbackWindingOrderTestInstance(Context& context, const TestParameters& parameters)
 	: TransformFeedbackTestInstance	(context, parameters)
+	, m_requiresTesselationStage(parameters.testType == TEST_TYPE_PATCH_LIST)
 {
+	if (m_requiresTesselationStage && !context.getDeviceFeatures().tessellationShader)
+		throw tcu::NotSupportedError("Tessellation shader not supported");
+
+	TopologyParametersMap topologyParametersMap = getTopologyParametersMap();
+	DE_ASSERT(topologyParametersMap.find(parameters.testType) != topologyParametersMap.end());
+	m_tParameters = topologyParametersMap.at(parameters.testType);
 }
 
-tcu::TestStatus TransformFeedbackTriangleStripWithAdjacencyTestInstance::iterate (void)
+const TransformFeedbackWindingOrderTestInstance::TopologyParametersMap& TransformFeedbackWindingOrderTestInstance::getTopologyParametersMap(void)
 {
-	const DeviceInterface&				vk						= m_context.getDeviceInterface();
-	const VkDevice						device					= m_context.getDevice();
-	const deUint32						queueFamilyIndex		= m_context.getUniversalQueueFamilyIndex();
-	const VkQueue						queue					= m_context.getUniversalQueue();
-	Allocator&							allocator				= m_context.getDefaultAllocator();
+	static const TopologyParametersMap topologyParametersMap =
+	{
+		{
+			TEST_TYPE_LINE_LIST,
+			{
+				VK_PRIMITIVE_TOPOLOGY_LINE_LIST,
+				2u,
+				[](deUint32 partCount)	{	return partCount;	},
+				[](deUint32 i)			{	return std::vector<deUint32>{ 2 * i, 2 * i + 1u };	}
+			}
+		},
+		{
+			TEST_TYPE_LINE_STRIP,
+			{
+				VK_PRIMITIVE_TOPOLOGY_LINE_STRIP,
+				2u,
+				[](deUint32 partCount)	{	return 2u * (partCount - 1);	},
+				[](deUint32 i)			{	return std::vector<deUint32>{ i, i + 1u };	}
+			}
+		},
+		{
+			TEST_TYPE_TRIANGLE_LIST,
+			{
+				VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
+				3u,
+				[](deUint32 partCount)	{	return partCount;	},
+				[](deUint32 i)			{	return std::vector<deUint32>{ 3 * i, 3 * i + 1u, 3 * i + 2u };	}
+			}
+		},
+		{
+			TEST_TYPE_TRIANGLE_STRIP,
+			{
+				VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,
+				3u,
+				[](deUint32 partCount)	{	return 3u * (partCount - 2);	},
+				[](deUint32 i)
+				{
+					const deUint32	iMod2 = i % 2;
+					return std::vector<deUint32>{ i, i + 1 + iMod2, i + 2 - iMod2 };
+				}
+			}
+		},
+		{
+			TEST_TYPE_TRIANGLE_FAN,
+			{
+				VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN,
+				3u,
+				[](deUint32 partCount)	{	return partCount;	},
+				[](deUint32 i)			{	return std::vector<deUint32>{ i + 1, i + 2, 0 };	}
+			}
+		},
+		{
+			TEST_TYPE_LINE_LIST_ADJACENCY,
+			{
+				VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY,
+				2u,
+				[](deUint32 partCount)	{	return partCount / 4u;	},		// note: this cant be replaced with partCount / 2 as for partCount=6 we will get 3 instead of 2
+				[](deUint32 i)			{	return std::vector<deUint32>{ i + 1u, i + 2u };	}
+			}
+		},
+		{
+			TEST_TYPE_LINE_STRIP_ADJACENCY,
+			{
+				VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY,
+				2u,
+				[](deUint32 partCount)	{	return 2u * (partCount - 3u);	},
+				[](deUint32 i)			{	return std::vector<deUint32>{ i + 1u, i + 2u };	}
+			}
+		},
+		{
+			TEST_TYPE_TRIANGLE_LIST_ADJACENCY,
+			{
+				VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY,
+				3u,
+				[](deUint32 partCount)	{	return partCount / 2u;	},
+				[](deUint32 i)			{	return std::vector<deUint32>{ 6 * i, 6 * i + 2u, 6 * i + 4u	};	}
+			}
+		},
+		{
+			TEST_TYPE_TRIANGLE_STRIP_ADJACENCY,
+			{
+				VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY,
+				3u,
+				[](deUint32 partCount)	{	return 3u * (partCount / 2u - 2u);	},
+				[](deUint32 i)
+				{
+					const bool even = (0 == i % 2);
+					if (even)
+						return std::vector<deUint32>{ 2 * i + 0, 2 * i + 2, 2 * i + 4 };
+					return std::vector<deUint32>{ 2 * i + 0, 2 * i + 4, 2 * i + 2 };
+				}
+			}
+		},
+		{
+			TEST_TYPE_PATCH_LIST,
+			{
+				VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,
+				9u,
+				[](deUint32 partCount)	{	return partCount * 3u;	},
+				[](deUint32 i)
+				{
+					// we cant generate vertex numbers in tesselation evaluation shader;
+					// check if patch index is correct for every 9 generated vertex
+					return std::vector<deUint32>(9, i);
+				}
+			}
+		}
+	};
 
+	return topologyParametersMap;
+}
+
+tcu::TestStatus TransformFeedbackWindingOrderTestInstance::iterate (void)
+{
 	DE_ASSERT(m_parameters.partCount >= 6);
 
-	const VkPrimitiveTopology			topology				(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY);
-	const Unique<VkShaderModule>		vertexModule			(createShaderModule						(vk, device, m_context.getBinaryCollection().get("vert"), 0u));
-	const Unique<VkRenderPass>			renderPass				(makeRenderPass							(vk, device, VK_FORMAT_UNDEFINED));
-	const Unique<VkFramebuffer>			framebuffer				(makeFramebuffer						(vk, device, *renderPass, 0u, DE_NULL, m_imageExtent2D.width, m_imageExtent2D.height));
-	const Unique<VkPipelineLayout>		pipelineLayout			(TransformFeedback::makePipelineLayout	(vk, device));
-	const Unique<VkPipeline>			pipeline				(makeGraphicsPipeline					(vk, device, *pipelineLayout, *renderPass, *vertexModule, DE_NULL, DE_NULL, m_imageExtent2D, 0u, DE_NULL, topology));
-	const Unique<VkCommandPool>			cmdPool					(createCommandPool						(vk, device, VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, queueFamilyIndex));
-	const Unique<VkCommandBuffer>		cmdBuffer				(allocateCommandBuffer					(vk, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY));
+	const DeviceInterface&			vk					= m_context.getDeviceInterface();
+	const VkDevice					device				= m_context.getDevice();
+	const deUint32					queueFamilyIndex	= m_context.getUniversalQueueFamilyIndex();
+	const VkQueue					queue				= m_context.getUniversalQueue();
+	Allocator&						allocator			= m_context.getDefaultAllocator();
 
-	const deUint32						numPrimitives			= m_parameters.partCount / 2u - 2u;
-	const deUint32						numPoints				= 3u * numPrimitives;
-	const VkDeviceSize					bufferSize				= numPoints * sizeof(deUint32);
-	const VkBufferCreateInfo			tfBufCreateInfo			= makeBufferCreateInfo(bufferSize, VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT);
-	const Move<VkBuffer>				tfBuf					= createBuffer(vk, device, &tfBufCreateInfo);
-	const MovePtr<Allocation>			tfBufAllocation			= allocator.allocate(getBufferMemoryRequirements(vk, device, *tfBuf), MemoryRequirement::HostVisible);
-	const VkMemoryBarrier				tfMemoryBarrier			= makeMemoryBarrier(VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, VK_ACCESS_HOST_READ_BIT);
-	const VkDeviceSize					tfBufBindingSize		= bufferSize;
-	const VkDeviceSize					tfBufBindingOffset		= 0u;
-	const deUint32						startValue				= 0u;
+	const Move<VkShaderModule>		vertexModule(createShaderModule(vk, device, m_context.getBinaryCollection().get("vert"), 0u));
+	Move<VkShaderModule>			tescModule;
+	Move<VkShaderModule>			teseModule;
+	if (m_requiresTesselationStage)
+	{
+		tescModule = createShaderModule(vk, device, m_context.getBinaryCollection().get("tesc"), 0u);
+		teseModule = createShaderModule(vk, device, m_context.getBinaryCollection().get("tese"), 0u);
+	}
+
+	const Unique<VkRenderPass>		renderPass			(makeRenderPass							(vk, device, VK_FORMAT_UNDEFINED));
+	const Unique<VkFramebuffer>		framebuffer			(makeFramebuffer						(vk, device, *renderPass, 0u, DE_NULL, m_imageExtent2D.width, m_imageExtent2D.height));
+	const Unique<VkPipelineLayout>	pipelineLayout		(TransformFeedback::makePipelineLayout	(vk, device));
+	const Unique<VkPipeline>		pipeline			(makeGraphicsPipeline					(vk, device, *pipelineLayout, *renderPass,
+																								 *vertexModule,
+																								 m_requiresTesselationStage ? *tescModule : DE_NULL,
+																								 m_requiresTesselationStage ? *teseModule : DE_NULL,
+																								 DE_NULL,
+																								 DE_NULL,
+																								 m_imageExtent2D, 0u, DE_NULL, m_tParameters.topology));
+	const Unique<VkCommandPool>		cmdPool				(createCommandPool						(vk, device, VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, queueFamilyIndex));
+	const Unique<VkCommandBuffer>	cmdBuffer			(allocateCommandBuffer					(vk, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY));
+	const VkDeviceSize				bufferSize			= m_tParameters.getNumGeneratedPoints	(m_parameters.partCount) * sizeof(deUint32);
+	const VkBufferCreateInfo		tfBufCreateInfo		= makeBufferCreateInfo					(bufferSize, VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT);
+	const Move<VkBuffer>			tfBuf				= createBuffer							(vk, device, &tfBufCreateInfo);
+	const MovePtr<Allocation>		tfBufAllocation		= allocator.allocate					(getBufferMemoryRequirements(vk, device, *tfBuf), MemoryRequirement::HostVisible);
+	const VkMemoryBarrier			tfMemoryBarrier		= makeMemoryBarrier						(VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, VK_ACCESS_HOST_READ_BIT);
+	const VkDeviceSize				tfBufBindingSize	= bufferSize;
+	const VkDeviceSize				tfBufBindingOffset	= 0u;
+	const deUint32					startValue			= 0u;
 
 	VK_CHECK(vk.bindBufferMemory(device, *tfBuf, tfBufAllocation->getMemory(), tfBufAllocation->getOffset()));
 
@@ -745,51 +915,62 @@
 	endCommandBuffer(vk, *cmdBuffer);
 	submitCommandsAndWait(vk, device, queue, *cmdBuffer);
 
-	verifyTransformFeedbackBuffer(tfBufAllocation, bufferSize);
+	verifyTransformFeedbackBuffer(tfBufAllocation, static_cast<deUint32>(bufferSize));
 
 	return tcu::TestStatus::pass("Pass");
 }
 
-void TransformFeedbackTriangleStripWithAdjacencyTestInstance::verifyTransformFeedbackBuffer (const MovePtr<Allocation>& bufAlloc, const VkDeviceSize bufBytes)
+void TransformFeedbackWindingOrderTestInstance::verifyTransformFeedbackBuffer(const MovePtr<Allocation>& bufAlloc,
+																			  const deUint32 bufBytes)
 {
-	const DeviceInterface&	vk			= m_context.getDeviceInterface();
-	const VkDevice			device		= m_context.getDevice();
+	const DeviceInterface&	vk		= m_context.getDeviceInterface();
+	const VkDevice			device	= m_context.getDevice();
 
-	invalidateMappedMemoryRange(vk, device, bufAlloc->getMemory(), bufAlloc->getOffset(), VK_WHOLE_SIZE);
+	invalidateAlloc(vk, device, *bufAlloc);
 
-	const deUint32			numPoints	= static_cast<deUint32>(bufBytes / sizeof(deUint32));
-	const deUint32*			tfData		= (deUint32*)bufAlloc->getHostPtr();
+	const deUint32	numPoints			= static_cast<deUint32>(bufBytes / sizeof(deUint32));
+	const deUint32	vertexPerPrimitive	= m_tParameters.vertexPerPrimitive;
+	const deUint32	numPrimitives		= numPoints / vertexPerPrimitive;
+	const deUint32*	tfData				= (deUint32*)bufAlloc->getHostPtr();
 
-	for (deUint32 dataNdx = 0; dataNdx + 2 < numPoints; dataNdx += 3)
+	for (deUint32 primitiveIndex = 0; primitiveIndex < numPrimitives; ++primitiveIndex)
 	{
-		const deUint32	i			= dataNdx / 3;
-		const bool		even		= (0 == i % 2);
-		deUint32		vertexNumbers[3];
-		bool			correctWinding = false;
+		const deUint32*			tfDataForPrimitive			= &tfData[primitiveIndex * vertexPerPrimitive];
+		std::vector<deUint32>	expectedDataForPrimitive	= m_tParameters.getExpectedValuesForPrimitive(primitiveIndex);
 
-		if (even)
+		// For multi - vertex primitives, all values for a given vertex are written before writing values for any other vertex.
+		// Implementations may write out any vertex within the primitive first, but all subsequent vertices for that primitive
+		// must be written out in a consistent winding order
+		bool correctWinding = true;
+		for (deUint32 combinationIndex = 0; combinationIndex < vertexPerPrimitive; combinationIndex++)
 		{
-			vertexNumbers[0] = 2 * i + 0;
-			vertexNumbers[1] = 2 * i + 2;
-			vertexNumbers[2] = 2 * i + 4;
-		}
-		else
-		{
-			vertexNumbers[0] = 2 * i + 0;
-			vertexNumbers[1] = 2 * i + 4;
-			vertexNumbers[2] = 2 * i + 2;
-		}
+			correctWinding = true;
+			for (deUint32 vertexIndex = 0; vertexIndex < vertexPerPrimitive; vertexIndex++)
+			{
+				correctWinding &= (tfDataForPrimitive[vertexIndex] == expectedDataForPrimitive[(combinationIndex + vertexIndex) % vertexPerPrimitive]);
 
-		for (deUint32 j = 0; j < 3 && !correctWinding; j++)
-		{
-			correctWinding = (tfData[dataNdx] == vertexNumbers[j] && tfData[dataNdx + 1] == vertexNumbers[(j+1) % 3] && tfData[dataNdx + 2] == vertexNumbers[(j+2) % 3]);
+				// if data for this vertex is not correct then there
+				// is no need to check other, go to next combination
+				if (!correctWinding)
+					break;
+			}
+
+			// no need to check other combinations, we found correct one
+			if (correctWinding)
+				break;
 		}
 
 		if (!correctWinding)
 		{
-			TCU_FAIL(std::string("Failed at item ") + de::toString(dataNdx) +
-					" received: " + de::toString(tfData[dataNdx]) + "," + de::toString(tfData[dataNdx + 1]) + "," + de::toString(tfData[dataNdx + 2]) +
-					" expected: " + de::toString(vertexNumbers[0]) + "," + de::toString(vertexNumbers[1]) + "," + de::toString(vertexNumbers[2]) );
+			std::stringstream message;
+			message << "Failed at primitive " << primitiveIndex << " received: [";
+			for (deUint32 vertexIndex = 0; vertexIndex < vertexPerPrimitive; vertexIndex++)
+				message << de::toString(tfDataForPrimitive[vertexIndex]) << " ";
+			message << "] expected: [";
+			for (deUint32 vertexIndex = 0; vertexIndex < vertexPerPrimitive; vertexIndex++)
+				message << de::toString(expectedDataForPrimitive[vertexIndex]) << " ";
+			message << "]";
+			TCU_FAIL(message.str());
 		}
 	}
 }
@@ -827,7 +1008,7 @@
 	const DeviceInterface&	vk			= m_context.getDeviceInterface();
 	const VkDevice			device		= m_context.getDevice();
 
-	invalidateMappedMemoryRange(vk, device, bufAlloc->getMemory(), bufAlloc->getOffset(), VK_WHOLE_SIZE);
+	invalidateAlloc(vk, device, *bufAlloc);
 
 	const deUint32			numPoints	= static_cast<deUint32>(bufBytes / sizeof(float));
 	const deUint8*			tfDataBytes	= (deUint8*)bufAlloc->getHostPtr();
@@ -856,7 +1037,7 @@
 	const Unique<VkRenderPass>			renderPass				(makeRenderPass							(vk, device, VK_FORMAT_UNDEFINED));
 	const Unique<VkFramebuffer>			framebuffer				(makeFramebuffer						(vk, device, *renderPass, 0u, DE_NULL, m_imageExtent2D.width, m_imageExtent2D.height));
 	const Unique<VkPipelineLayout>		pipelineLayout			(TransformFeedback::makePipelineLayout	(vk, device));
-	const Unique<VkPipeline>			pipeline				(makeGraphicsPipeline					(vk, device, *pipelineLayout, *renderPass, *vertexModule, DE_NULL, DE_NULL, m_imageExtent2D, 0u));
+	const Unique<VkPipeline>			pipeline				(makeGraphicsPipeline					(vk, device, *pipelineLayout, *renderPass, *vertexModule, DE_NULL, DE_NULL, DE_NULL, DE_NULL, m_imageExtent2D, 0u));
 	const Unique<VkCommandPool>			cmdPool					(createCommandPool						(vk, device, VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, queueFamilyIndex));
 	const Unique<VkCommandBuffer>		cmdBuffer				(allocateCommandBuffer					(vk, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY));
 
@@ -973,7 +1154,7 @@
 	const DeviceInterface&	vk			= m_context.getDeviceInterface();
 	const VkDevice			device		= m_context.getDevice();
 
-	invalidateMappedMemoryRange(vk, device, bufAlloc->getMemory(), bufAlloc->getOffset(), bufBytes);
+	invalidateAlloc(vk, device, *bufAlloc);
 
 	const deUint32			numPoints	= static_cast<deUint32>(bufBytes / sizeof(deUint32));
 	const float*			tfData		= (float*)bufAlloc->getHostPtr();
@@ -998,7 +1179,7 @@
 
 	const Unique<VkFramebuffer>			framebuffer				(makeFramebuffer						(vk, device, *renderPass, 0u, DE_NULL, m_imageExtent2D.width, m_imageExtent2D.height));
 	const Unique<VkPipelineLayout>		pipelineLayout			(TransformFeedback::makePipelineLayout	(vk, device));
-	const Unique<VkPipeline>			pipeline				(makeGraphicsPipeline					(vk, device, *pipelineLayout, *renderPass, *vertexModule, *geomModule, DE_NULL, m_imageExtent2D, 0u));
+	const Unique<VkPipeline>			pipeline				(makeGraphicsPipeline					(vk, device, *pipelineLayout, *renderPass, *vertexModule, DE_NULL, DE_NULL, *geomModule, DE_NULL, m_imageExtent2D, 0u));
 	const Unique<VkCommandPool>			cmdPool					(createCommandPool						(vk, device, VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, queueFamilyIndex));
 	const Unique<VkCommandBuffer>		cmdBuffer				(allocateCommandBuffer					(vk, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY));
 
@@ -1164,7 +1345,7 @@
 
 	const Unique<VkFramebuffer>			framebuffer			(makeFramebuffer						(vk, device, *renderPass, *colorAttachment, m_imageExtent2D.width, m_imageExtent2D.height));
 	const Unique<VkPipelineLayout>		pipelineLayout		(TransformFeedback::makePipelineLayout	(vk, device));
-	const Unique<VkPipeline>			pipeline			(makeGraphicsPipeline					(vk, device, *pipelineLayout, *renderPass, *vertModule, *geomModule, *fragModule, m_imageExtent2D, 0u, &m_parameters.streamId));
+	const Unique<VkPipeline>			pipeline			(makeGraphicsPipeline					(vk, device, *pipelineLayout, *renderPass, *vertModule, DE_NULL, DE_NULL, *geomModule, *fragModule, m_imageExtent2D, 0u, &m_parameters.streamId));
 	const Unique<VkCommandPool>			cmdPool				(createCommandPool						(vk, device, VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, queueFamilyIndex));
 	const Unique<VkCommandBuffer>		cmdBuffer			(allocateCommandBuffer					(vk, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY));
 
@@ -1304,7 +1485,7 @@
 
 	const Unique<VkFramebuffer>			framebuffer			(makeFramebuffer						(vk, device, *renderPass, *colorAttachment, m_imageExtent2D.width, m_imageExtent2D.height));
 	const Unique<VkPipelineLayout>		pipelineLayout		(TransformFeedback::makePipelineLayout	(vk, device));
-	const Unique<VkPipeline>			pipeline			(makeGraphicsPipeline					(vk, device, *pipelineLayout, *renderPass, *vertModule, DE_NULL, *fragModule, m_imageExtent2D, 0u, DE_NULL, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, true));
+	const Unique<VkPipeline>			pipeline			(makeGraphicsPipeline					(vk, device, *pipelineLayout, *renderPass, *vertModule, DE_NULL, DE_NULL, DE_NULL, *fragModule, m_imageExtent2D, 0u, DE_NULL, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, true));
 	const Unique<VkCommandPool>			cmdPool				(createCommandPool						(vk, device, VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, queueFamilyIndex));
 	const Unique<VkCommandBuffer>		cmdBuffer			(allocateCommandBuffer					(vk, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY));
 
@@ -1386,7 +1567,7 @@
 	const Unique<VkRenderPass>			renderPass			(TransformFeedback::makeRenderPass		(vk, device));
 	const Unique<VkFramebuffer>			framebuffer			(makeFramebuffer						(vk, device, *renderPass, 0u, DE_NULL, m_imageExtent2D.width, m_imageExtent2D.height));
 	const Unique<VkPipelineLayout>		pipelineLayout		(TransformFeedback::makePipelineLayout	(vk, device));
-	const Unique<VkPipeline>			pipeline			(makeGraphicsPipeline					(vk, device, *pipelineLayout, *renderPass, *vertexModule, DE_NULL, DE_NULL, m_imageExtent2D, 0u));
+	const Unique<VkPipeline>			pipeline			(makeGraphicsPipeline					(vk, device, *pipelineLayout, *renderPass, *vertexModule, DE_NULL, DE_NULL, DE_NULL, DE_NULL, m_imageExtent2D, 0u));
 	const Unique<VkCommandPool>			cmdPool				(createCommandPool						(vk, device, VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, queueFamilyIndex));
 	const Unique<VkCommandBuffer>		cmdBuffer			(allocateCommandBuffer					(vk, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY));
 
@@ -1520,7 +1701,7 @@
 
 	const Unique<VkFramebuffer>			framebuffer				(makeFramebuffer						(vk, device, *renderPass, 0u, DE_NULL, m_imageExtent2D.width, m_imageExtent2D.height));
 	const Unique<VkPipelineLayout>		pipelineLayout			(TransformFeedback::makePipelineLayout	(vk, device));
-	const Unique<VkPipeline>			pipeline				(makeGraphicsPipeline					(vk, device, *pipelineLayout, *renderPass, *vertModule, *geomModule, DE_NULL, m_imageExtent2D, 0u));
+	const Unique<VkPipeline>			pipeline				(makeGraphicsPipeline					(vk, device, *pipelineLayout, *renderPass, *vertModule, DE_NULL, DE_NULL, *geomModule, DE_NULL, m_imageExtent2D, 0u));
 	const Unique<VkCommandPool>			cmdPool					(createCommandPool						(vk, device, VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, queueFamilyIndex));
 	const Unique<VkCommandBuffer>		cmdBuffer				(allocateCommandBuffer					(vk, device, *cmdPool, VK_COMMAND_BUFFER_LEVEL_PRIMARY));
 
@@ -1736,8 +1917,21 @@
 	if (m_parameters.testType == TEST_TYPE_XFB_CLIP_AND_CULL)
 		return new TransformFeedbackBuiltinTestInstance(context, m_parameters);
 
-	if (m_parameters.testType == TEST_TYPE_TRIANGLE_STRIP_ADJACENCY)
-		return new TransformFeedbackTriangleStripWithAdjacencyTestInstance(context, m_parameters);
+	static const std::set<TestType> windingTests =
+	{
+		TEST_TYPE_LINE_LIST,
+		TEST_TYPE_LINE_STRIP,
+		TEST_TYPE_TRIANGLE_LIST,
+		TEST_TYPE_TRIANGLE_STRIP,
+		TEST_TYPE_TRIANGLE_FAN,
+		TEST_TYPE_LINE_LIST_ADJACENCY,
+		TEST_TYPE_LINE_STRIP_ADJACENCY,
+		TEST_TYPE_TRIANGLE_STRIP_ADJACENCY,
+		TEST_TYPE_TRIANGLE_LIST_ADJACENCY,
+		TEST_TYPE_PATCH_LIST
+	};
+	if (windingTests.count(m_parameters.testType))
+		return new TransformFeedbackWindingOrderTestInstance(context, m_parameters);
 
 	if (m_parameters.testType == TEST_TYPE_STREAMS)
 		return new TransformFeedbackStreamsTestInstance(context, m_parameters);
@@ -1773,11 +1967,20 @@
 	const bool vertexShaderOnly		=  m_parameters.testType == TEST_TYPE_BASIC
 									|| m_parameters.testType == TEST_TYPE_RESUME
 									|| m_parameters.testType == TEST_TYPE_BACKWARD_DEPENDENCY
-									|| m_parameters.testType == TEST_TYPE_TRIANGLE_STRIP_ADJACENCY;
+									|| m_parameters.testType == TEST_TYPE_LINE_LIST
+									|| m_parameters.testType == TEST_TYPE_LINE_STRIP
+									|| m_parameters.testType == TEST_TYPE_TRIANGLE_LIST
+									|| m_parameters.testType == TEST_TYPE_TRIANGLE_STRIP
+									|| m_parameters.testType == TEST_TYPE_TRIANGLE_FAN
+									|| m_parameters.testType == TEST_TYPE_LINE_LIST_ADJACENCY
+									|| m_parameters.testType == TEST_TYPE_LINE_STRIP_ADJACENCY
+									|| m_parameters.testType == TEST_TYPE_TRIANGLE_STRIP_ADJACENCY
+									|| m_parameters.testType == TEST_TYPE_TRIANGLE_LIST_ADJACENCY;
 	const bool requiresFullPipeline	=  m_parameters.testType == TEST_TYPE_STREAMS
 									|| m_parameters.testType == TEST_TYPE_STREAMS_POINTSIZE
 									|| m_parameters.testType == TEST_TYPE_STREAMS_CULLDISTANCE
-									|| m_parameters.testType == TEST_TYPE_STREAMS_CLIPDISTANCE;
+									|| m_parameters.testType == TEST_TYPE_STREAMS_CLIPDISTANCE
+									|| m_parameters.testType == TEST_TYPE_PATCH_LIST;
 	const bool xfbBuiltinPipeline	=  m_parameters.testType == TEST_TYPE_XFB_POINTSIZE
 									|| m_parameters.testType == TEST_TYPE_XFB_CLIPDISTANCE
 									|| m_parameters.testType == TEST_TYPE_XFB_CULLDISTANCE
@@ -1808,6 +2011,55 @@
 		return;
 	}
 
+	if (m_parameters.testType == TEST_TYPE_PATCH_LIST)
+	{
+		// Vertex shader
+		{
+			std::ostringstream src;
+			src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450) << "\n"
+				<< "layout(push_constant) uniform pushConstants\n"
+				<< "{\n"
+				<< "    uint start;\n"
+				<< "} uInput;\n"
+				<< "void main(void)\n"
+				<< "{\n"
+				<< "    //idx_out = uInput.start + gl_VertexIndex;\n"				// TODO
+				<< "}\n";
+			programCollection.glslSources.add("vert") << glu::VertexSource(src.str());
+		}
+
+		// Tesselation control shader
+		{
+			std::ostringstream src;
+			src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450) << "\n"
+				<< "layout(vertices = 3) out;\n"
+				<< "void main (void)\n"
+				<< "{\n"
+				<< "    gl_TessLevelInner[0] = 2.0;\n" // generate three triangles out of each patch
+				<< "    gl_TessLevelOuter[0] = 1.0;\n"
+				<< "    gl_TessLevelOuter[1] = 1.0;\n"
+				<< "    gl_TessLevelOuter[2] = 1.0;\n"
+				<< "}\n";
+			programCollection.glslSources.add("tesc") << glu::TessellationControlSource(src.str());
+		}
+
+		// Tessellation evaluation shader
+		{
+			std::ostringstream src;
+			src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450) << "\n"
+				<< "layout(triangles, ccw) in;\n"
+				<< "layout(xfb_buffer = 0, xfb_offset = 0, xfb_stride = 4, location = 0) out uint idx_out;\n"
+				<< "\n"
+				<< "void main (void)\n"
+				<< "{\n"
+				<< "    idx_out = gl_PrimitiveID;\n" // all vertex generated from patch will have its id
+				<< "}\n";
+			programCollection.glslSources.add("tese") << glu::TessellationEvaluationSource(src.str());
+		}
+
+		return;
+	}
+
 	if (xfbBuiltinPipeline)
 	{
 		const std::string	outputBuiltIn		= (m_parameters.testType == TEST_TYPE_XFB_POINTSIZE)     ? "float gl_PointSize;\n"
@@ -2159,22 +2411,113 @@
 			const deUint32		s	= m_parameters.streamId;
 			std::ostringstream	src;
 
-			src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450) << "\n"
-				<< "\n"
-				<< "layout(points) in;\n"
-				<< "layout(location = 0) in vec4 in0[];\n"
-				<< "\n"
-				<< "layout(points, max_vertices = 1) out;\n"
-				<< "layout(stream = " << s << ", xfb_buffer = 0, xfb_offset = 0, xfb_stride = 16, location = 0) out vec4 out0;\n"
-				<< "\n"
-				<< "void main(void)\n"
-				<< "{\n"
-				<< "    out0 = in0[0];\n"
-				<< "    EmitStreamVertex(" << s << ");\n"
-				<< "    EndStreamPrimitive(" << s << ");\n"
-				<< "}\n";
+			if (m_parameters.testType == TEST_TYPE_QUERY_GET)
+			{
+				// The SPIR-V program below is roughly equivalent to the following GLSL code:
+				//
+				// #version 450
+				// #extension GL_ARB_enhanced_layouts : require
+				//
+				// layout(points) in;
+				// layout(location = 0) in vec4 in0[];
+				//
+				// layout(points, max_vertices = 1) out;
+				// layout(location=0, stream=1, xfb_buffer=0, xfb_stride=16) out OutBlock {
+				//     layout(xfb_offset=0, location=0) vec4 out0;
+				// } outBlock;
+				//
+				// void main(void)
+				// {
+				//     outBlock.out0 = in0[0];
+				//     EmitStreamVertex(1);
+				//     EndStreamPrimitive(1);
+				// }
+				//
+				// However, the stream number has been parametrized and the code generated by glslang has been tuned to move the
+				// Stream, XfbBuffer and XfbStride decorations to the structure member instead of the block. This allows us to test
+				// transform feedback decorations on structure members as part of these basic tests.
+				src	<< "; SPIR-V\n"
+					<< "; Version: 1.0\n"
+					<< "; Generator: Khronos Glslang Reference Front End; 8\n"
+					<< "; Bound: 24\n"
+					<< "; Schema: 0\n"
+					<< "               OpCapability Geometry\n"
+					<< "               OpCapability TransformFeedback\n"
+					<< "               OpCapability GeometryStreams\n"
+					<< "          %1 = OpExtInstImport \"GLSL.std.450\"\n"
+					<< "               OpMemoryModel Logical GLSL450\n"
+					<< "               OpEntryPoint Geometry %main \"main\" %outBlock %in0\n"
+					<< "               OpExecutionMode %main Xfb\n"
+					<< "               OpExecutionMode %main InputPoints\n"
+					<< "               OpExecutionMode %main Invocations 1\n"
+					<< "               OpExecutionMode %main OutputPoints\n"
+					<< "               OpExecutionMode %main OutputVertices 1\n"
+					<< "               OpSource GLSL 450\n"
+					<< "               OpSourceExtension \"GL_ARB_enhanced_layouts\"\n"
+					<< "               OpName %main \"main\"\n"
+					<< "               OpName %OutBlock \"OutBlock\"\n"
+					<< "               OpMemberName %OutBlock 0 \"out0\"\n"
+					<< "               OpName %outBlock \"outBlock\"\n"
+					<< "               OpName %in0 \"in0\"\n"
+					<< "               OpMemberDecorate %OutBlock 0 Location 0\n"
+					<< "               OpMemberDecorate %OutBlock 0 Offset 0\n"
+					// These Stream, XfbBuffer and XfbStride decorations have been moved to the struct member.
+					<< "               OpMemberDecorate %OutBlock 0 Stream " << s << "\n"
+					<< "               OpMemberDecorate %OutBlock 0 XfbBuffer 0\n"
+					<< "               OpMemberDecorate %OutBlock 0 XfbStride 16\n"
+					<< "               OpDecorate %OutBlock Block\n"
+					// The decorations mentioned above were using OpDecorate and assigned to %outBlock itself here.
+					<< "               OpDecorate %in0 Location 0\n"
+					<< "       %void = OpTypeVoid\n"
+					<< "          %3 = OpTypeFunction %void\n"
+					<< "      %float = OpTypeFloat 32\n"
+					<< "    %v4float = OpTypeVector %float 4\n"
+					<< "   %OutBlock = OpTypeStruct %v4float\n"
+					<< "%_ptr_Output_OutBlock = OpTypePointer Output %OutBlock\n"
+					<< "   %outBlock = OpVariable %_ptr_Output_OutBlock Output\n"
+					<< "        %int = OpTypeInt 32 1\n"
+					<< "      %int_0 = OpConstant %int 0\n"
+					<< "       %uint = OpTypeInt 32 0\n"
+					<< "     %uint_1 = OpConstant %uint 1\n"
+					<< "%_arr_v4float_uint_1 = OpTypeArray %v4float %uint_1\n"
+					<< "%_ptr_Input__arr_v4float_uint_1 = OpTypePointer Input %_arr_v4float_uint_1\n"
+					<< "        %in0 = OpVariable %_ptr_Input__arr_v4float_uint_1 Input\n"
+					<< "%_ptr_Input_v4float = OpTypePointer Input %v4float\n"
+					<< "%_ptr_Output_v4float = OpTypePointer Output %v4float\n"
+					<< "  %streamNum = OpConstant %int " << s << "\n"
+					<< "       %main = OpFunction %void None %3\n"
+					<< "          %5 = OpLabel\n"
+					<< "         %19 = OpAccessChain %_ptr_Input_v4float %in0 %int_0\n"
+					<< "         %20 = OpLoad %v4float %19\n"
+					<< "         %22 = OpAccessChain %_ptr_Output_v4float %outBlock %int_0\n"
+					<< "               OpStore %22 %20\n"
+					<< "               OpEmitStreamVertex %streamNum\n"
+					<< "               OpEndStreamPrimitive %streamNum\n"
+					<< "               OpReturn\n"
+					<< "               OpFunctionEnd\n"
+					;
 
-			programCollection.glslSources.add("geom") << glu::GeometrySource(src.str());
+				programCollection.spirvAsmSources.add("geom") << src.str();
+			}
+			else
+			{
+				src << glu::getGLSLVersionDeclaration(glu::GLSL_VERSION_450) << "\n"
+					<< "\n"
+					<< "layout(points) in;\n"
+					<< "layout(location = 0) in vec4 in0[];\n"
+					<< "\n"
+					<< "layout(points, max_vertices = 1) out;\n"
+					<< "layout(stream = " << s << ", xfb_buffer = 0, xfb_offset = 0, xfb_stride = 16, location = 0) out vec4 out0;\n"
+					<< "\n"
+					<< "void main(void)\n"
+					<< "{\n"
+					<< "    out0 = in0[0];\n"
+					<< "    EmitStreamVertex(" << s << ");\n"
+					<< "    EndStreamPrimitive(" << s << ");\n"
+					<< "}\n";
+
+				programCollection.glslSources.add("geom") << glu::GeometrySource(src.str());
+			}
 		}
 
 		return;
@@ -2217,8 +2560,33 @@
 
 	{
 		const deUint32		bufferCounts[]	= { 6, 8, 10, 12 };
-		const TestType		testTypes[]		= { TEST_TYPE_TRIANGLE_STRIP_ADJACENCY };
-		const std::string	testTypeNames[]	= { "triangle_strip_with_adjacency"};
+		const TestType		testTypes[]		=
+		{
+			// note: no need to test POINT_LIST as is tested in many tests
+			TEST_TYPE_LINE_LIST,
+			TEST_TYPE_LINE_STRIP,
+			TEST_TYPE_TRIANGLE_LIST,
+			TEST_TYPE_TRIANGLE_STRIP,
+			TEST_TYPE_TRIANGLE_FAN,
+			TEST_TYPE_LINE_LIST_ADJACENCY,
+			TEST_TYPE_LINE_STRIP_ADJACENCY,
+			TEST_TYPE_TRIANGLE_STRIP_ADJACENCY,
+			TEST_TYPE_TRIANGLE_LIST_ADJACENCY,
+			TEST_TYPE_PATCH_LIST
+		};
+		const std::string	testTypeNames[]	=
+		{
+			"winding_line_list",
+			"winding_line_strip",
+			"winding_triangle_list",
+			"winding_triangle_strip",
+			"winding_triangle_fan",
+			"winding_line_list_with_adjacency",
+			"winding_line_strip_with_adjacency",
+			"winding_triangle_strip_with_adjacency",
+			"winding_triangle_list_with_adjacency",
+			"winding_patch_list"
+		};
 
 		for (deUint32 testTypesNdx = 0; testTypesNdx < DE_LENGTH_OF_ARRAY(testTypes); ++testTypesNdx)
 		{
@@ -2227,14 +2595,10 @@
 
 			for (deUint32 bufferCountsNdx = 0; bufferCountsNdx < DE_LENGTH_OF_ARRAY(bufferCounts); ++bufferCountsNdx)
 			{
-				const deUint32			vertexCount	= bufferCounts[bufferCountsNdx];
+				const deUint32	vertexCount	= bufferCounts[bufferCountsNdx];
 				TestParameters	parameters	= { testType, 0u, vertexCount, 0u, 0u, 0u, STREAM_ID_0_NORMAL, false };
 
-				group->addChild(new TransformFeedbackTestCase(group->getTestContext(), (testName + "_" + de::toString(vertexCount)).c_str(), "Triangle Strip With Adjacency Transform Feedback test", parameters));
-				parameters.streamId0Mode = STREAM_ID_0_BEGIN_QUERY_INDEXED;
-				group->addChild(new TransformFeedbackTestCase(group->getTestContext(), (testName + "_beginqueryindexed_streamid_0_" + de::toString(vertexCount)).c_str(), "Triangle Strip With Adjacency Transform Feedback test", parameters));
-				parameters.streamId0Mode = STREAM_ID_0_END_QUERY_INDEXED;
-				group->addChild(new TransformFeedbackTestCase(group->getTestContext(), (testName + "_endqueryindexed_streamid_0_" + de::toString(vertexCount)).c_str(), "Triangle Strip With Adjacency Transform Feedback test", parameters));
+				group->addChild(new TransformFeedbackTestCase(group->getTestContext(), (testName + "_" + de::toString(vertexCount)).c_str(), "Topology winding test", parameters));
 			}
 		}
 	}
diff --git a/external/vulkancts/modules/vulkan/util/vktDrawUtil.cpp b/external/vulkancts/modules/vulkan/util/vktDrawUtil.cpp
index c933341..698e794 100644
--- a/external/vulkancts/modules/vulkan/util/vktDrawUtil.cpp
+++ b/external/vulkancts/modules/vulkan/util/vktDrawUtil.cpp
@@ -546,9 +546,9 @@
 			(drawCallData.topology != VK_PRIMITIVE_TOPOLOGY_PATCH_LIST) ||
 			(stageFlags & (VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT | VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT)));
 
-		object->pipeline = makeGraphicsPipeline(	vk,										// const DeviceInterface&                        vk
+		object->pipeline = makeGraphicsPipeline(vk,										// const DeviceInterface&                        vk
 												device,									// const VkDevice                                device
-												*(object->pipelineLayout),					// const VkPipelineLayout                        pipelineLayout
+												*(object->pipelineLayout),				// const VkPipelineLayout                        pipelineLayout
 												vertShader,								// const VkShaderModule                          vertexShaderModule
 												tessControlShader,						// const VkShaderModule                          tessellationControlShaderModule
 												tessEvalShader,							// const VkShaderModule                          tessellationEvalShaderModule
diff --git a/external/vulkancts/modules/vulkan/util/vktExternalMemoryUtil.cpp b/external/vulkancts/modules/vulkan/util/vktExternalMemoryUtil.cpp
index 076dd8c..9559729 100644
--- a/external/vulkancts/modules/vulkan/util/vktExternalMemoryUtil.cpp
+++ b/external/vulkancts/modules/vulkan/util/vktExternalMemoryUtil.cpp
@@ -52,19 +52,6 @@
 {
 namespace
 {
-deUint32 chooseMemoryType (deUint32 bits)
-{
-	DE_ASSERT(bits != 0);
-
-	for (deUint32 memoryTypeIndex = 0; (1u << memoryTypeIndex) <= bits; memoryTypeIndex++)
-	{
-		if ((bits & (1u << memoryTypeIndex)) != 0)
-			return memoryTypeIndex;
-	}
-
-	DE_FATAL("No supported memory types");
-	return -1;
-}
 
 } // anonymous
 
@@ -902,14 +889,42 @@
 	return semaphore;
 }
 
+deUint32 chooseMemoryType(deUint32 bits)
+{
+	DE_ASSERT(bits != 0);
+
+	for (deUint32 memoryTypeIndex = 0; (1u << memoryTypeIndex) <= bits; memoryTypeIndex++)
+	{
+		if ((bits & (1u << memoryTypeIndex)) != 0)
+			return memoryTypeIndex;
+	}
+
+	DE_FATAL("No supported memory types");
+	return -1;
+}
+
+deUint32 chooseHostVisibleMemoryType (deUint32 bits, const vk::VkPhysicalDeviceMemoryProperties properties)
+{
+	DE_ASSERT(bits != 0);
+
+	for (deUint32 memoryTypeIndex = 0; (1u << memoryTypeIndex) <= bits; memoryTypeIndex++)
+	{
+		if (((bits & (1u << memoryTypeIndex)) != 0) &&
+			((properties.memoryTypes[memoryTypeIndex].propertyFlags & vk::VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) != 0))
+			return memoryTypeIndex;
+	}
+
+	TCU_THROW(NotSupportedError, "No supported memory type found");
+	return -1;
+}
+
 vk::Move<vk::VkDeviceMemory> allocateExportableMemory (const vk::DeviceInterface&					vkd,
 													   vk::VkDevice									device,
-													   const vk::VkMemoryRequirements&				requirements,
+													   vk::VkDeviceSize								allocationSize,
+													   deUint32										memoryTypeIndex,
 													   vk::VkExternalMemoryHandleTypeFlagBits		externalType,
-													   vk::VkBuffer									buffer,
-													   deUint32&									exportedMemoryTypeIndex)
+													   vk::VkBuffer									buffer)
 {
-	exportedMemoryTypeIndex = chooseMemoryType(requirements.memoryTypeBits);
 	const vk::VkMemoryDedicatedAllocateInfo	dedicatedInfo	=
 	{
 		vk::VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
@@ -928,20 +943,19 @@
 	{
 		vk::VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,
 		&exportInfo,
-		requirements.size,
-		exportedMemoryTypeIndex
+		allocationSize,
+		memoryTypeIndex
 	};
 	return vk::allocateMemory(vkd, device, &info);
 }
 
 vk::Move<vk::VkDeviceMemory> allocateExportableMemory (const vk::DeviceInterface&					vkd,
 													   vk::VkDevice									device,
-													   const vk::VkMemoryRequirements&				requirements,
+													   vk::VkDeviceSize								allocationSize,
+													   deUint32										memoryTypeIndex,
 													   vk::VkExternalMemoryHandleTypeFlagBits		externalType,
-													   vk::VkImage									image,
-													   deUint32&									exportedMemoryTypeIndex)
+													   vk::VkImage									image)
 {
-	exportedMemoryTypeIndex = chooseMemoryType(requirements.memoryTypeBits);
 	const vk::VkMemoryDedicatedAllocateInfo	dedicatedInfo	=
 	{
 		vk::VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
@@ -960,59 +974,12 @@
 	{
 		vk::VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,
 		&exportInfo,
-		requirements.size,
-		exportedMemoryTypeIndex
+		allocationSize,
+		memoryTypeIndex
 	};
 	return vk::allocateMemory(vkd, device, &info);
 }
 
-vk::Move<vk::VkDeviceMemory> allocateExportableMemory (const vk::InstanceInterface&					vki,
-													   vk::VkPhysicalDevice							physicalDevice,
-													   const vk::DeviceInterface&					vkd,
-													   vk::VkDevice									device,
-													   const vk::VkMemoryRequirements&				requirements,
-													   vk::VkExternalMemoryHandleTypeFlagBits		externalType,
-													   bool											hostVisible,
-													   vk::VkBuffer									buffer,
-													   deUint32&									exportedMemoryTypeIndex)
-{
-	const vk::VkPhysicalDeviceMemoryProperties properties = vk::getPhysicalDeviceMemoryProperties(vki, physicalDevice);
-
-	for (deUint32 memoryTypeIndex = 0; (1u << memoryTypeIndex) <= requirements.memoryTypeBits; memoryTypeIndex++)
-	{
-		if (((requirements.memoryTypeBits & (1u << memoryTypeIndex)) != 0)
-			&& (((properties.memoryTypes[memoryTypeIndex].propertyFlags & vk::VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) != 0) == hostVisible))
-		{
-			const vk::VkMemoryDedicatedAllocateInfo	dedicatedInfo	=
-			{
-				vk::VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
-				DE_NULL,
-
-				(vk::VkImage)0,
-				buffer
-			};
-			const vk::VkExportMemoryAllocateInfo	exportInfo	=
-			{
-				vk::VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
-				!!buffer ? &dedicatedInfo : DE_NULL,
-				(vk::VkExternalMemoryHandleTypeFlags)externalType
-			};
-			const vk::VkMemoryAllocateInfo			info		=
-			{
-				vk::VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,
-				&exportInfo,
-				requirements.size,
-				memoryTypeIndex
-			};
-
-			exportedMemoryTypeIndex = memoryTypeIndex;
-			return vk::allocateMemory(vkd, device, &info);
-		}
-	}
-
-	TCU_THROW(NotSupportedError, "No supported memory type found");
-}
-
 static vk::Move<vk::VkDeviceMemory> importMemory (const vk::DeviceInterface&				vkd,
 												  vk::VkDevice								device,
 												  vk::VkBuffer								buffer,
@@ -1476,6 +1443,8 @@
 	  case vk::VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT:
 		return AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE;
 	  case vk::VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT:
+	  case vk::VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT:
+		// Alias of AHARDWAREBUFFER_USAGE_GPU_FRAMEBUFFER which is defined in later Android API versions.
 		return AHARDWAREBUFFER_USAGE_GPU_COLOR_OUTPUT;
 	  default:
 		  return 0u;
@@ -1527,6 +1496,7 @@
 public:
 
 	virtual deUint64 vkCreateToAhbUsage(vk::VkImageCreateFlagBits vkFlag);
+	virtual deUint32 vkFormatToAhbFormat(vk::VkFormat vkFormat);
 	virtual deUint64 mustSupportAhbUsageFlags();
 
 	AndroidHardwareBufferExternalApi28() : AndroidHardwareBufferExternalApi26() {};
@@ -1549,6 +1519,27 @@
 	}
 }
 
+deUint32 AndroidHardwareBufferExternalApi28::vkFormatToAhbFormat(vk::VkFormat vkFormat)
+{
+	switch(vkFormat)
+	{
+	  case vk::VK_FORMAT_D16_UNORM:
+		return AHARDWAREBUFFER_FORMAT_D16_UNORM;
+	  case vk::VK_FORMAT_X8_D24_UNORM_PACK32:
+		return AHARDWAREBUFFER_FORMAT_D24_UNORM;
+	  case vk::VK_FORMAT_D24_UNORM_S8_UINT:
+		return AHARDWAREBUFFER_FORMAT_D24_UNORM_S8_UINT;
+	  case vk::VK_FORMAT_D32_SFLOAT:
+		return AHARDWAREBUFFER_FORMAT_D32_FLOAT;
+	  case vk::VK_FORMAT_D32_SFLOAT_S8_UINT:
+		return AHARDWAREBUFFER_FORMAT_D32_FLOAT_S8_UINT;
+	  case vk::VK_FORMAT_S8_UINT:
+		return AHARDWAREBUFFER_FORMAT_S8_UINT;
+	  default:
+		return AndroidHardwareBufferExternalApi26::vkFormatToAhbFormat(vkFormat);
+	}
+}
+
 deUint64 AndroidHardwareBufferExternalApi28::mustSupportAhbUsageFlags()
 {
 	return AndroidHardwareBufferExternalApi26::mustSupportAhbUsageFlags() | AHARDWAREBUFFER_USAGE_GPU_CUBE_MAP | AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE;
diff --git a/external/vulkancts/modules/vulkan/util/vktExternalMemoryUtil.hpp b/external/vulkancts/modules/vulkan/util/vktExternalMemoryUtil.hpp
index aa7c8f0..ab1654c 100644
--- a/external/vulkancts/modules/vulkan/util/vktExternalMemoryUtil.hpp
+++ b/external/vulkancts/modules/vulkan/util/vktExternalMemoryUtil.hpp
@@ -257,7 +257,7 @@
 																	 vk::VkFence								fence,
 																	 vk::VkExternalFenceHandleTypeFlagBits		externalType,
 																	 NativeHandle&								nativeHandle,
-                                                                     bool expectFenceUnsignaled = true);
+																	 bool expectFenceUnsignaled = true);
 
 void							importFence							(const vk::DeviceInterface&					vkd,
 																	 const vk::VkDevice							device,
@@ -272,28 +272,28 @@
 																	 NativeHandle&								handle,
 																	 vk::VkFenceImportFlags						flags);
 
-vk::Move<vk::VkDeviceMemory>	allocateExportableMemory			(const vk::DeviceInterface&					vkd,
-																	 vk::VkDevice								device,
-																	 const vk::VkMemoryRequirements&			requirements,
-																	 vk::VkExternalMemoryHandleTypeFlagBits		externalType,
-																	 deUint32&									exportedMemoryTypeIndex);
+deUint32						chooseMemoryType					(deUint32									bits);
+
+deUint32						chooseHostVisibleMemoryType			(deUint32									bits,
+																	 const vk::VkPhysicalDeviceMemoryProperties	properties);
 
 // If buffer is not null use dedicated allocation
 vk::Move<vk::VkDeviceMemory>	allocateExportableMemory			(const vk::DeviceInterface&					vkd,
 																	 vk::VkDevice								device,
-																	 const vk::VkMemoryRequirements&			requirements,
+																	 vk::VkDeviceSize							allocationSize,
+																	 deUint32									memoryTypeIndex,
 																	 vk::VkExternalMemoryHandleTypeFlagBits		externalType,
-																	 vk::VkBuffer								buffer,
-																	 deUint32&									exportedMemoryTypeIndex);
+																	 vk::VkBuffer								buffer);
 
 // If image is not null use dedicated allocation
 vk::Move<vk::VkDeviceMemory>	allocateExportableMemory			(const vk::DeviceInterface&					vkd,
 																	 vk::VkDevice								device,
-																	 const vk::VkMemoryRequirements&			requirements,
+																	 vk::VkDeviceSize							allocationSize,
+																	 deUint32									memoryTypeIndex,
 																	 vk::VkExternalMemoryHandleTypeFlagBits		externalType,
-																	 vk::VkImage								image,
-																	 deUint32&									exportedMemoryTypeIndex);
+																	 vk::VkImage								image);
 
+/*
 // \note hostVisible argument is strict. Setting it to false will cause NotSupportedError to be thrown if non-host visible memory doesn't exist.
 // If buffer is not null use dedicated allocation
 vk::Move<vk::VkDeviceMemory>	allocateExportableMemory			(const vk::InstanceInterface&				vki,
@@ -305,6 +305,7 @@
 																	 bool										hostVisible,
 																	 vk::VkBuffer								buffer,
 																	 deUint32&									exportedMemoryTypeIndex);
+*/
 
 vk::Move<vk::VkDeviceMemory>	importMemory						(const vk::DeviceInterface&					vkd,
 																	 vk::VkDevice								device,
diff --git a/external/vulkancts/modules/vulkan/vktBuildPrograms.cpp b/external/vulkancts/modules/vulkan/vktBuildPrograms.cpp
index 5ff16ca..ed76356 100644
--- a/external/vulkancts/modules/vulkan/vktBuildPrograms.cpp
+++ b/external/vulkancts/modules/vulkan/vktBuildPrograms.cpp
@@ -674,12 +674,14 @@
 	try
 	{
 		tcu::DirArchive			archive					(".");
-		tcu::TestLog			log					(deqpCmdLine.getLogFileName(), (argc - 1), (char **)(argv + 1), deqpCmdLine.getLogFlags());
+		tcu::TestLog			log						(deqpCmdLine.getLogFileName(), deqpCmdLine.getLogFlags());
 		tcu::Platform			platform;
 		tcu::TestContext		testCtx					(platform, archive, log, deqpCmdLine, DE_NULL);
 		vk::SpirvVersion		baselineSpirvVersion	= vk::getBaselineSpirvVersion(cmdLine.getOption<opt::VulkanVersion>());
 		vk::SpirvVersion		maxSpirvVersion			= vk::getMaxSpirvVersionForGlsl(cmdLine.getOption<opt::VulkanVersion>());
 
+		testCtx.writeSessionInfo();
+
 		tcu::print("SPIR-V versions: baseline: %s, max supported: %s\n",
 					getSpirvVersionName(baselineSpirvVersion).c_str(),
 					getSpirvVersionName(maxSpirvVersion).c_str());
diff --git a/external/vulkancts/modules/vulkan/vktCustomInstancesDevices.cpp b/external/vulkancts/modules/vulkan/vktCustomInstancesDevices.cpp
index 0daf4bd..be3c330 100644
--- a/external/vulkancts/modules/vulkan/vktCustomInstancesDevices.cpp
+++ b/external/vulkancts/modules/vulkan/vktCustomInstancesDevices.cpp
@@ -88,11 +88,11 @@
 	return getValidationLayers(enumerateDeviceLayerProperties(vki, physicalDevice));
 }
 
-CustomInstance::CustomInstance (Context& context, Move<VkInstance> instance, bool enableDebugReportRecorder)
+CustomInstance::CustomInstance (Context& context, Move<VkInstance> instance, bool enableDebugReportRecorder, bool printValidationErrors)
 	: m_context		(&context)
 	, m_instance	(instance)
 	, m_driver		(new InstanceDriver(context.getPlatformInterface(), *m_instance))
-	, m_recorder	(enableDebugReportRecorder ? (new DebugReportRecorder(*m_driver, *m_instance)) : nullptr)
+	, m_recorder	(enableDebugReportRecorder ? (new DebugReportRecorder(*m_driver, *m_instance, printValidationErrors)) : nullptr)
 {
 }
 
@@ -156,12 +156,12 @@
 {
 }
 
-UncheckedInstance::UncheckedInstance (Context& context, vk::VkInstance instance, const vk::VkAllocationCallbacks* pAllocator, bool enableDebugReportRecorder)
+UncheckedInstance::UncheckedInstance (Context& context, vk::VkInstance instance, const vk::VkAllocationCallbacks* pAllocator, bool enableDebugReportRecorder, bool printValidationErrors)
 	: m_context		(&context)
 	, m_allocator	(pAllocator)
 	, m_instance	(instance)
 	, m_driver		((m_instance != DE_NULL) ? new InstanceDriver(context.getPlatformInterface(), m_instance) : nullptr)
-	, m_recorder	((enableDebugReportRecorder && m_instance != DE_NULL) ? (new DebugReportRecorder(*m_driver, m_instance)) : nullptr)
+	, m_recorder	((enableDebugReportRecorder && m_instance != DE_NULL) ? (new DebugReportRecorder(*m_driver, m_instance, printValidationErrors)) : nullptr)
 {
 }
 
@@ -213,7 +213,9 @@
 {
 	vector<const char*>	enabledLayers;
 	vector<string>		enabledLayersStr;
-	const bool			validationEnabled = (context.getTestContext().getCommandLine().isValidationEnabled() && allowLayers);
+	const auto&			cmdLine					= context.getTestContext().getCommandLine();
+	const bool			validationEnabled		= (cmdLine.isValidationEnabled() && allowLayers);
+	const bool			printValidationErrors	= cmdLine.printValidationErrors();
 
 	if (validationEnabled)
 	{
@@ -241,7 +243,7 @@
 	}
 
 	Move<VkInstance> instance = vk::createDefaultInstance(vkp, apiVersion, enabledLayersStr, extensionPtrs, pAllocator);
-	return CustomInstance(context, instance, validationEnabled);
+	return CustomInstance(context, instance, validationEnabled, printValidationErrors);
 }
 
 CustomInstance createCustomInstanceWithExtension (Context& context, const std::string& extension, const vk::VkAllocationCallbacks* pAllocator, bool allowLayers)
@@ -281,9 +283,11 @@
 {
 	vector<const char*>				enabledLayers;
 	vector<const char*>				enabledExtensions;
-	vk::VkInstanceCreateInfo		createInfo			= *instanceCreateInfo;
-	const bool						validationEnabled	= context.getTestContext().getCommandLine().isValidationEnabled();
-	const vk::PlatformInterface&	vkp					= context.getPlatformInterface();
+	vk::VkInstanceCreateInfo		createInfo				= *instanceCreateInfo;
+	const auto&						cmdLine					= context.getTestContext().getCommandLine();
+	const bool						validationEnabled		= cmdLine.isValidationEnabled();
+	const bool						printValidationErrors	= cmdLine.printValidationErrors();
+	const vk::PlatformInterface&	vkp						= context.getPlatformInterface();
 
 	if (validationEnabled && allowLayers)
 	{
@@ -301,17 +305,19 @@
 		createInfo.ppEnabledExtensionNames = enabledExtensions.data();
 	}
 
-	return CustomInstance(context, vk::createInstance(vkp, &createInfo, pAllocator), validationEnabled);
+	return CustomInstance(context, vk::createInstance(vkp, &createInfo, pAllocator), validationEnabled, printValidationErrors);
 }
 
 vk::VkResult createUncheckedInstance (Context& context, const vk::VkInstanceCreateInfo* instanceCreateInfo, const vk::VkAllocationCallbacks* pAllocator, UncheckedInstance* instance, bool allowLayers)
 {
 	vector<const char*>				enabledLayers;
 	vector<const char*>				enabledExtensions;
-	vk::VkInstanceCreateInfo		createInfo			= *instanceCreateInfo;
-	const bool						validationEnabled	= context.getTestContext().getCommandLine().isValidationEnabled();
-	const vk::PlatformInterface&	vkp					= context.getPlatformInterface();
-	const bool						addLayers			= (validationEnabled && allowLayers);
+	vk::VkInstanceCreateInfo		createInfo				= *instanceCreateInfo;
+	const auto&						cmdLine					= context.getTestContext().getCommandLine();
+	const bool						validationEnabled		= cmdLine.isValidationEnabled();
+	const bool						printValidationErrors	= cmdLine.printValidationErrors();
+	const vk::PlatformInterface&	vkp						= context.getPlatformInterface();
+	const bool						addLayers				= (validationEnabled && allowLayers);
 
 	if (addLayers)
 	{
@@ -331,7 +337,9 @@
 
 	vk::VkInstance	raw_instance = DE_NULL;
 	vk::VkResult	result = vkp.createInstance(&createInfo, pAllocator, &raw_instance);
-	*instance = UncheckedInstance(context, raw_instance, pAllocator, addLayers);
+
+	*instance = UncheckedInstance(context, raw_instance, pAllocator, addLayers, printValidationErrors);
+
 	return result;
 }
 
diff --git a/external/vulkancts/modules/vulkan/vktCustomInstancesDevices.hpp b/external/vulkancts/modules/vulkan/vktCustomInstancesDevices.hpp
index 1b798d5..12fa914 100644
--- a/external/vulkancts/modules/vulkan/vktCustomInstancesDevices.hpp
+++ b/external/vulkancts/modules/vulkan/vktCustomInstancesDevices.hpp
@@ -52,7 +52,7 @@
 {
 public:
 								CustomInstance			();
-								CustomInstance			(Context& context, vk::Move<vk::VkInstance> instance, bool enableDebugReportRecorder);
+								CustomInstance			(Context& context, vk::Move<vk::VkInstance> instance, bool enableDebugReportRecorder, bool printValidationErrors);
 								CustomInstance			(CustomInstance&& other);
 								~CustomInstance			();
 	CustomInstance&				operator=				(CustomInstance&& other);
@@ -74,7 +74,7 @@
 {
 public:
 						UncheckedInstance		();
-						UncheckedInstance		(Context& context, vk::VkInstance instance, const vk::VkAllocationCallbacks* pAllocator, bool enableDebugReportRecorder);
+						UncheckedInstance		(Context& context, vk::VkInstance instance, const vk::VkAllocationCallbacks* pAllocator, bool enableDebugReportRecorder, bool printValidationErrors);
 						UncheckedInstance		(UncheckedInstance&& other);
 						~UncheckedInstance		();
 	UncheckedInstance&	operator=				(UncheckedInstance&& other);
diff --git a/external/vulkancts/modules/vulkan/vktShaderLibrary.cpp b/external/vulkancts/modules/vulkan/vktShaderLibrary.cpp
index 1cc85d2..3aa0571 100644
--- a/external/vulkancts/modules/vulkan/vktShaderLibrary.cpp
+++ b/external/vulkancts/modules/vulkan/vktShaderLibrary.cpp
@@ -1624,7 +1624,7 @@
 	{
 		const ConstPixelBufferAccess	imgAccess	(TextureFormat(TextureFormat::RGBA, TextureFormat::UNORM_INT8), RENDER_WIDTH, RENDER_HEIGHT, 1, m_readImageMem[0]->getHostPtr());
 
-		invalidateMappedMemoryRange(vkd, device, m_readImageMem[0]->getMemory(), m_readImageMem[0]->getOffset(), (vk::VkDeviceSize)(RENDER_WIDTH*RENDER_HEIGHT*4));
+		invalidateAlloc(vkd, device, *m_readImageMem[0]);
 
 		if (!checkResultImage(imgAccess))
 		{
@@ -1658,7 +1658,7 @@
 					DE_FATAL("Unknown data type");
 			}
 
-			invalidateMappedMemoryRange(vkd, device, m_readImageMem[outNdx]->getMemory(), m_readImageMem[outNdx]->getOffset(), (vk::VkDeviceSize)(RENDER_WIDTH * RENDER_HEIGHT * tcu::getPixelSize(vk::mapVkFormat(m_rtFormat))));
+			invalidateAlloc(vkd, device, *m_readImageMem[outNdx]);
 
 			if (!checkResultImageWithReference(imgAccess, reference))
 			{
diff --git a/external/vulkancts/modules/vulkan/vktTestCase.cpp b/external/vulkancts/modules/vulkan/vktTestCase.cpp
index c1b8b76..fc3bb63 100644
--- a/external/vulkancts/modules/vulkan/vktTestCase.cpp
+++ b/external/vulkancts/modules/vulkan/vktTestCase.cpp
@@ -71,6 +71,9 @@
 		"VK_AMD_mixed_attachment_samples",
 		"VK_AMD_shader_fragment_mask",
 		"VK_AMD_buffer_marker",
+		"VK_AMD_shader_explicit_vertex_parameter",
+		"VK_AMD_shader_image_load_store_lod",
+		"VK_AMD_shader_trinary_minmax",
 	};
 
 	for (size_t extNdx = 0; extNdx < extensions.size(); extNdx++)
@@ -440,7 +443,7 @@
 {
 	// check if extension was promoted to core
 	deUint32 apiVersion = getUsedApiVersion();
-	if (isCoreDeviceExtension(getUsedApiVersion(), extension))
+	if (isCoreDeviceExtension(apiVersion, extension))
 	{
 		// all folowing checks are for vk12 and can be skipped for previous versions
 		if (apiVersion < VK_MAKE_VERSION(1, 2, 0))
@@ -483,6 +486,8 @@
 	{
 		if (extension == "VK_KHR_timeline_semaphore")
 			return !!getTimelineSemaphoreFeatures().timelineSemaphore;
+		if (extension == "VK_EXT_extended_dynamic_state")
+			return !!getExtendedDynamicStateFeaturesEXT().extendedDynamicState;
 
 		return true;
 	}
@@ -652,28 +657,22 @@
 
 void collectAndReportDebugMessages(vk::DebugReportRecorder &debugReportRecorder, Context& context)
 {
-	// \note We are not logging INFORMATION and DEBUG messages
-	static const vk::VkDebugReportFlagsEXT			errorFlags		= vk::VK_DEBUG_REPORT_ERROR_BIT_EXT;
-	static const vk::VkDebugReportFlagsEXT			logFlags		= errorFlags
-																	| vk::VK_DEBUG_REPORT_WARNING_BIT_EXT
-																	| vk::VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT;
-
-	typedef vk::DebugReportRecorder::MessageList	DebugMessages;
+	using DebugMessages = vk::DebugReportRecorder::MessageList;
 
 	const DebugMessages&	messages	= debugReportRecorder.getMessages();
 	tcu::TestLog&			log			= context.getTestContext().getLog();
 
-	if (messages.begin() != messages.end())
+	if (messages.size() > 0)
 	{
 		const tcu::ScopedLogSection	section		(log, "DebugMessages", "Debug Messages");
 		int							numErrors	= 0;
 
-		for (DebugMessages::const_iterator curMsg = messages.begin(); curMsg != messages.end(); ++curMsg)
+		for (const auto& msg : messages)
 		{
-			if ((curMsg->flags & logFlags) != 0)
-				log << tcu::TestLog::Message << *curMsg << tcu::TestLog::EndMessage;
+			if (msg.shouldBeLogged())
+				log << tcu::TestLog::Message << msg << tcu::TestLog::EndMessage;
 
-			if ((curMsg->flags & errorFlags) != 0)
+			if (msg.isError())
 				numErrors += 1;
 		}
 
diff --git a/external/vulkancts/modules/vulkan/vktTestPackage.cpp b/external/vulkancts/modules/vulkan/vktTestPackage.cpp
index aa6e136..b9202c8 100644
--- a/external/vulkancts/modules/vulkan/vktTestPackage.cpp
+++ b/external/vulkancts/modules/vulkan/vktTestPackage.cpp
@@ -27,6 +27,7 @@
 #include "tcuTestCase.hpp"
 #include "tcuTestLog.hpp"
 #include "tcuCommandLine.hpp"
+#include "tcuWaiverUtil.hpp"
 
 #include "vkPlatform.hpp"
 #include "vkPrograms.hpp"
@@ -91,12 +92,15 @@
 #include "vktMemoryModelTests.hpp"
 #include "vktAmberExampleTests.hpp"
 #include "vktAmberGraphicsFuzzTests.hpp"
+#include "vktAmberGlslTests.hpp"
 #include "vktImagelessFramebufferTests.hpp"
 #include "vktTransformFeedbackTests.hpp"
 #include "vktDescriptorIndexingTests.hpp"
 #include "vktImagelessFramebufferTests.hpp"
 #include "vktFragmentShaderInterlockTests.hpp"
 #include "vktShaderClockTests.hpp"
+#include "vktShaderClockTests.hpp"
+#include "vktModifiersTests.hpp"
 
 #include <vector>
 #include <sstream>
@@ -177,10 +181,10 @@
 namespace
 {
 
-MovePtr<vk::DebugReportRecorder> createDebugReportRecorder (const vk::PlatformInterface& vkp, const vk::InstanceInterface& vki, vk::VkInstance instance)
+MovePtr<vk::DebugReportRecorder> createDebugReportRecorder (const vk::PlatformInterface& vkp, const vk::InstanceInterface& vki, vk::VkInstance instance, bool printValidationErrors)
 {
 	if (isDebugReportSupported(vkp))
-		return MovePtr<vk::DebugReportRecorder>(new vk::DebugReportRecorder(vki, instance));
+		return MovePtr<vk::DebugReportRecorder>(new vk::DebugReportRecorder(vki, instance, printValidationErrors));
 	else
 		TCU_THROW(NotSupportedError, "VK_EXT_debug_report is not supported");
 }
@@ -210,6 +214,8 @@
 
 	const UniquePtr<vk::DebugReportRecorder>	m_debugReportRecorder;
 	const UniquePtr<vk::RenderDocUtil>			m_renderDoc;
+	vk::VkPhysicalDeviceProperties				m_deviceProperties;
+	tcu::WaiverUtil								m_waiverMechanism;
 
 	TestInstance*								m_instance;			//!< Current test case instance
 };
@@ -219,6 +225,16 @@
 	return MovePtr<vk::Library>(testCtx.getPlatform().getVulkanPlatform().createLibrary());
 }
 
+static vk::VkPhysicalDeviceProperties getPhysicalDeviceProperties(vkt::Context& context)
+{
+	const vk::InstanceInterface&	vki				= context.getInstanceInterface();
+	const vk::VkPhysicalDevice		physicalDevice	= context.getPhysicalDevice();
+
+	vk::VkPhysicalDeviceProperties	properties;
+	vki.getPhysicalDeviceProperties(physicalDevice, &properties);
+	return properties;
+}
+
 TestCaseExecutor::TestCaseExecutor (tcu::TestContext& testCtx)
 	: m_prebuiltBinRegistry	(testCtx.getArchive(), "vulkan/prebuilt")
 	, m_library				(createLibrary(testCtx))
@@ -226,13 +242,24 @@
 	, m_debugReportRecorder	(testCtx.getCommandLine().isValidationEnabled()
 							 ? createDebugReportRecorder(m_library->getPlatformInterface(),
 														 m_context.getInstanceInterface(),
-														 m_context.getInstance())
+														 m_context.getInstance(),
+														 testCtx.getCommandLine().printValidationErrors())
 							 : MovePtr<vk::DebugReportRecorder>(DE_NULL))
 	, m_renderDoc			(testCtx.getCommandLine().isRenderDocEnabled()
 							 ? MovePtr<vk::RenderDocUtil>(new vk::RenderDocUtil())
 							 : MovePtr<vk::RenderDocUtil>(DE_NULL))
+	, m_deviceProperties	(getPhysicalDeviceProperties(m_context))
 	, m_instance			(DE_NULL)
 {
+	tcu::SessionInfo sessionInfo(m_deviceProperties.vendorID,
+								 m_deviceProperties.deviceID,
+								 testCtx.getCommandLine().getInitialCmdLine());
+	m_waiverMechanism.setup(testCtx.getCommandLine().getWaiverFileName(),
+							"dEQP-VK",
+							m_deviceProperties.vendorID,
+							m_deviceProperties.deviceID,
+							sessionInfo);
+	testCtx.getLog().writeSessionInfo(sessionInfo.get());
 }
 
 TestCaseExecutor::~TestCaseExecutor (void)
@@ -258,6 +285,9 @@
 	if (!vktCase)
 		TCU_THROW(InternalError, "Test node not an instance of vkt::TestCase");
 
+	if (m_waiverMechanism.isOnWaiverList(casePath))
+		throw tcu::TestException("Waived test", QP_TEST_RESULT_WAIVER);
+
 	vktCase->checkSupport(m_context);
 
 	vktCase->delayedInit();
@@ -442,6 +472,9 @@
 	glslTests->addChild(shaderexecutor::createOpaqueTypeIndexingTests	(testCtx));
 	glslTests->addChild(shaderexecutor::createAtomicOperationTests		(testCtx));
 	glslTests->addChild(shaderexecutor::createShaderClockTests			(testCtx));
+
+	// Amber GLSL tests.
+	glslTests->addChild(cts_amber::createCombinedOperationsGroup		(testCtx));
 }
 
 // TestPackage
@@ -501,6 +534,7 @@
 	addChild(TransformFeedback::createTests		(m_testCtx));
 	addChild(DescriptorIndexing::createTests	(m_testCtx));
 	addChild(FragmentShaderInterlock::createTests(m_testCtx));
+	addChild(modifiers::createTests				(m_testCtx));
 }
 
 } // vkt
diff --git a/external/vulkancts/modules/vulkan/wsi/vktWsiSwapchainTests.cpp b/external/vulkancts/modules/vulkan/wsi/vktWsiSwapchainTests.cpp
index f985db9..a8e63c2 100644
--- a/external/vulkancts/modules/vulkan/wsi/vktWsiSwapchainTests.cpp
+++ b/external/vulkancts/modules/vulkan/wsi/vktWsiSwapchainTests.cpp
@@ -41,6 +41,7 @@
 #include "vkWsiUtil.hpp"
 #include "vkAllocationCallbackUtil.hpp"
 #include "vkCmdUtil.hpp"
+#include "vkObjTypeImpl.inl"
 #include "vkObjUtil.hpp"
 
 #include "tcuCommandLine.hpp"
@@ -74,6 +75,7 @@
 
 using de::MovePtr;
 using de::UniquePtr;
+using de::SharedPtr;
 
 using std::string;
 using std::vector;
@@ -154,24 +156,45 @@
 		queueInfos.push_back(info);
 	}
 
+	const void *					pNext			= nullptr;
 	const VkPhysicalDeviceFeatures	features		= getDeviceFeaturesForWsi();
-	const char* const				extensions[]	= { "VK_KHR_swapchain" };
+
+	VkDevicePrivateDataCreateInfoEXT pdci =
+	{
+		VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT,	// VkStructureType                       sType;
+		DE_NULL,												// const void*                           pNext;
+		4u,														// uint32_t                              privateDataSlotRequestCount;
+	};
+	VkPhysicalDevicePrivateDataFeaturesEXT privateDataFeatures =
+	{
+		VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT,	// VkStructureType    sType;
+		&pdci,															// void*              pNext;
+		VK_TRUE,														// VkBool32           privateData;
+	};
+
+	vector<const char*>				extensions;
+	extensions.push_back("VK_KHR_swapchain");
+	if (isExtensionSupported(supportedExtensions, RequiredExtension("VK_EXT_private_data")))
+	{
+		extensions.push_back("VK_EXT_private_data");
+		pNext = &privateDataFeatures;
+	}
 
 	const VkDeviceCreateInfo		deviceParams	=
 	{
 		VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,
-		DE_NULL,
+		pNext,
 		(VkDeviceCreateFlags)0,
 		static_cast<deUint32>(queueInfos.size()),
 		queueInfos.data(),
 		0u,									// enabledLayerCount
 		DE_NULL,							// ppEnabledLayerNames
-		DE_LENGTH_OF_ARRAY(extensions),		// enabledExtensionCount
-		DE_ARRAY_BEGIN(extensions),			// ppEnabledExtensionNames
+		(deUint32)extensions.size(),		// enabledExtensionCount
+		&extensions[0],						// ppEnabledExtensionNames
 		&features
 	};
 
-	for (int ndx = 0; ndx < DE_LENGTH_OF_ARRAY(extensions); ++ndx)
+	for (int ndx = 0; ndx < (int)extensions.size(); ++ndx)
 	{
 		if (!isExtensionSupported(supportedExtensions, RequiredExtension(extensions[ndx])))
 			TCU_THROW(NotSupportedError, (string(extensions[ndx]) + " is not supported").c_str());
@@ -309,7 +332,7 @@
 	catch (const tcu::NotSupportedError& e)
 	{
 		if (isExtensionSupported(supportedExtensions, RequiredExtension(getExtensionName(wsiType))) &&
-		    platform.hasDisplay(wsiType))
+			platform.hasDisplay(wsiType))
 		{
 			// If VK_KHR_{platform}_surface was supported, vk::Platform implementation
 			// must support creating native display & window for that WSI type.
@@ -741,6 +764,141 @@
 	return tcu::TestStatus::pass("No sub-case failed");
 }
 
+template<typename T> static deUint64 HandleToInt(T t) { return t.getInternal(); }
+
+tcu::TestStatus createSwapchainPrivateDataTest (Context& context, TestParameters params)
+{
+	if (!context.getPrivateDataFeaturesEXT().privateData)
+		TCU_THROW(NotSupportedError, "privateData not supported");
+
+	tcu::TestLog&							log			= context.getTestContext().getLog();
+	const InstanceHelper					instHelper	(context, params.wsiType);
+	const NativeObjects						native		(context, instHelper.supportedExtensions, params.wsiType);
+	const Unique<VkSurfaceKHR>				surface		(createSurface(instHelper.vki, instHelper.instance, params.wsiType, native.getDisplay(), native.getWindow()));
+	const MultiQueueDeviceHelper			devHelper	(context, instHelper.vki, instHelper.instance, *surface);
+	const vector<VkSwapchainCreateInfoKHR>	cases		(generateSwapchainParameterCases(params.wsiType, params.dimension, instHelper.vki, devHelper.physicalDevice, *surface));
+
+	for (size_t caseNdx = 0; caseNdx < cases.size(); ++caseNdx)
+	{
+		std::ostringstream subcase;
+		subcase << "Sub-case " << (caseNdx+1) << " / " << cases.size() << ": ";
+
+		VkSwapchainCreateInfoKHR	curParams	= cases[caseNdx];
+
+		if (curParams.imageSharingMode == VK_SHARING_MODE_CONCURRENT)
+		{
+			const deUint32 numFamilies = static_cast<deUint32>(devHelper.queueFamilyIndices.size());
+			if (numFamilies < 2u)
+				TCU_THROW(NotSupportedError, "Only " + de::toString(numFamilies) + " queue families available for VK_SHARING_MODE_CONCURRENT");
+			curParams.queueFamilyIndexCount	= numFamilies;
+		}
+		else
+		{
+			// Take only the first queue.
+			if (devHelper.queueFamilyIndices.empty())
+				TCU_THROW(NotSupportedError, "No queue families compatible with the given surface");
+			curParams.queueFamilyIndexCount	= 1u;
+		}
+		curParams.pQueueFamilyIndices	= devHelper.queueFamilyIndices.data();
+		curParams.surface				= *surface;
+
+		log << TestLog::Message << subcase.str() << curParams << TestLog::EndMessage;
+
+		// The Vulkan 1.1.87 spec contains the following VU for VkSwapchainCreateInfoKHR:
+		//
+		//     * imageFormat, imageUsage, imageExtent, and imageArrayLayers must be supported for VK_IMAGE_TYPE_2D
+		//     VK_IMAGE_TILING_OPTIMAL images as reported by vkGetPhysicalDeviceImageFormatProperties.
+		VkImageFormatProperties properties;
+		const VkResult propertiesResult = instHelper.vki.getPhysicalDeviceImageFormatProperties(devHelper.physicalDevice,
+																								curParams.imageFormat,
+																								VK_IMAGE_TYPE_2D,
+																								VK_IMAGE_TILING_OPTIMAL,
+																								curParams.imageUsage,
+																								0, // flags
+																								&properties);
+
+		log << TestLog::Message << subcase.str()
+			<< "vkGetPhysicalDeviceImageFormatProperties => "
+			<< getResultStr(propertiesResult) << TestLog::EndMessage;
+
+		switch (propertiesResult) {
+		case VK_SUCCESS:
+			{
+				const Unique<VkSwapchainKHR>	swapchain	(createSwapchainKHR(devHelper.vkd, *devHelper.device, &curParams));
+
+				const int numSlots = 100;
+				typedef Unique<VkPrivateDataSlotEXT>				PrivateDataSlotUp;
+				typedef SharedPtr<PrivateDataSlotUp>				PrivateDataSlotSp;
+				vector<PrivateDataSlotSp> slots;
+
+				const VkPrivateDataSlotCreateInfoEXT createInfo =
+				{
+					VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT,	// VkStructureType                    sType;
+					DE_NULL,												// const void*                        pNext;
+					0u,														// VkPrivateDataSlotCreateFlagsEXT    flags;
+				};
+
+				for (int i = 0; i < numSlots; ++i)
+				{
+					Move<VkPrivateDataSlotEXT> s = createPrivateDataSlotEXT(devHelper.vkd, *devHelper.device, &createInfo, DE_NULL);
+					slots.push_back(PrivateDataSlotSp(new PrivateDataSlotUp(s)));
+				}
+
+				// Based on code in vktApiObjectManagementTests.cpp
+				for (int r = 0; r < 3; ++r)
+				{
+					deUint64 data;
+
+					for (int i = 0; i < numSlots; ++i)
+					{
+						data = 1234;
+						devHelper.vkd.getPrivateDataEXT(*devHelper.device, getObjectType<VkSwapchainKHR>(), HandleToInt(swapchain.get()), **slots[i], &data);
+						// Don't test default value of zero on Android, due to spec erratum
+						if (params.wsiType != TYPE_ANDROID)
+						{
+							if (data != 0)
+								return tcu::TestStatus::fail("Expected initial value of zero");
+						}
+					}
+
+					for (int i = 0; i < numSlots; ++i)
+						VK_CHECK(devHelper.vkd.setPrivateDataEXT(*devHelper.device, getObjectType<VkSwapchainKHR>(), HandleToInt(swapchain.get()), **slots[i], i*i*i + 1));
+
+					for (int i = 0; i < numSlots; ++i)
+					{
+						data = 1234;
+						devHelper.vkd.getPrivateDataEXT(*devHelper.device, getObjectType<VkSwapchainKHR>(), HandleToInt(swapchain.get()), **slots[i], &data);
+						if (data != (deUint64)(i*i*i + 1))
+							return tcu::TestStatus::fail("Didn't read back set value");
+					}
+
+					// Destroy and realloc slots for the next iteration
+					slots.clear();
+					for (int i = 0; i < numSlots; ++i)
+					{
+						Move<VkPrivateDataSlotEXT> s = createPrivateDataSlotEXT(devHelper.vkd, *devHelper.device, &createInfo, DE_NULL);
+						slots.push_back(PrivateDataSlotSp(new PrivateDataSlotUp(s)));
+					}
+				}
+
+
+			}
+			break;
+		case VK_ERROR_FORMAT_NOT_SUPPORTED:
+			log << TestLog::Message << subcase.str()
+				<< "Skip because vkGetPhysicalDeviceImageFormatProperties returned VK_ERROR_FORMAT_NOT_SUPPORTED" << TestLog::EndMessage;
+			break;
+		default:
+			log << TestLog::Message << subcase.str()
+				<< "Fail because vkGetPhysicalDeviceImageFormatProperties returned "
+				<< getResultStr(propertiesResult) << TestLog::EndMessage;
+			return tcu::TestStatus::fail("Unexpected result from vkGetPhysicalDeviceImageFormatProperties");
+		}
+	}
+
+	return tcu::TestStatus::pass("No sub-case failed");
+}
+
 tcu::TestStatus createSwapchainSimulateOOMTest (Context& context, TestParameters params)
 {
 	const size_t				maxCases			= 300u;
@@ -974,6 +1132,18 @@
 	addFunctionCase(testGroup, "image_swapchain_create_info", "Test VkImageSwapchainCreateInfoKHR", testImageSwapchainCreateInfo, params.wsiType);
 }
 
+void populateSwapchainPrivateDataGroup (tcu::TestCaseGroup* testGroup, GroupParameters params)
+{
+	for (int dimensionNdx = 0; dimensionNdx < TEST_DIMENSION_LAST; ++dimensionNdx)
+	{
+		const TestDimension		testDimension	= (TestDimension)dimensionNdx;
+		if (testDimension == TEST_DIMENSION_IMAGE_EXTENT)
+			continue;
+
+		addFunctionCase(testGroup, getTestDimensionName(testDimension), "", params.function, TestParameters(params.wsiType, testDimension));
+	}
+}
+
 VkSwapchainCreateInfoKHR getBasicSwapchainParameters (Type						wsiType,
 													  const InstanceInterface&	vki,
 													  VkPhysicalDevice			physicalDevice,
@@ -1355,7 +1525,7 @@
 	{
 		native.reset(new NativeObjects(context, instHelper.supportedExtensions, params.wsiType, params.swapchainCount, tcu::just(desiredSize)));
 	}
-	catch(tcu::ResourceError& err)
+	catch(tcu::ResourceError&)
 	{
 		std::ostringstream msg;
 		msg << "Unable to create " << params.swapchainCount << " windows";
@@ -2475,13 +2645,14 @@
 
 void createSwapchainTests (tcu::TestCaseGroup* testGroup, vk::wsi::Type wsiType)
 {
-	addTestGroup(testGroup, "create",			"Create VkSwapchain with various parameters",					populateSwapchainGroup,		GroupParameters(wsiType, createSwapchainTest));
-	addTestGroup(testGroup, "simulate_oom",		"Simulate OOM using callbacks during swapchain construction",	populateSwapchainGroup,		GroupParameters(wsiType, createSwapchainSimulateOOMTest));
-	addTestGroup(testGroup, "render",			"Rendering Tests",												populateRenderGroup,		wsiType);
-	addTestGroup(testGroup, "modify",			"Modify VkSwapchain",											populateModifyGroup,		wsiType);
-	addTestGroup(testGroup, "destroy",			"Destroy VkSwapchain",											populateDestroyGroup,		wsiType);
-	addTestGroup(testGroup, "get_images",		"Get swapchain images",											populateGetImagesGroup,		wsiType);
-	addTestGroup(testGroup, "acquire",			"Ancquire next swapchain image",								populateAcquireGroup,		wsiType);
+	addTestGroup(testGroup, "create",			"Create VkSwapchain with various parameters",					populateSwapchainGroup,					GroupParameters(wsiType, createSwapchainTest));
+	addTestGroup(testGroup, "simulate_oom",		"Simulate OOM using callbacks during swapchain construction",	populateSwapchainGroup,					GroupParameters(wsiType, createSwapchainSimulateOOMTest));
+	addTestGroup(testGroup, "render",			"Rendering Tests",												populateRenderGroup,					wsiType);
+	addTestGroup(testGroup, "modify",			"Modify VkSwapchain",											populateModifyGroup,					wsiType);
+	addTestGroup(testGroup, "destroy",			"Destroy VkSwapchain",											populateDestroyGroup,					wsiType);
+	addTestGroup(testGroup, "get_images",		"Get swapchain images",											populateGetImagesGroup,					wsiType);
+	addTestGroup(testGroup, "acquire",			"Ancquire next swapchain image",								populateAcquireGroup,					wsiType);
+	addTestGroup(testGroup, "private_data",		"Create VkSwapchain and use VK_EXT_private_data",				populateSwapchainPrivateDataGroup,		GroupParameters(wsiType, createSwapchainPrivateDataTest));
 }
 
 } // wsi
diff --git a/external/vulkancts/modules/vulkan/ycbcr/CMakeLists.txt b/external/vulkancts/modules/vulkan/ycbcr/CMakeLists.txt
index 583d97e..bc45adf 100644
--- a/external/vulkancts/modules/vulkan/ycbcr/CMakeLists.txt
+++ b/external/vulkancts/modules/vulkan/ycbcr/CMakeLists.txt
@@ -9,6 +9,8 @@
 set(DEQP_VK_YCBCR_SRCS
 	vktYCbCrConversionTests.cpp
 	vktYCbCrConversionTests.hpp
+	vktYCbCrFilteringTests.cpp
+	vktYCbCrFilteringTests.hpp
 	vktYCbCrFormatTests.cpp
 	vktYCbCrFormatTests.hpp
 	vktYCbCrImageQueryTests.cpp
diff --git a/external/vulkancts/modules/vulkan/ycbcr/vktYCbCrFilteringTests.cpp b/external/vulkancts/modules/vulkan/ycbcr/vktYCbCrFilteringTests.cpp
new file mode 100644
index 0000000..ced16d5
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/ycbcr/vktYCbCrFilteringTests.cpp
@@ -0,0 +1,560 @@
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2020 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief YCbCr filtering tests.
+ *//*--------------------------------------------------------------------*/
+
+#include "tcuVectorUtil.hpp"
+#include "tcuTexVerifierUtil.hpp"
+#include "tcuImageCompare.hpp"
+#include "vkImageUtil.hpp"
+#include "vkMemUtil.hpp"
+#include "vkPrograms.hpp"
+#include "vkRefUtil.hpp"
+#include "vkCmdUtil.hpp"
+#include "vkBarrierUtil.hpp"
+#include "vktTestCase.hpp"
+#include "vktTestGroupUtil.hpp"
+#include "vktYCbCrFilteringTests.hpp"
+#include "vktDrawUtil.hpp"
+#include "vktYCbCrUtil.hpp"
+#include "gluTextureTestUtil.hpp"
+#include <string>
+#include <vector>
+
+using namespace vk;
+using namespace vkt::drawutil;
+
+namespace vkt
+{
+namespace ycbcr
+{
+namespace
+{
+
+using std::vector;
+using std::string;
+using tcu::TestLog;
+using tcu::Sampler;
+using namespace glu::TextureTestUtil;
+
+class LinearFilteringTestInstance: public TestInstance
+{
+public:
+	LinearFilteringTestInstance(Context& context, VkFormat format);
+	~LinearFilteringTestInstance() = default;
+
+protected:
+
+	VkSamplerCreateInfo				getSamplerInfo				(VkFilter								minMagFilter,
+																 const VkSamplerYcbcrConversionInfo*	samplerConversionInfo = DE_NULL);
+	Move<VkDescriptorSetLayout>		createDescriptorSetLayout	(VkSampler sampler);
+	Move<VkDescriptorPool>			createDescriptorPool		(void);
+	Move<VkDescriptorSet>			createDescriptorSet			(VkDescriptorPool		descPool,
+																 VkDescriptorSetLayout	descLayout);
+	Move<VkSamplerYcbcrConversion>	createYCbCrConversion		(void);
+	Move<VkImage>					createImage					(deUint32 width, deUint32 height);
+	Move<VkImageView>				createImageView				(const VkSamplerYcbcrConversionInfo& samplerConversionInfo, VkImage image);
+	void							bindImage					(VkDescriptorSet		descriptorSet,
+																 VkImageView			imageView,
+																 VkSampler				sampler);
+	tcu::TestStatus					iterate						(void);
+	void							getExplicitFilteringRefData	(const MultiPlaneImageData& imageData, vector<deUint8>& refData);
+	void							getImplicitFilteringRefData	(const MultiPlaneImageData& imageData, vector<deUint8>& refData);
+
+
+private:
+
+	struct FilterCase
+	{
+		const tcu::UVec2 imageSize;
+		const tcu::UVec2 renderSize;
+	};
+
+	const VkFormat				m_format;
+	const DeviceInterface&		m_vkd;
+	const VkDevice				m_device;
+	int							m_caseIndex;
+	const vector<FilterCase>	m_cases;
+};
+
+LinearFilteringTestInstance::LinearFilteringTestInstance(Context& context, VkFormat format)
+	: TestInstance	(context)
+	, m_format		(format)
+	, m_vkd			(m_context.getDeviceInterface())
+	, m_device		(m_context.getDevice())
+	, m_caseIndex	(0)
+	, m_cases		{
+		{ { 8,  8}, {64, 64} },
+		{ {64, 32}, {32, 64} }
+	}
+{
+}
+
+VkSamplerCreateInfo LinearFilteringTestInstance::getSamplerInfo(VkFilter minMagFilter, const VkSamplerYcbcrConversionInfo* samplerConversionInfo)
+{
+	return
+	{
+		VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO,
+		samplerConversionInfo,
+		0u,
+		minMagFilter,								// magFilter
+		minMagFilter,								// minFilter
+		VK_SAMPLER_MIPMAP_MODE_NEAREST,				// mipmapMode
+		VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,		// addressModeU
+		VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,		// addressModeV
+		VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,		// addressModeW
+		0.0f,										// mipLodBias
+		VK_FALSE,									// anisotropyEnable
+		1.0f,										// maxAnisotropy
+		VK_FALSE,									// compareEnable
+		VK_COMPARE_OP_ALWAYS,						// compareOp
+		0.0f,										// minLod
+		0.0f,										// maxLod
+		VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,	// borderColor
+		VK_FALSE,									// unnormalizedCoords
+	};
+}
+
+Move<VkDescriptorSetLayout> LinearFilteringTestInstance::createDescriptorSetLayout(VkSampler sampler)
+{
+	const VkDescriptorSetLayoutBinding binding =
+	{
+		0u,												// binding
+		VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
+		1u,												// descriptorCount
+		VK_SHADER_STAGE_ALL,
+		&sampler
+	};
+	const VkDescriptorSetLayoutCreateInfo layoutInfo =
+	{
+		VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,
+		DE_NULL,
+		(VkDescriptorSetLayoutCreateFlags)0u,
+		1u,
+		&binding,
+	};
+
+	return ::createDescriptorSetLayout(m_vkd, m_device, &layoutInfo);
+}
+
+Move<VkDescriptorPool> LinearFilteringTestInstance::createDescriptorPool()
+{
+	const VkDescriptorPoolSize poolSizes[] =
+	{
+		{ VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,	1u	},
+	};
+	const VkDescriptorPoolCreateInfo poolInfo =
+	{
+		VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO,
+		DE_NULL,
+		(VkDescriptorPoolCreateFlags)VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,
+		1u,		// maxSets
+		DE_LENGTH_OF_ARRAY(poolSizes),
+		poolSizes,
+	};
+
+	return ::createDescriptorPool(m_vkd, m_device, &poolInfo);
+}
+
+Move<VkDescriptorSet> LinearFilteringTestInstance::createDescriptorSet(VkDescriptorPool			descPool,
+																	   VkDescriptorSetLayout	descLayout)
+{
+	const VkDescriptorSetAllocateInfo allocInfo =
+	{
+		VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO,
+		DE_NULL,
+		descPool,
+		1u,
+		&descLayout,
+	};
+
+	return allocateDescriptorSet(m_vkd, m_device, &allocInfo);
+}
+
+Move<VkSamplerYcbcrConversion> LinearFilteringTestInstance::createYCbCrConversion()
+{
+	const VkSamplerYcbcrConversionCreateInfo conversionInfo =
+	{
+		VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
+		DE_NULL,
+		m_format,
+		VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
+		VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
+		{
+			VK_COMPONENT_SWIZZLE_IDENTITY,
+			VK_COMPONENT_SWIZZLE_IDENTITY,
+			VK_COMPONENT_SWIZZLE_IDENTITY,
+			VK_COMPONENT_SWIZZLE_IDENTITY,
+		},
+		VK_CHROMA_LOCATION_MIDPOINT,
+		VK_CHROMA_LOCATION_MIDPOINT,
+		VK_FILTER_NEAREST,							// chromaFilter
+		VK_FALSE,									// forceExplicitReconstruction
+	};
+
+	return createSamplerYcbcrConversion(m_vkd, m_device, &conversionInfo);
+}
+
+Move<VkImage> LinearFilteringTestInstance::createImage(deUint32 width, deUint32 height)
+{
+	VkImageCreateFlags			createFlags = 0u;
+	const VkImageCreateInfo		createInfo =
+	{
+		VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
+		DE_NULL,
+		createFlags,
+		VK_IMAGE_TYPE_2D,
+		m_format,
+		makeExtent3D(width, height, 1u),
+		1u,		// mipLevels
+		1u,		// arrayLayers
+		VK_SAMPLE_COUNT_1_BIT,
+		VK_IMAGE_TILING_OPTIMAL,
+		VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_SAMPLED_BIT,
+		VK_SHARING_MODE_EXCLUSIVE,
+		0u,
+		(const deUint32*)DE_NULL,
+		VK_IMAGE_LAYOUT_UNDEFINED,
+	};
+
+	return ::createImage(m_vkd, m_device, &createInfo);
+}
+
+Move<VkImageView> LinearFilteringTestInstance::createImageView(const VkSamplerYcbcrConversionInfo& samplerConversionInfo, VkImage image)
+{
+	const VkImageViewCreateInfo	viewInfo =
+	{
+		VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
+		&samplerConversionInfo,
+		(VkImageViewCreateFlags)0,
+		image,
+		VK_IMAGE_VIEW_TYPE_2D,
+		m_format,
+		{
+			VK_COMPONENT_SWIZZLE_IDENTITY,
+			VK_COMPONENT_SWIZZLE_IDENTITY,
+			VK_COMPONENT_SWIZZLE_IDENTITY,
+			VK_COMPONENT_SWIZZLE_IDENTITY,
+		},
+		{ VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u },
+	};
+
+	return ::createImageView(m_vkd, m_device, &viewInfo);
+}
+
+void LinearFilteringTestInstance::bindImage(VkDescriptorSet	descriptorSet,
+											VkImageView		imageView,
+											VkSampler		sampler)
+{
+	const VkDescriptorImageInfo imageInfo =
+	{
+		sampler,
+		imageView,
+		VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
+	};
+	const VkWriteDescriptorSet descriptorWrite =
+	{
+		VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,
+		DE_NULL,
+		descriptorSet,
+		0u,		// dstBinding
+		0u,		// dstArrayElement
+		1u,		// descriptorCount
+		VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
+		&imageInfo,
+		(const VkDescriptorBufferInfo*)DE_NULL,
+		(const VkBufferView*)DE_NULL,
+	};
+
+	m_vkd.updateDescriptorSets(m_device, 1u, &descriptorWrite, 0u, DE_NULL);
+}
+
+void LinearFilteringTestInstance::getExplicitFilteringRefData(const MultiPlaneImageData& imageData, vector<deUint8>& refData)
+{
+	const tcu::UVec2					imageSize				= m_cases[m_caseIndex].imageSize;
+	const vk::PlanarFormatDescription&	planarFormatDescription = imageData.getDescription();
+	const deUint8*						lumaData				= static_cast<const deUint8*>(imageData.getPlanePtr(0));
+	const deUint8*						chromaBData				= static_cast<const deUint8*>(imageData.getPlanePtr(1));
+	const deUint8*						chromaRData				= chromaBData;		// assuming 2 planes
+	deUint32							chromaStride			= 2;
+	deUint32							chromaOffset			= 1;
+
+	if (planarFormatDescription.numPlanes == 3)
+	{
+		chromaRData		= static_cast<const deUint8*>(imageData.getPlanePtr(2));
+		chromaStride	= 1;
+		chromaOffset	= 0;
+	}
+
+	// associate nearest chroma sample with each luma sample
+	vector<deUint8> intermediateImageData(imageSize.x() * imageSize.y() * 4, 255);
+	for (deUint32 y = 0; y < imageSize.y(); ++y)
+	{
+		for (deUint32 x = 0; x < imageSize.x(); ++x)
+		{
+			deUint32 component						= x * 4 + imageSize.x() * y * 4;
+			deUint32 chromaIndex					= x / 2 + (imageSize.x() / 2) * (y / 2);
+			intermediateImageData[component]		= lumaData[x + imageSize.x() * y];
+			intermediateImageData[component + 1]	= chromaBData[chromaStride * chromaIndex];
+			intermediateImageData[component + 2]	= chromaRData[chromaStride * chromaIndex + chromaOffset];
+		}
+	}
+
+	tcu::ConstPixelBufferAccess intermediateImage	(vk::mapVkFormat(VK_FORMAT_R8G8B8A8_UNORM), imageSize.x(), imageSize.y(), 1, intermediateImageData.data());
+	const tcu::Texture2DView	intermediateTexView	(1u, &intermediateImage);
+	const tcu::Sampler			refSampler			(mapVkSampler(getSamplerInfo(VK_FILTER_LINEAR)));
+	const tcu::UVec2			renderSize			(m_cases[m_caseIndex].renderSize);
+
+	// sample intermediate image and convert to gbr to generate reference image
+	for (deUint32 y = 0; y < renderSize.y(); ++y)
+	{
+		float yCoord = ((float)y + 0.5f) / (float)renderSize.y();
+		for (deUint32 x = 0; x < renderSize.x(); ++x)
+		{
+			float		xCoord		= ((float)x + 0.5f) / (float)renderSize.x();
+			tcu::Vec4	color		= intermediateTexView.sample(refSampler, xCoord, yCoord, 0.0f);
+			deUint32	texelIndex	= x * 4 + renderSize.x() * y * 4;
+			refData[texelIndex + 1] = static_cast<deUint8>(255 * color[0]);		// g
+			refData[texelIndex + 2] = static_cast<deUint8>(255 * color[1]);		// b
+			refData[texelIndex]		= static_cast<deUint8>(255 * color[2]);		// r
+		}
+	}
+}
+
+void LinearFilteringTestInstance::getImplicitFilteringRefData(const MultiPlaneImageData& imageData, vector<deUint8>& refData)
+{
+	const tcu::UVec2			renderSize			(m_cases[m_caseIndex].renderSize);
+	const VkSamplerCreateInfo	nSamplerCreateInfo	(getSamplerInfo(VK_FILTER_NEAREST));
+	const VkSamplerCreateInfo	lSamplerCreateInfo	(getSamplerInfo(VK_FILTER_LINEAR));
+	const tcu::Sampler			refSamplerNearest	(mapVkSampler(nSamplerCreateInfo));
+	const tcu::Sampler			refSamplerLinear	(mapVkSampler(lSamplerCreateInfo));
+	const deUint32				channelRemap[]		= { 1, 0, 2 };		// remap to have channels in order: Y Cr Cb
+	const tcu::Sampler*			refSampler[]		=
+	{
+		&refSamplerLinear,
+		&refSamplerNearest,
+		&refSamplerNearest
+	};
+
+	for (deUint32 channelNdx = 0; channelNdx < 3; channelNdx++)
+	{
+		const tcu::ConstPixelBufferAccess	channelAccess		(imageData.getChannelAccess(channelNdx));
+		const tcu::Texture2DView			refTexView			(1u, &channelAccess);
+		const deUint32						orderedChannelNdx	(channelRemap[channelNdx]);
+
+		for (deUint32 y = 0; y < renderSize.y(); ++y)
+		{
+			float yCoord = ((float)y + 0.5f) / (float)renderSize.y();
+			for (deUint32 x = 0; x < renderSize.x(); ++x)
+			{
+				deUint32	texelIndex	= x * 4 + renderSize.x() * y * 4 + channelNdx;
+				float		xCoord		= ((float)x + 0.5f) / (float)renderSize.x();
+				refData[texelIndex]		= static_cast<deUint8>(255.0f * refTexView.sample(*refSampler[orderedChannelNdx], xCoord, yCoord, 0.0f)[0]);
+			}
+		}
+	}
+}
+
+tcu::TestStatus LinearFilteringTestInstance::iterate(void)
+{
+	const tcu::UVec2						imageSize			(m_cases[m_caseIndex].imageSize);
+	const tcu::UVec2						renderSize			(m_cases[m_caseIndex].renderSize);
+	const auto&								instInt				(m_context.getInstanceInterface());
+	auto									physicalDevice		(m_context.getPhysicalDevice());
+	const Unique<VkSamplerYcbcrConversion>	conversion			(createYCbCrConversion());
+	const VkSamplerYcbcrConversionInfo		samplerConvInfo		{ VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO, DE_NULL, *conversion };
+	const VkSamplerCreateInfo				samplerCreateInfo	(getSamplerInfo(VK_FILTER_LINEAR, &samplerConvInfo));
+	const Unique<VkSampler>					sampler				(createSampler(m_vkd, m_device, &samplerCreateInfo));
+	const Unique<VkDescriptorSetLayout>		descLayout			(createDescriptorSetLayout(*sampler));
+	const Unique<VkDescriptorPool>			descPool			(createDescriptorPool());
+	const Unique<VkDescriptorSet>			descSet				(createDescriptorSet(*descPool, *descLayout));
+	const Unique<VkImage>					testImage			(createImage(imageSize.x(), imageSize.y()));
+	const vector<AllocationSp>				allocations			(allocateAndBindImageMemory(m_vkd, m_device, m_context.getDefaultAllocator(), *testImage, m_format, 0u));
+	const Unique<VkImageView>				imageView			(createImageView(samplerConvInfo, *testImage));
+
+	// create and bind image with test data
+	MultiPlaneImageData imageData(m_format, imageSize);
+	fillGradient(&imageData, tcu::Vec4(0.0f), tcu::Vec4(1.0f));
+	uploadImage(m_vkd,
+				m_device,
+				m_context.getUniversalQueueFamilyIndex(),
+				m_context.getDefaultAllocator(),
+				*testImage,
+				imageData,
+				(VkAccessFlags)VK_ACCESS_SHADER_READ_BIT,
+				VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
+				0);
+	bindImage(*descSet, *imageView, *sampler);
+
+	const vector<tcu::Vec4> vertices =
+	{
+		{ -1.0f, -1.0f, 0.0f, 1.0f },
+		{ +1.0f, -1.0f, 0.0f, 1.0f },
+		{ -1.0f, +1.0f, 0.0f, 1.0f },
+		{ +1.0f, +1.0f, 0.0f, 1.0f }
+	};
+	VulkanProgram program({
+		VulkanShader(VK_SHADER_STAGE_VERTEX_BIT,	m_context.getBinaryCollection().get("vert")),
+		VulkanShader(VK_SHADER_STAGE_FRAGMENT_BIT,	m_context.getBinaryCollection().get("frag"))
+	});
+	program.descriptorSet		= *descSet;
+	program.descriptorSetLayout = *descLayout;
+
+	PipelineState		pipelineState		(m_context.getDeviceProperties().limits.subPixelPrecisionBits);
+	const DrawCallData	drawCallData		(VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP, vertices);
+	FrameBufferState	frameBufferState	(renderSize.x(), renderSize.y());
+	VulkanDrawContext	renderer			(m_context, frameBufferState);
+
+	// render full screen quad
+	renderer.registerDrawObject(pipelineState, program, drawCallData);
+	renderer.draw();
+
+	// get rendered image
+	tcu::ConstPixelBufferAccess resImage(renderer.getColorPixels());
+
+	vector<deUint8>					refData				(renderSize.x() * renderSize.y() * 4, 255);
+	const VkFormatProperties		formatProperties	(getPhysicalDeviceFormatProperties(instInt, physicalDevice, m_format));
+	const VkFormatFeatureFlags		featureFlags		(formatProperties.optimalTilingFeatures);
+	const bool						explicitFiltering	(featureFlags & VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT);
+
+	// generate reference image data
+	if (explicitFiltering)
+		getExplicitFilteringRefData(imageData, refData);
+	else
+		getImplicitFilteringRefData(imageData, refData);
+
+	float							threshold			(0.01f);
+	tcu::Vec4						thresholdVec		(threshold, threshold, threshold, 1.0f);
+	tcu::TextureFormat				refFormat			(vk::mapVkFormat(frameBufferState.colorFormat));
+	tcu::ConstPixelBufferAccess		refImage			(refFormat, renderSize.x(), renderSize.y(), 1, refData.data());
+
+	// compare reference with the rendered image
+	if (!tcu::floatThresholdCompare(m_context.getTestContext().getLog(), "Compare", "", refImage, resImage, thresholdVec, tcu::COMPARE_LOG_RESULT))
+		return tcu::TestStatus::fail("Invalid result");
+
+	if (++m_caseIndex < (int)m_cases.size())
+		return tcu::TestStatus::incomplete();
+	return tcu::TestStatus::pass("Pass");
+}
+
+class LinearFilteringTestCase : public vkt::TestCase
+{
+public:
+	LinearFilteringTestCase(tcu::TestContext &context, const char* name, const char* description, VkFormat format);
+
+protected:
+	void				checkSupport(Context& context) const;
+	vkt::TestInstance*	createInstance(vkt::Context& context) const;
+	void				initPrograms(SourceCollections& programCollection) const;
+
+private:
+	VkFormat			m_format;
+};
+
+LinearFilteringTestCase::LinearFilteringTestCase(tcu::TestContext &context, const char* name, const char* description, VkFormat format)
+	: TestCase(context, name, description)
+	, m_format(format)
+{
+}
+
+void LinearFilteringTestCase::checkSupport(Context& context) const
+{
+	context.requireDeviceFunctionality("VK_KHR_sampler_ycbcr_conversion");
+
+	const auto&					instInt				= context.getInstanceInterface();
+	auto						physicalDevice		= context.getPhysicalDevice();
+	const VkFormatProperties	formatProperties	= getPhysicalDeviceFormatProperties(instInt, physicalDevice, m_format);
+	const VkFormatFeatureFlags	featureFlags		= formatProperties.optimalTilingFeatures;
+
+	if ((featureFlags & VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT) == 0)
+		TCU_THROW(NotSupportedError, "YCbCr conversion is not supported for format");
+
+	if ((featureFlags & VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT) == 0)
+		TCU_THROW(NotSupportedError, "Linear filtering not supported for format");
+
+	if ((featureFlags & VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT) == 0)
+		TCU_THROW(NotSupportedError, "Different chroma, min, and mag filters not supported for format");
+}
+
+vkt::TestInstance* LinearFilteringTestCase::createInstance(vkt::Context& context) const
+{
+	return new LinearFilteringTestInstance(context, m_format);
+}
+
+void LinearFilteringTestCase::initPrograms(SourceCollections& programCollection) const
+{
+	static const char* vertShader =
+		"#version 450\n"
+		"precision mediump int; precision highp float;\n"
+		"layout(location = 0) in vec4 a_position;\n"
+		"layout(location = 0) out vec2 v_texCoord;\n"
+		"out gl_PerVertex { vec4 gl_Position; };\n"
+		"\n"
+		"void main (void)\n"
+		"{\n"
+		"  v_texCoord = a_position.xy * 0.5 + 0.5;\n"
+		"  gl_Position = a_position;\n"
+		"}\n";
+
+	static const char* fragShader =
+		"#version 450\n"
+		"precision mediump int; precision highp float;\n"
+		"layout(location = 0) in vec2 v_texCoord;\n"
+		"layout(location = 0) out mediump vec4 dEQP_FragColor;\n"
+		"layout (set=0, binding=0) uniform sampler2D u_sampler;\n"
+		"void main (void)\n"
+		"{\n"
+		"  dEQP_FragColor = vec4(texture(u_sampler, v_texCoord));\n"
+		"}\n";
+
+	programCollection.glslSources.add("vert") << glu::VertexSource(vertShader);
+	programCollection.glslSources.add("frag") << glu::FragmentSource(fragShader);
+}
+
+} // anonymous
+
+tcu::TestCaseGroup* createFilteringTests (tcu::TestContext& testCtx)
+{
+	struct YCbCrFormatData
+	{
+		const char* const	name;
+		const VkFormat		format;
+	};
+
+	static const std::vector<YCbCrFormatData> ycbcrFormats =
+	{
+		{ "g8_b8_r8_3plane_420_unorm",	VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM		},
+		{ "g8_b8r8_2plane_420_unorm",	VK_FORMAT_G8_B8R8_2PLANE_420_UNORM		},
+	};
+
+	de::MovePtr<tcu::TestCaseGroup> filteringTests(new tcu::TestCaseGroup(testCtx, "filtering",	"YCbCr filtering tests"));
+
+	for (const auto& ycbcrFormat : ycbcrFormats)
+	{
+		const std::string name = std::string("linear_sampler_") + ycbcrFormat.name;
+		filteringTests->addChild(new LinearFilteringTestCase(filteringTests->getTestContext(), name.c_str(), "", ycbcrFormat.format));
+	}
+
+	return filteringTests.release();
+}
+
+} // ycbcr
+} // vkt
diff --git a/external/vulkancts/modules/vulkan/ycbcr/vktYCbCrFilteringTests.hpp b/external/vulkancts/modules/vulkan/ycbcr/vktYCbCrFilteringTests.hpp
new file mode 100644
index 0000000..049356b
--- /dev/null
+++ b/external/vulkancts/modules/vulkan/ycbcr/vktYCbCrFilteringTests.hpp
@@ -0,0 +1,39 @@
+#ifndef _VKTYCBCRFILTERINGTESTS_HPP
+#define _VKTYCBCRFILTERINGTESTS_HPP
+/*------------------------------------------------------------------------
+ * Vulkan Conformance Tests
+ * ------------------------
+ *
+ * Copyright (c) 2020 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief YCbCr filtering tests.
+ *//*--------------------------------------------------------------------*/
+
+#include "tcuDefs.hpp"
+#include "tcuTestCase.hpp"
+
+namespace vkt
+{
+namespace ycbcr
+{
+
+tcu::TestCaseGroup*	createFilteringTests	(tcu::TestContext& testCtx);
+
+} // ycbcr
+} // vkt
+
+#endif // _VKTYCBCRFILTERINGTESTS_HPP
diff --git a/external/vulkancts/modules/vulkan/ycbcr/vktYCbCrTests.cpp b/external/vulkancts/modules/vulkan/ycbcr/vktYCbCrTests.cpp
index 1eee5bf..c231422 100644
--- a/external/vulkancts/modules/vulkan/ycbcr/vktYCbCrTests.cpp
+++ b/external/vulkancts/modules/vulkan/ycbcr/vktYCbCrTests.cpp
@@ -24,6 +24,7 @@
 #include "vktYCbCrTests.hpp"
 #include "vktTestGroupUtil.hpp"
 #include "vktYCbCrFormatTests.hpp"
+#include "vktYCbCrFilteringTests.hpp"
 #include "vktYCbCrViewTests.hpp"
 #include "vktYCbCrImageQueryTests.hpp"
 #include "vktYCbCrConversionTests.hpp"
@@ -43,6 +44,7 @@
 	tcu::TestContext&	testCtx		= ycbcrTests->getTestContext();
 
 	ycbcrTests->addChild(createFormatTests(testCtx));
+	ycbcrTests->addChild(createFilteringTests(testCtx));
 	ycbcrTests->addChild(createViewTests(testCtx));
 	ycbcrTests->addChild(createImageQueryTests(testCtx));
 	ycbcrTests->addChild(createConversionTests(testCtx));
diff --git a/external/vulkancts/mustpass/AndroidTest.xml b/external/vulkancts/mustpass/AndroidTest.xml
index 63fbf68..be4eece 100644
--- a/external/vulkancts/mustpass/AndroidTest.xml
+++ b/external/vulkancts/mustpass/AndroidTest.xml
@@ -34,10 +34,6 @@
 	</test>
 	<test class="com.drawelements.deqp.runner.DeqpTestRunner">
 		<option name="deqp-package" value="dEQP-VK"/>
-		<option name="deqp-caselist-file" value="vk-default-no-waivers.txt"/>
-	</test>
-	<test class="com.drawelements.deqp.runner.DeqpTestRunner">
-		<option name="deqp-package" value="dEQP-VK"/>
 		<option name="deqp-caselist-file" value="vk-fraction-mandatory-tests.txt"/>
 	</test>
 </configuration>
diff --git a/external/vulkancts/mustpass/master/src/excluded-tests.txt b/external/vulkancts/mustpass/master/src/excluded-tests.txt
index 160f3df..dcc3d96 100644
--- a/external/vulkancts/mustpass/master/src/excluded-tests.txt
+++ b/external/vulkancts/mustpass/master/src/excluded-tests.txt
@@ -17,7 +17,100 @@
 # Test shader length is excessive, excluding until such time as the test case can be re-visited.
 dEQP-VK.ssbo.layout.random.scalar.75
 
-# VK-GL-CTS 1024
-dEQP-VK.rasterization.interpolation_multisample_16_bit.lines_wide
-dEQP-VK.rasterization.interpolation_multisample_16_bit.non_strict_lines_wide
-dEQP-VK.rasterization.primitives_multisample_16_bit.no_stipple.non_strict_lines_wide
+
+# VK-GL-CTS 2157, CL 5278
+# Excluded them as Intel HW is failing these tests.
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_ca_1ms1a_sub_alpha_1msa_1mca_sub-color_1msc_da_max_alpha_o_da_add-color_s1c_s1a_max_alpha_dc_1ms1a_sub-color_s1a_z_sub_alpha_1msa_1msc_max
+dEQP-VK.pipeline.blend.dual_source.format.r8g8b8a8_srgb.states.color_ca_1ms1a_sub_alpha_1msa_1mdc_sub-color_1mda_sas_add_alpha_o_ca_add-color_sa_1mdc_sub_alpha_o_1mca_rsub-color_s1c_1msa_rsub_alpha_1msa_1mca_add
+
+# VK-GL-CTS 1682
+dEQP-VK.texture.filtering.2d.formats.r16g16b16a16_sfloat.cubic
+dEQP-VK.texture.filtering.2d.formats.b10g11r11_ufloat.cubic
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_unorm.cubic
+dEQP-VK.texture.filtering.2d.formats.r8g8b8a8_snorm.cubic
+dEQP-VK.texture.filtering.2d.formats.r5g6b5_unorm.cubic
+dEQP-VK.texture.filtering.2d.formats.r4g4b4a4_unorm.cubic
+dEQP-VK.texture.filtering.2d.formats.r5g5b5a1_unorm.cubic
+dEQP-VK.texture.filtering.2d.formats.a8b8g8r8_srgb.cubic
+dEQP-VK.texture.filtering.2d.formats.a1r5g5b5_unorm.cubic
+dEQP-VK.texture.filtering.2d.sizes.4x8.cubic
+dEQP-VK.texture.filtering.2d.sizes.32x64.cubic
+dEQP-VK.texture.filtering.2d.sizes.128x128.cubic
+dEQP-VK.texture.filtering.2d.sizes.3x7.cubic
+dEQP-VK.texture.filtering.2d.sizes.31x55.cubic
+dEQP-VK.texture.filtering.2d.sizes.127x99.cubic
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.mirrored_repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.mirrored_repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.mirrored_repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.mirrored_repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.mirrored_repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.clamp_to_border.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.clamp_to_border.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.clamp_to_border.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.clamp_to_border.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.clamp_to_border.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.mirror_clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.mirror_clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.mirror_clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.mirror_clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic.nearest.mirror_clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.mirrored_repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.mirrored_repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.mirrored_repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.mirrored_repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.mirrored_repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.clamp_to_border.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.clamp_to_border.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.clamp_to_border.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.clamp_to_border.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.clamp_to_border.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.mirror_clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.mirror_clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.mirror_clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.mirror_clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic.linear.mirror_clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.mirrored_repeat.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.mirrored_repeat.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.mirrored_repeat.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.mirrored_repeat.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.mirrored_repeat.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.clamp_to_edge.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.clamp_to_border.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.clamp_to_border.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.clamp_to_border.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.clamp_to_border.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.clamp_to_border.mirror_clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.mirror_clamp_to_edge.repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.mirror_clamp_to_edge.mirrored_repeat
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.mirror_clamp_to_edge.clamp_to_edge
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.mirror_clamp_to_edge.clamp_to_border
+dEQP-VK.texture.filtering.2d.combinations.cubic.cubic.mirror_clamp_to_edge.mirror_clamp_to_edge
diff --git a/external/vulkancts/mustpass/master/src/waivers.txt b/external/vulkancts/mustpass/master/src/waivers.txt
deleted file mode 100644
index c82dc69..0000000
--- a/external/vulkancts/mustpass/master/src/waivers.txt
+++ /dev/null
@@ -1,68 +0,0 @@
-#
-# VK-GL-CTS Issue #336
-#
-# This occurs on some versions of Imagination Technologies G6200, G6230, G6400, and G6430
-# Rogue Series 6 GPU's.
-#
-# The affected GPU's are unable to correctly filter CEM corners with F32 textures, this
-# includes the ability to gather texels for texel gather instructions.
-#
-# An application using gather on an F32 texture would obtain incorrect texel values around
-# the corners of the cubemap.
-#
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_clamp_to_edge_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_repeat_mirrored_repeat
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_mirrored_repeat_clamp_to_edge
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_nearest_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_nearest_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_nearest_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_nearest_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mipmap_nearest_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mipmap_linear_mag_linear
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.level_1
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.sparse_level_1
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.level_2
-dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.sparse_level_2
-
-
-#
-# VK-GL-CTS Issue #757
-#
-# This occurs on some versions of Broadcom's Videocore GPUs. On affected devices depth clipping
-# is incorrectly disabled when the viewport minDepth is equal to maxDepth.
-#
-dEQP-VK.draw.inverted_depth_ranges.nodepthclamp_deltazero
-
-#
-# VK-GL-CTS Issue #1356
-#
-# This occurs on NVIDIA Kepler GPUs. The affected GPUs are unable to reliably synchronize memory
-# accesses at device scope.
-#
-dEQP-VK.memory_model.*core11*.device.*
-
diff --git a/external/vulkancts/mustpass/master/vk-default-no-waivers.txt b/external/vulkancts/mustpass/master/vk-default-no-waivers.txt
deleted file mode 100644
index 1dff4b0..0000000
--- a/external/vulkancts/mustpass/master/vk-default-no-waivers.txt
+++ /dev/null
Binary files differ
diff --git a/external/vulkancts/mustpass/master/vk-default.txt b/external/vulkancts/mustpass/master/vk-default.txt
index 9a89c16..bb39e88 100644
--- a/external/vulkancts/mustpass/master/vk-default.txt
+++ b/external/vulkancts/mustpass/master/vk-default.txt
Binary files differ
diff --git a/external/vulkancts/mustpass/master/waivers.xml b/external/vulkancts/mustpass/master/waivers.xml
new file mode 100644
index 0000000..d0101f2
--- /dev/null
+++ b/external/vulkancts/mustpass/master/waivers.xml
@@ -0,0 +1,319 @@
+<?xml version="1.0" encoding="utf-8"?>
+<waiver_list>
+
+	<!--/*     Copyright (C) 2020 The Khronos Group Inc
+ *
+ *     Licensed under the Apache License, Version 2.0 (the "License");
+ *     you may not use this file except in compliance with the License.
+ *     You may obtain a copy of the License at
+ *
+ *          http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *     Unless required by applicable law or agreed to in writing, software
+ *     distributed under the License is distributed on an "AS IS" BASIS,
+ *     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *     See the License for the specific language governing permissions and
+ *     limitations under the License.
+*/-->
+	<!--/*
+	Each <waiver> entry must contain three attributes: vendorName, vendorId and url.
+	Url should be a full path to gitlab issue(s).
+	Waiver tag should have one <description> child that describes issue.
+	Waiver tag should have one <device_list> child.
+	Device list should have one or more <d> elements containing device ids for which this waiver was created.
+	Waiver tag should contain one or more <t> elements containing test paths that should be waived.
+	String in <t> can use wildcard *.
+
+	<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+	<xs:element name="waiver_list">
+	<xs:complexType>
+		<xs:sequence>
+			<xs:element name="waiver" maxOccurs="unbounded">
+			<xs:complexType>
+				<xs:sequence>
+					<xs:element name="description" type="xs:string"/>
+					<xs:element name="device_list">
+					<xs:complexType>
+						<xs:sequence>
+							<xs:element name="d" type="xs:integer" minOccurs="1" maxOccurs="unbounded"/>
+						</xs:sequence>
+					</xs:complexType>
+					</xs:element>
+					<xs:element name="t" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
+				</xs:sequence>
+				<xs:attribute name="vendorName" type="xs:string" use="required"/>
+				<xs:attribute name="vendorId" type="xs:string" use="required"/>
+				<xs:attribute name="url" type="xs:string" use="required"/>
+			</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	</xs:element>
+	</xs:schema>
+*/-->
+
+	<waiver vendorName="Imagination Technologies" vendorId="0x1010" url="https://gitlab.khronos.org/Tracker/vk-gl-cts/issues/336">
+		<description>GPU's are unable to correctly filter CEM corners with F32 textures, this includes the ability to gather texels for texel gather instructions.</description>
+		<device_list>
+			<!--TODO: plase let me know for which deviceIds this waiver should be defined -->
+			<d>6200</d>
+		</device_list>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.clamp_to_edge_repeat</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_clamp_to_edge_repeat</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.repeat_mirrored_repeat</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_repeat_mirrored_repeat</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.mirrored_repeat_clamp_to_edge</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_less.sparse_mirrored_repeat_clamp_to_edge</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.clamp_to_edge_repeat</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_clamp_to_edge_repeat</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.repeat_mirrored_repeat</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_repeat_mirrored_repeat</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.mirrored_repeat_clamp_to_edge</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_pot.compare_greater.sparse_mirrored_repeat_clamp_to_edge</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.clamp_to_edge_repeat</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_clamp_to_edge_repeat</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.repeat_mirrored_repeat</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_repeat_mirrored_repeat</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.mirrored_repeat_clamp_to_edge</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_less.sparse_mirrored_repeat_clamp_to_edge</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.clamp_to_edge_repeat</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_clamp_to_edge_repeat</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.repeat_mirrored_repeat</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_repeat_mirrored_repeat</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.mirrored_repeat_clamp_to_edge</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.size_npot.compare_greater.sparse_mirrored_repeat_clamp_to_edge</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mag_linear</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mag_linear</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_nearest_mipmap_nearest_mag_linear</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_nearest_mipmap_nearest_mag_linear</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_nearest_mipmap_linear_mag_linear</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_nearest_mipmap_linear_mag_linear</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mipmap_nearest_mag_linear</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mipmap_nearest_mag_linear</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.min_linear_mipmap_linear_mag_linear</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.filter_mode.sparse_min_linear_mipmap_linear_mag_linear</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.level_1</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.sparse_level_1</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.level_2</t>
+		<t>dEQP-VK.glsl.texture_gather.basic.cube.depth32f.base_level.sparse_level_2</t>
+	</waiver>
+
+	<waiver vendorName="Broadcom" vendorId="0x14E4" url="https://gitlab.khronos.org/Tracker/vk-gl-cts/issues/757">
+		<description>On affected devices depth clipping is incorrectly disabled when the viewport minDepth is equal to maxDepth.</description>
+		<device_list>
+			<d>0x8E002214</d>
+			<d>0x001E43CB</d>
+			<d>0xBE485FD3</d>
+		</device_list>
+		<t>dEQP-VK.draw.inverted_depth_ranges.nodepthclamp_deltazero</t>
+	</waiver>
+
+	<waiver vendorName="NVIDIA" vendorId="0x10DE" url="https://gitlab.khronos.org/Tracker/vk-gl-cts/issues/1356">
+		<description>The affected GPUs are unable to reliably synchronize memory accesses at device scope.</description>
+		<device_list>
+			<d>0x0CE0</d>
+			<d>0x0E0D</d>
+			<d>0x0E16</d>
+			<d>0x0FA0</d>
+			<d>0x0FA7</d>
+			<d>0x0FC0</d>
+			<d>0x0FC1</d>
+			<d>0x0FC2</d>
+			<d>0x0FC4</d>
+			<d>0x0FC5</d>
+			<d>0x0FC6</d>
+			<d>0x0FC7</d>
+			<d>0x0FC8</d>
+			<d>0x0FC9</d>
+			<d>0x0FCA</d>
+			<d>0x0FCB</d>
+			<d>0x0FCC</d>
+			<d>0x0FCD</d>
+			<d>0x0FCE</d>
+			<d>0x0FCF</d>
+			<d>0x0FD0</d>
+			<d>0x0FD1</d>
+			<d>0x0FD2</d>
+			<d>0x0FD3</d>
+			<d>0x0FD4</d>
+			<d>0x0FD5</d>
+			<d>0x0FD6</d>
+			<d>0x0FD7</d>
+			<d>0x0FD8</d>
+			<d>0x0FD9</d>
+			<d>0x0FDA</d>
+			<d>0x0FDB</d>
+			<d>0x0FDC</d>
+			<d>0x0FDD</d>
+			<d>0x0FDE</d>
+			<d>0x0FDF</d>
+			<d>0x0FE0</d>
+			<d>0x0FE1</d>
+			<d>0x0FE2</d>
+			<d>0x0FE3</d>
+			<d>0x0FE4</d>
+			<d>0x0FE5</d>
+			<d>0x0FE6</d>
+			<d>0x0FE7</d>
+			<d>0x0FE8</d>
+			<d>0x0FE9</d>
+			<d>0x0FEA</d>
+			<d>0x0FEC</d>
+			<d>0x0FED</d>
+			<d>0x0FEE</d>
+			<d>0x0FEF</d>
+			<d>0x0FF0</d>
+			<d>0x0FF1</d>
+			<d>0x0FF2</d>
+			<d>0x0FF3</d>
+			<d>0x0FF5</d>
+			<d>0x0FF6</d>
+			<d>0x0FF7</d>
+			<d>0x0FF8</d>
+			<d>0x0FF9</d>
+			<d>0x0FFA</d>
+			<d>0x0FFB</d>
+			<d>0x0FFC</d>
+			<d>0x0FFD</d>
+			<d>0x0FFE</d>
+			<d>0x0FFF</d>
+			<d>0x1001</d>
+			<d>0x1003</d>
+			<d>0x1004</d>
+			<d>0x1005</d>
+			<d>0x1007</d>
+			<d>0x1008</d>
+			<d>0x100A</d>
+			<d>0x100B</d>
+			<d>0x100C</d>
+			<d>0x101E</d>
+			<d>0x101F</d>
+			<d>0x1020</d>
+			<d>0x1021</d>
+			<d>0x1022</d>
+			<d>0x1023</d>
+			<d>0x1024</d>
+			<d>0x1026</d>
+			<d>0x1027</d>
+			<d>0x1028</d>
+			<d>0x1029</d>
+			<d>0x102A</d>
+			<d>0x102B</d>
+			<d>0x102C</d>
+			<d>0x102D</d>
+			<d>0x102E</d>
+			<d>0x102F</d>
+			<d>0x1030</d>
+			<d>0x103A</d>
+			<d>0x103B</d>
+			<d>0x103C</d>
+			<d>0x103F</d>
+			<d>0x1180</d>
+			<d>0x1182</d>
+			<d>0x1183</d>
+			<d>0x1184</d>
+			<d>0x1185</d>
+			<d>0x1187</d>
+			<d>0x1188</d>
+			<d>0x1189</d>
+			<d>0x118A</d>
+			<d>0x118B</d>
+			<d>0x118C</d>
+			<d>0x118D</d>
+			<d>0x118E</d>
+			<d>0x118F</d>
+			<d>0x1191</d>
+			<d>0x1192</d>
+			<d>0x1193</d>
+			<d>0x1194</d>
+			<d>0x1195</d>
+			<d>0x1198</d>
+			<d>0x1199</d>
+			<d>0x119A</d>
+			<d>0x119D</d>
+			<d>0x119E</d>
+			<d>0x119F</d>
+			<d>0x11A0</d>
+			<d>0x11A1</d>
+			<d>0x11A2</d>
+			<d>0x11A3</d>
+			<d>0x11A4</d>
+			<d>0x11A5</d>
+			<d>0x11A7</d>
+			<d>0x11AA</d>
+			<d>0x11AC</d>
+			<d>0x11AD</d>
+			<d>0x11AE</d>
+			<d>0x11AF</d>
+			<d>0x11B0</d>
+			<d>0x11B1</d>
+			<d>0x11B4</d>
+			<d>0x11B6</d>
+			<d>0x11B7</d>
+			<d>0x11B8</d>
+			<d>0x11BA</d>
+			<d>0x11BB</d>
+			<d>0x11BC</d>
+			<d>0x11BD</d>
+			<d>0x11BE</d>
+			<d>0x11BF</d>
+			<d>0x11C0</d>
+			<d>0x11C1</d>
+			<d>0x11C2</d>
+			<d>0x11C3</d>
+			<d>0x11C4</d>
+			<d>0x11C5</d>
+			<d>0x11C6</d>
+			<d>0x11C7</d>
+			<d>0x11C8</d>
+			<d>0x11CB</d>
+			<d>0x11D0</d>
+			<d>0x11D1</d>
+			<d>0x11D2</d>
+			<d>0x11D3</d>
+			<d>0x11E0</d>
+			<d>0x11E1</d>
+			<d>0x11E2</d>
+			<d>0x11E3</d>
+			<d>0x11F0</d>
+			<d>0x11F8</d>
+			<d>0x11FA</d>
+			<d>0x11FC</d>
+			<d>0x11FF</d>
+			<d>0x1280</d>
+			<d>0x1281</d>
+			<d>0x1282</d>
+			<d>0x1283</d>
+			<d>0x1284</d>
+			<d>0x1285</d>
+			<d>0x1286</d>
+			<d>0x1287</d>
+			<d>0x1288</d>
+			<d>0x1289</d>
+			<d>0x128A</d>
+			<d>0x128B</d>
+			<d>0x1290</d>
+			<d>0x1291</d>
+			<d>0x1292</d>
+			<d>0x1293</d>
+			<d>0x1294</d>
+			<d>0x1295</d>
+			<d>0x1296</d>
+			<d>0x1297</d>
+			<d>0x1298</d>
+			<d>0x1299</d>
+			<d>0x129A</d>
+			<d>0x129B</d>
+			<d>0x12A0</d>
+			<d>0x12AD</d>
+			<d>0x12AE</d>
+			<d>0x12AF</d>
+			<d>0x12B0</d>
+			<d>0x12B1</d>
+			<d>0x12B9</d>
+			<d>0x12BA</d>
+		</device_list>
+		<t>dEQP-VK.memory_model.*core11*.device.*</t>
+	</waiver>
+
+</waiver_list>
\ No newline at end of file
diff --git a/external/vulkancts/scripts/build_mustpass.py b/external/vulkancts/scripts/build_mustpass.py
index 5702d42..e928ad1 100644
--- a/external/vulkancts/scripts/build_mustpass.py
+++ b/external/vulkancts/scripts/build_mustpass.py
@@ -57,12 +57,6 @@
 						filters		= [include("master.txt"),
 									   exclude("test-issues.txt"),
 									   exclude("excluded-tests.txt"),
-									   exclude("android-tests.txt"),
-									   exclude("waivers.txt")]),
-		  Configuration(name		= "default-no-waivers",
-						filters		= [include("master.txt"),
-									   exclude("test-issues.txt"),
-									   exclude("excluded-tests.txt"),
 									   exclude("android-tests.txt")]),
 		  Configuration(name		= "fraction-mandatory-tests",
 						filters		= [include("fraction-mandatory-tests.txt")]),
diff --git a/external/vulkancts/scripts/gen_framework.py b/external/vulkancts/scripts/gen_framework.py
old mode 100644
new mode 100755
index afa9be0..b30e617
--- a/external/vulkancts/scripts/gen_framework.py
+++ b/external/vulkancts/scripts/gen_framework.py
@@ -263,7 +263,7 @@
 		return '%s (%s)' % (self.name, self.alias)
 
 class Variable:
-	def __init__ (self, type, name, arraySize):
+	def __init__ (self, type, name, arraySizeOrFieldWidth):
 		type		= type.replace('*',' *').replace('&',' &')
 		for src, dst in TYPE_SUBSTITUTIONS:
 			type = type.replace(src, dst)
@@ -274,7 +274,12 @@
 				self.type = self.type[:range[0]]+[PLATFORM_TYPE_NAMESPACE + '::' + substitute[0]] + substitute[1:] + self.type[range[1]:]
 				break
 		self.name		= name
-		self.arraySize	= arraySize
+		if len(arraySizeOrFieldWidth) > 0 and arraySizeOrFieldWidth[0] == ':':
+			self.arraySize	= ''
+			self.fieldWidth = arraySizeOrFieldWidth
+		else:
+			self.arraySize	= arraySizeOrFieldWidth
+			self.fieldWidth = ''
 
 	def contains(self, big, small):
 		for i in range(len(big)-len(small)+1):
@@ -289,7 +294,7 @@
 		return ' '.join(self.type).replace(' *','*').replace(' &','&')
 
 	def getAsString (self, separator):
-		return '%s%s%s%s' % (self.getType(), separator, self.name, self.arraySize)
+		return '%s%s%s%s%s' % (self.getType(), separator, self.name, self.arraySize, self.fieldWidth)
 
 	def __repr__ (self):
 		return '<%s> <%s> <%s>' % (self.type, self.name, self.arraySize)
@@ -314,12 +319,13 @@
 	CLASS_STRUCT	= 0
 	CLASS_UNION		= 1
 
-	def __init__ (self, typeClass, name, members):
+	def __init__ (self, typeClass, name, members, apiVersion = None):
 		self.typeClass	= typeClass
 		self.name		= name
 		self.members	= members
 		self.alias		= None
 		self.isAlias	= False
+		self.apiVersion	= apiVersion
 
 	def getClassName (self):
 		names = {CompositeType.CLASS_STRUCT: 'struct', CompositeType.CLASS_UNION: 'union'}
@@ -377,7 +383,7 @@
 		return '%s (%s)' % (self.name, self.alias)
 
 class Extension:
-	def __init__ (self, name, handles, enums, bitfields, compositeTypes, functions, definitions, additionalDefinitions, versionInCore):
+	def __init__ (self, name, handles, enums, bitfields, compositeTypes, functions, definitions, additionalDefinitions, typedefs, versionInCore):
 		self.name			= name
 		self.definitions	= definitions
 		self.additionalDefs = additionalDefinitions
@@ -386,6 +392,7 @@
 		self.bitfields		= bitfields
 		self.compositeTypes	= compositeTypes
 		self.functions		= functions
+		self.typedefs		= typedefs
 		self.versionInCore	= versionInCore
 
 	def __repr__ (self):
@@ -407,16 +414,9 @@
 		return f.read()
 
 IDENT_PTRN	= r'[a-zA-Z_][a-zA-Z0-9_]*'
+WIDTH_PTRN	= r'[:0-9]*'
 TYPE_PTRN	= r'[a-zA-Z_][a-zA-Z0-9_ \t*&]*'
 
-def fixupEnumValues (values):
-	fixed = []
-	for name, value in values:
-		if "_BEGIN_RANGE" in name or "_END_RANGE" in name:
-			continue
-		fixed.append((name, value))
-	return fixed
-
 def getInterfaceName (function):
 	assert function.name[:2] == "vk"
 	return function.name[2].lower() + function.name[3:]
@@ -461,10 +461,8 @@
 	return value
 
 def parseEnum (name, src):
-	keyValuePtrn	= '(' + IDENT_PTRN + r')\s*=\s*([^\s,\n}]+)\s*[,\n}]'
-	matches			= re.findall(keyValuePtrn, src)
-
-	return Enum(name, fixupEnumValues(matches))
+	keyValuePtrn = '(' + IDENT_PTRN + r')\s*=\s*([^\s,\n}]+)\s*[,\n}]'
+	return Enum(name, re.findall(keyValuePtrn, src))
 
 # \note Parses raw enums, some are mapped to bitfields later
 def parseEnums (src):
@@ -474,10 +472,8 @@
 		enums.append(parseEnum(typename, contents))
 	return enums
 
-
-
 def parseCompositeType (type, name, src):
-	typeNamePtrn	= r'(' + TYPE_PTRN + r')(\s+' + IDENT_PTRN + r')((\[[^\]]+\])*)\s*;'
+	typeNamePtrn	= r'(' + TYPE_PTRN + r')(\s+' + IDENT_PTRN + r')((\[[^\]]+\]|:[0-9]+)*)\s*;'
 	matches			= re.findall(typeNamePtrn, src)
 	members			= [Variable(t.strip(), n.strip(), a.strip()) for t, n, a, _ in matches]
 	return CompositeType(type, name, members)
@@ -490,6 +486,35 @@
 		types.append(parseCompositeType(typeMap[type], typename, contents))
 	return types
 
+def parseCompositeTypesByVersion (src, versionsData):
+
+	# find occurence of extension is a place where
+	# we cant assign apiVersion to found structures
+	extPtrn		= r'#define\s+[A-Z0-9_]+_EXTENSION_NAME\s+"([^"]+)"'
+	versionEnd	= re.search(extPtrn, src)
+	versions	= [Version((v[2], v[3], 0)) for v in versionsData]
+	versions.append(None)
+
+	# construct list of locations where version definitions start, and add the end of the file to it
+	sectionLocations = [versionDef[1] for versionDef in versionsData]
+	sectionLocations.append(versionEnd.start())
+	sectionLocations.append(len(src))
+
+	# construct function declaration pattern
+	ptrn		= r'typedef (struct|union)(\s*' + IDENT_PTRN + r')?\s*{([^}]*)}\s*(' + IDENT_PTRN + r')\s*;'
+	regPtrn		= re.compile(ptrn)
+	types		= []
+	typeMap		= { 'struct': CompositeType.CLASS_STRUCT, 'union': CompositeType.CLASS_UNION }
+
+	# iterate over all versions and find all structure definitions
+	for index, v in enumerate(versions):
+		matches = regPtrn.findall(src, sectionLocations[index], sectionLocations[index+1])
+		for type, structname, contents, typename in matches:
+			compositeType = parseCompositeType(typeMap[type], typename, contents)
+			compositeType.apiVersion = v
+			types.append(compositeType)
+	return types
+
 def parseVersions (src):
 	# returns list of tuples each with four items:
 	# 1. string with version token (without ' 1' at the end)
@@ -545,7 +570,6 @@
 			objExt.isAlias = True
 			objects.append(objExt)
 
-
 def removeAliasedValues (enum):
 	valueByName = {}
 	for name, value in enum.values:
@@ -612,6 +636,9 @@
 			return True
 		extNameUpper = extensionName.upper()
 		extNameUpper = extNameUpper.replace("VK_INTEL_SHADER_INTEGER_FUNCTIONS2", "VK_INTEL_SHADER_INTEGER_FUNCTIONS_2")
+		extNameUpper = extNameUpper.replace("VK_EXT_ROBUSTNESS2", "VK_EXT_ROBUSTNESS_2")
+		extNameUpper = extNameUpper.replace("VK_EXT_FRAGMENT_DENSITY_MAP2", "VK_EXT_FRAGMENT_DENSITY_MAP_2")
+		extNameUpper = extNameUpper.replace("VK_AMD_SHADER_CORE_PROPERTIES2", "VK_AMD_SHADER_CORE_PROPERTIES_2")
 		# SPEC_VERSION enums
 		if definition[0].startswith(extNameUpper) and definition[1].isdigit():
 			return False
@@ -626,6 +653,13 @@
 
 	return [Definition(None, match[0], match[1]) for match in matches if not skipDefinition(extensionName, match)]
 
+def parseTypedefs (src):
+
+	ptrn		= r'typedef\s+([^\s]+)\s+([^\r\n]+);'
+	matches		= re.findall(ptrn, src)
+
+	return [Definition(None, match[0], match[1]) for match in matches]
+
 def parseExtensions (src, versions, allFunctions, allCompositeTypes, allEnums, allBitfields, allHandles, allDefinitions):
 
 	def getCoreVersion (extensionName, extensionsData):
@@ -660,6 +694,7 @@
 		compositeTypes		= parseCompositeTypes(extensionSrc)
 		rawEnums			= parseEnums(extensionSrc)
 		bitfieldNames		= parseBitfieldNames(extensionSrc)
+		typedefs			= parseTypedefs(extensionSrc)
 		enumBitfieldNames	= [getBitEnumNameForBitfield(name) for name in bitfieldNames]
 		enums				= [enum for enum in rawEnums if enum.name not in enumBitfieldNames]
 
@@ -678,8 +713,7 @@
 			populateExtensionAliases(bitfieldsByName, extBitfields)
 			populateExtensionAliases(compositeTypesByName, extCompositeTypes)
 
-
-		extensions.append(Extension(extensionName, extHandles, extEnums, extBitfields, extCompositeTypes, extFunctions, extDefinitions, additionalDefinitions, extCoreVersion))
+		extensions.append(Extension(extensionName, extHandles, extEnums, extBitfields, extCompositeTypes, extFunctions, extDefinitions, additionalDefinitions, typedefs, extCoreVersion))
 	return extensions
 
 def parseBitfieldNames (src):
@@ -700,7 +734,7 @@
 	enums			= []
 	bitfields		= []
 	bitfieldEnums	= set([getBitEnumNameForBitfield(n) for n in bitfieldNames if getBitEnumNameForBitfield(n) in [enum.name for enum in rawEnums]])
-	compositeTypes	= parseCompositeTypes(src)
+	compositeTypes	= parseCompositeTypesByVersion(src, versionsData)
 	allFunctions	= parseFunctionsByVersion(src, versionsData)
 
 	for enum in rawEnums:
@@ -720,10 +754,23 @@
 	populateAliasesWithTypedefs(compositeTypes, src)
 	populateAliasesWithTypedefs(enums, src)
 	populateAliasesWithTypedefs(bitfields, src)
+	populateAliasesWithTypedefs(handles, src)
 
 	for enum in enums:
 		removeAliasedValues(enum)
 
+
+	# Make generator to create Deleter<VkAccelerationStructureNV>
+	for f in allFunctions:
+		if (f.name == 'vkDestroyAccelerationStructureNV'):
+			f.arguments[1].type[0] = 'VkAccelerationStructureNV'
+
+	# Dealias handles VkAccelerationStructureNV and VkAccelerationStructureKHR
+	for handle in handles:
+		if handle.name == 'VkAccelerationStructureKHR':
+			handle.alias = None
+		if handle.name == 'VkAccelerationStructureNV':
+			handle.isAlias = False
 	return API(
 		versions		= versions,
 		definitions		= definitions,
@@ -897,12 +944,20 @@
 			if not enum.isAlias:
 				for line in genEnumSrc(enum):
 					yield line
+			else:
+				for enum2 in api.enums:
+					if enum2.alias == enum:
+						yield "typedef %s %s;" % (enum2.name, enum.name)
 			yield ""
 
 		for bitfield in api.bitfields:
 			if not bitfield.isAlias:
 				for line in genBitfieldSrc(bitfield):
 					yield line
+			else:
+				for bitfield2 in api.bitfields:
+					if bitfield2.alias == bitfield:
+						yield "typedef %s %s;" % (bitfield2.name, bitfield.name)
 			yield ""
 		for line in indentLines(["VK_DEFINE_PLATFORM_TYPE(%s,\t%s);" % (s[0], c) for n, s, c in PLATFORM_TYPES]):
 			yield line
@@ -1015,7 +1070,7 @@
 		for line in indentLines(["inline std::ostream&\toperator<<\t(std::ostream& s, %s value)\t{ return s << get%sStr(value);\t}" % (e.name, e.name[2:]) for e in api.enums if not e.isAlias]):
 			yield line
 		yield ""
-		for line in indentLines(["tcu::Format::Bitfield<32>\tget%sStr\t(%s value);" % (bitfield.name[2:], bitfield.name) for bitfield in api.bitfields if not bitfield.isAlias]):
+		for line in indentLines(["tcu::Format::Bitfield<32>\tget%sStr\t(%s value);" % (bitfield.name[2:], bitfield.name) for bitfield in api.bitfields if not bitfield.isAlias or bitfield.name=='VkBuildAccelerationStructureFlagsNV']):
 			yield line
 		yield ""
 		for line in indentLines(["std::ostream&\toperator<<\t(std::ostream& s, const %s& value);" % (s.name) for s in api.compositeTypes if not s.isAlias]):
@@ -1052,7 +1107,8 @@
 
 		for bitfield in api.bitfields:
 			if bitfield.isAlias:
-				continue
+				if bitfield.name != 'VkBuildAccelerationStructureFlagsNV':
+					continue
 			yield ""
 			yield "tcu::Format::Bitfield<32> get%sStr (%s value)" % (bitfield.name[2:], bitfield.name)
 			yield "{"
@@ -1108,6 +1164,22 @@
 				yield "}"
 	writeInlFile(filename, INL_HEADER, makeStrUtilImpl())
 
+
+def writeObjTypeImpl (api, filename):
+	def makeObjTypeImpl ():
+
+		yield "namespace vk"
+		yield "{"
+
+		yield "template<typename T> VkObjectType getObjectType	(void);"
+
+		for line in indentLines(["template<> inline VkObjectType\tgetObjectType<%s>\t(void) { return %s;\t}" % (handle.name, prefixName("VK_OBJECT_TYPE_", handle.name)) for handle in api.handles if not handle.isAlias]):
+			yield line
+
+		yield "}"
+
+	writeInlFile(filename, INL_HEADER, makeObjTypeImpl())
+
 class ConstructorFunction:
 	def __init__ (self, type, name, objectType, ifaceArgs, arguments):
 		self.type		= type
@@ -1226,6 +1298,7 @@
 				"vkCreateGraphicsPipelines",
 				"vkCreateComputePipelines",
 				"vkCreateRayTracingPipelinesNV",
+				"vkCreateRayTracingPipelinesKHR",
 				"vkGetInstanceProcAddr",
 				"vkGetDeviceProcAddr",
 				"vkEnumeratePhysicalDevices",
@@ -1544,6 +1617,157 @@
 	lines = lines + ["}", ""] + removeVersionDefines(api.versions)
 	writeInlFile(filename, INL_HEADER, lines)
 
+def writeDeviceFeatures2(api, filename):
+	# list of structures that should be tested with getPhysicalDeviceFeatures2
+	# this is not posible to determine from vulkan_core.h, if new feature structures
+	# are added they should be manualy added to this list
+	testedStructures = [
+		'VkPhysicalDeviceConditionalRenderingFeaturesEXT',
+		'VkPhysicalDeviceScalarBlockLayoutFeatures',
+		'VkPhysicalDevicePerformanceQueryFeaturesKHR',
+		'VkPhysicalDevice16BitStorageFeatures',
+		'VkPhysicalDeviceMultiviewFeatures',
+		'VkPhysicalDeviceProtectedMemoryFeatures',
+		'VkPhysicalDeviceSamplerYcbcrConversionFeatures',
+		'VkPhysicalDeviceVariablePointersFeatures',
+		'VkPhysicalDevice8BitStorageFeatures',
+		'VkPhysicalDeviceShaderAtomicInt64Features',
+		'VkPhysicalDeviceShaderFloat16Int8Features',
+		'VkPhysicalDeviceBufferDeviceAddressFeaturesEXT',
+		'VkPhysicalDeviceBufferDeviceAddressFeatures',
+		'VkPhysicalDeviceDescriptorIndexingFeatures',
+		'VkPhysicalDeviceTimelineSemaphoreFeatures',
+		'VkPhysicalDeviceFragmentDensityMapFeaturesEXT',
+		'VkPhysicalDeviceFragmentDensityMap2FeaturesEXT'
+	]
+	# helper class used to encapsulate all data needed during generation
+	class StructureDetail:
+		def __init__ (self, name):
+			nameResult			= re.search('(.*)Features(.*)', name[len('VkPhysicalDevice'):])
+			nameSplitUp			= ''
+			# generate structure type name from structure name
+			# note that sometimes digits are separated with '_':
+			# VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT
+			# but mostly they are not:
+			# VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES
+			if (nameResult.group(1) == 'FragmentDensityMap2'):
+				nameSplitUp		= ['FRAGMENT', 'DENSITY', 'MAP', '2', 'FEATURES']
+			else:
+				nameSplit		= re.findall(r'[1-9A-Z]+(?:[a-z1-9]+|[A-Z]*(?=[A-Z]|$))', nameResult.group(1))
+				nameSplitUp		= map(str.upper, nameSplit)
+				nameSplitUp		= list(nameSplitUp) + ['FEATURES']
+			# check if there is extension suffix
+			if (len(nameResult.group(2)) != 0):
+				nameSplitUp.append(nameResult.group(2))
+			self.name			= name
+			self.sType			= 'VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_' + '_'.join(nameSplitUp)
+			self.instanceName	= 'd' + name[11:]
+			self.flagName		= 'is' + name[16:]
+			self.extension		= None
+			self.major			= None
+			self.minor			= None
+			self.members		= []
+	# helper extension class used in algorith below
+	class StructureFoundContinueToNextOne(Exception):
+		pass
+	testedStructureDetail = [StructureDetail(struct) for struct in testedStructures]
+	# iterate over all searched structures and find extensions that enable them
+	for structureDetail in testedStructureDetail:
+		try:
+			# iterate over all extensions
+			for extension in api.extensions[1:]:
+				# check composite types and typedefs in case extension is part of core
+				for structureList in [extension.compositeTypes, extension.typedefs]:
+					# iterate over all structures added by extension
+					for extensionStructure in structureList:
+						# compare checked structure name to name of structure from extension
+						if structureDetail.name == extensionStructure.name:
+							structureDetail.extension = extension.name
+							if extension.versionInCore is not None:
+								structureDetail.major = extension.versionInCore[1]
+								structureDetail.minor = extension.versionInCore[2]
+							raise StructureFoundContinueToNextOne
+		except StructureFoundContinueToNextOne:
+			continue
+	for structureDetail in testedStructureDetail:
+		for compositeType in api.compositeTypes:
+			if structureDetail.name != compositeType.name:
+				continue
+			structureMembers = compositeType.members[2:]
+			structureDetail.members = [m.name for m in structureMembers]
+			if structureDetail.major is not None:
+				break
+			# if structure was not added with extension then check if
+			# it was added directly with one of vulkan versions
+			apiVersion = compositeType.apiVersion
+			if apiVersion is None:
+				continue
+			structureDetail.major = apiVersion.major
+			structureDetail.minor = apiVersion.minor
+			break
+	# generate file content
+	structureDefinitions = []
+	featureEnabledFlags = []
+	clearStructures = []
+	structureChain = []
+	logStructures = []
+	verifyStructures = []
+	for index, structureDetail in enumerate(testedStructureDetail):
+		# create two instances of each structure
+		nameSpacing = '\t' * int((55 - len(structureDetail.name)) / 4)
+		structureDefinitions.append(structureDetail.name + nameSpacing + structureDetail.instanceName + '[count];')
+		# create flags that check if proper extension or vulkan version is available
+		condition	= ''
+		extension	= structureDetail.extension
+		major		= structureDetail.major
+		if extension is not None:
+			condition = ' checkExtension(properties, "' + extension + '")'
+		if major is not None:
+			if condition is not '':
+				condition += '\t' * int((39 - len(extension)) / 4) + '|| '
+			else:
+				condition += '\t' * 17 + '   '
+			condition += 'context.contextSupports(vk::ApiVersion(' + str(major) + ', ' + str(structureDetail.minor) + ', 0))'
+		condition += ';'
+		nameSpacing = '\t' * int((40 - len(structureDetail.flagName)) / 4)
+		featureEnabledFlags.append('const bool ' + structureDetail.flagName + nameSpacing + '=' + condition)
+		# clear memory of each structure
+		nameSpacing = '\t' * int((43 - len(structureDetail.instanceName)) / 4)
+		clearStructures.append('\tdeMemset(&' + structureDetail.instanceName + '[ndx],' + nameSpacing + '0xFF * ndx, sizeof(' + structureDetail.name + '));')
+		# construct structure chain
+		nextInstanceName = 'DE_NULL';
+		if index < len(testedStructureDetail)-1:
+			nextInstanceName = '&' + testedStructureDetail[index+1].instanceName + '[ndx]'
+		structureChain.append('\t' + structureDetail.instanceName + '[ndx].sType = ' + structureDetail.sType + ';')
+		structureChain.append('\t' + structureDetail.instanceName + '[ndx].pNext = ' + nextInstanceName + ';\n')
+		# construct log section
+		logStructures.append('if (' + structureDetail.flagName + ')')
+		logStructures.append('\tlog << TestLog::Message << ' + structureDetail.instanceName + '[0] << TestLog::EndMessage;')
+		#construct verification section
+		verifyStructures.append('if (' + structureDetail.flagName + ' &&')
+		for index, m in enumerate(structureDetail.members):
+			prefix = '\t(' if index == 0 else '\t '
+			postfix = '))' if index == len(structureDetail.members)-1 else ' ||'
+			verifyStructures.append(prefix + structureDetail.instanceName + '[0].' + m + ' != ' + structureDetail.instanceName + '[1].' + m + postfix)
+		verifyStructures.append('{\n\t\tTCU_FAIL("Mismatch between ' + structureDetail.name + '");\n}')
+	# construct file content
+	stream = []
+	stream.extend(structureDefinitions)
+	stream.append('')
+	stream.extend(featureEnabledFlags)
+	stream.append('\nfor (int ndx = 0; ndx < count; ++ndx)\n{')
+	stream.extend(clearStructures)
+	stream.append('')
+	stream.extend(structureChain)
+	stream.append('\tdeMemset(&extFeatures.features, 0xcd, sizeof(extFeatures.features));\n'
+				  '\textFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;\n'
+				  '\textFeatures.pNext = &' + testedStructureDetail[0].instanceName + '[ndx];\n'
+				  '\tvki.getPhysicalDeviceFeatures2(physicalDevice, &extFeatures);\n}\n')
+	stream.extend(logStructures)
+	stream.append('')
+	stream.extend(verifyStructures)
+	writeInlFile(filename, INL_HEADER, stream)
+
 def generateDeviceFeaturesDefs(src):
 	# look for definitions
 	ptrnSType	= r'VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_(\w+)_FEATURES(\w*)\s*='
@@ -1553,7 +1777,7 @@
 	defs = []
 	for sType, sSuffix in matches:
 		structName			= re.sub("[_0-9][a-z]", lambda match: match.group(0).upper(), sType.capitalize()).replace('_', '')
-		ptrnStructName		= r'\s*typedef\s+struct\s+(VkPhysicalDevice' + structName + 'Features' + sSuffix[1:] + ')'
+		ptrnStructName		= r'\s*typedef\s+struct\s+(VkPhysicalDevice' + structName + 'Features' + sSuffix.replace('_', '') + ')'
 		matchStructName		= re.search(ptrnStructName, src, re.IGNORECASE)
 		if matchStructName:
 			# handle special cases
@@ -1561,8 +1785,6 @@
 				sType = "SCISSOR_EXCLUSIVE"
 			elif sType == "ASTC_DECODE":
 				sType = "ASTC_DECODE_MODE"
-			elif sType == "TEXTURE_COMPRESSION_ASTC_HDR":
-				continue # skip due to const pNext
 			if sType in {'VULKAN_1_1', 'VULKAN_1_2'}:
 				continue
 			# end handling special cases
@@ -1570,10 +1792,10 @@
 			matchExtensionName	= re.search(ptrnExtensionName, src, re.M)
 			ptrnSpecVersion		= r'^\s*#define\s+(\w+' + sSuffix + '_' + sType + '_SPEC_VERSION).+$'
 			matchSpecVersion	= re.search(ptrnSpecVersion, src, re.M)
-			defs.append( (sType, sSuffix, matchStructName.group(1), \
+			defs.append( (sType, '', sSuffix, matchStructName.group(1), \
 							matchExtensionName.group(0)	if matchExtensionName	else None,
 							matchExtensionName.group(1)	if matchExtensionName	else None,
-							matchSpecVersion.group	(1)	if matchSpecVersion		else '0') )
+							matchSpecVersion.group(1)	if matchSpecVersion		else '0') )
 	return defs
 
 def generateDevicePropertiesDefs(src):
@@ -1587,10 +1809,22 @@
 		# skip VkPhysicalDeviceGroupProperties
 		if sType == "GROUP":
 			continue
+		# skip VkPhysicalDeviceMemoryBudgetPropertiesEXT
+		if sType == "MEMORY_BUDGET":
+			continue
+		# there are cases like VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD
+		# where 2 is after PROPERTIES - to handle this we need to split suffix to two parts
+		sVerSuffix = ''
+		sExtSuffix = sSuffix
+		suffixStart = sSuffix.rfind('_')
+		if suffixStart > 0:
+			sVerSuffix = sSuffix[:suffixStart]
+			sExtSuffix = sSuffix[suffixStart:]
 		structName			= re.sub("[_0-9][a-z]", lambda match: match.group(0).upper(), sType.capitalize()).replace('_', '')
-		ptrnStructName		= r'\s*typedef\s+struct\s+(VkPhysicalDevice' + structName + 'Properties' + sSuffix[1:] + ')'
+		ptrnStructName		= r'\s*typedef\s+struct\s+(VkPhysicalDevice' + structName + 'Properties' + sSuffix.replace('_', '') + ')'
 		matchStructName		= re.search(ptrnStructName, src, re.M)
 		if matchStructName:
+			# handle special cases
 			if sType in {'VULKAN_1_1', 'VULKAN_1_2'}:
 				continue
 			extType = sType
@@ -1598,12 +1832,14 @@
 				extType = "MAINTENANCE3"
 			elif extType == "DISCARD_RECTANGLE":
 				extType = "DISCARD_RECTANGLES"
+			elif extType == "SHADER_CORE":
+				extType = "SHADER_CORE_PROPERTIES"
 			# end handling special cases
-			ptrnExtensionName	= r'^\s*#define\s+(\w+' + sSuffix + '_' + extType + '_EXTENSION_NAME).+$'
+			ptrnExtensionName	= r'^\s*#define\s+(\w+' + sExtSuffix + '_' + extType + sVerSuffix +'[_0-9]*_EXTENSION_NAME).+$'
 			matchExtensionName	= re.search(ptrnExtensionName, src, re.M)
-			ptrnSpecVersion		= r'^\s*#define\s+(\w+' + sSuffix + '_' + extType + '_SPEC_VERSION).+$'
+			ptrnSpecVersion		= r'^\s*#define\s+(\w+' + sExtSuffix + '_' + extType + sVerSuffix + '[_0-9]*_SPEC_VERSION).+$'
 			matchSpecVersion	= re.search(ptrnSpecVersion, src, re.M)
-			defs.append( (sType, sSuffix, matchStructName.group(1), \
+			defs.append( (sType, sVerSuffix, sExtSuffix, matchStructName.group(1), \
 							matchExtensionName.group(0)	if matchExtensionName	else None,
 							matchExtensionName.group(1)	if matchExtensionName	else None,
 							matchSpecVersion.group	(1)	if matchSpecVersion		else '0') )
@@ -1614,7 +1850,7 @@
 	# and construct dictionary with all of their attributes
 	blobMembers = {}
 	blobStructs = {}
-	blobPattern = re.compile("^VkPhysicalDeviceVulkan([1-9][0-9])Features$")
+	blobPattern = re.compile("^VkPhysicalDeviceVulkan([1-9][0-9])Features[0-9]*$")
 	for structureType in api.compositeTypes:
 		match = blobPattern.match(structureType.name)
 		if match:
@@ -1625,8 +1861,8 @@
 	initFromBlobDefinitions = []
 	emptyInitDefinitions = []
 	# iterate over all feature structures
-	allFeaturesPattern = re.compile("^VkPhysicalDevice\w+Features")
-	nonExtFeaturesPattern = re.compile("^VkPhysicalDevice\w+Features$")
+	allFeaturesPattern = re.compile("^VkPhysicalDevice\w+Features[1-9]*")
+	nonExtFeaturesPattern = re.compile("^VkPhysicalDevice\w+Features[1-9]*$")
 	for structureType in api.compositeTypes:
 		# skip structures that are not feature structures
 		if not allFeaturesPattern.match(structureType.name):
@@ -1669,10 +1905,10 @@
 	extensionDefines = []
 	makeFeatureDescDefinitions = []
 	featureStructWrappers = []
-	for idx, (sType, sSuffix, extStruct, extLine, extName, specVer) in enumerate(dfDefs):
+	for idx, (sType, sVerSuffix, sExtSuffix, extStruct, extLine, extName, specVer) in enumerate(dfDefs):
 		extensionNameDefinition = extName
 		if not extensionNameDefinition:
-			extensionNameDefinition = 'DECL{0}_{1}_EXTENSION_NAME'.format((sSuffix if sSuffix else ''), sType)
+			extensionNameDefinition = 'DECL{0}_{1}_EXTENSION_NAME'.format((sExtSuffix if sExtSuffix else ''), sType)
 		# construct defines with names
 		if extLine:
 			extensionDefines.append(extLine)
@@ -1685,7 +1921,7 @@
 			sType = "ASTC_DECODE"
 		# end handling special cases
 		# construct makeFeatureDesc template function definitions
-		sTypeName = "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_{0}_FEATURES{1}".format(sType, sSuffix)
+		sTypeName = "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_{0}_FEATURES{1}".format(sType, sVerSuffix + sExtSuffix)
 		makeFeatureDescDefinitions.append("template<> FeatureDesc makeFeatureDesc<{0}>(void) " \
 			"{{ return FeatureDesc{{{1}, {2}, {3}, {4}}}; }}".format(extStruct, sTypeName, extensionNameDefinition, specVer, len(dfDefs)-idx))
 		# construct CreateFeatureStruct wrapper block
@@ -1707,9 +1943,9 @@
 			if structName == 'VkPhysicalDeviceShaderDrawParameterFeatures':
 				structName = 'VkPhysicalDeviceShaderDrawParametersFeatures'
 			# end handling special cases
-			structDef = [s for s in dfDefs if s[2] == structName][0]
+			structDef = [s for s in dfDefs if s[3] == structName][0]
 			sType = structDef[0]
-			sSuffix = structDef[1]
+			sSuffix = structDef[1] + structDef[2]
 			# handle special cases
 			if sType == "SCISSOR_EXCLUSIVE":
 				sType = "EXCLUSIVE_SCISSOR"
@@ -1742,17 +1978,17 @@
 	extensionDefines = []
 	makePropertyDescDefinitions = []
 	propertyStructWrappers = []
-	for idx, (sType, sSuffix, extStruct, extLine, extName, specVer) in enumerate(dfDefs):
+	for idx, (sType, sVerSuffix, sExtSuffix, extStruct, extLine, extName, specVer) in enumerate(dfDefs):
 		extensionNameDefinition = extName
 		if not extensionNameDefinition:
-			extensionNameDefinition = 'DECL{0}_{1}_EXTENSION_NAME'.format((sSuffix if sSuffix else ''), sType)
+			extensionNameDefinition = 'DECL{0}_{1}_EXTENSION_NAME'.format((sExtSuffix if sExtSuffix else ''), sType)
 		# construct defines with names
 		if extLine:
 			extensionDefines.append(extLine)
 		else:
 			extensionDefines.append('#define {0} "not_existent_property"'.format(extensionNameDefinition))
 		# construct makePropertyDesc template function definitions
-		sTypeName = "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_{0}_PROPERTIES{1}".format(sType, sSuffix)
+		sTypeName = "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_{0}_PROPERTIES{1}".format(sType, sVerSuffix + sExtSuffix)
 		makePropertyDescDefinitions.append("template<> PropertyDesc makePropertyDesc<{0}>(void) " \
 			"{{ return PropertyDesc({1}, {2}, {3}, {4}); }}".format(extStruct, sTypeName, extensionNameDefinition, specVer, len(dfDefs)-idx))
 		# construct CreateProperty struct wrapper block
@@ -1772,7 +2008,7 @@
 
 def genericDeviceFeaturesWriter(dfDefs, pattern, filename):
 	stream = []
-	for sType, sSuffix, extStruct, _, _, _ in dfDefs:
+	for _, _, _, extStruct, _, _, _ in dfDefs:
 		nameSubStr = extStruct.replace("VkPhysicalDevice", "").replace("KHR", "").replace("NV", "")
 		stream.append(pattern.format(extStruct, nameSubStr))
 	writeInlFile(filename, INL_HEADER, indentLines(stream))
@@ -1791,8 +2027,10 @@
 
 def genericDevicePropertiesWriter(dfDefs, pattern, filename):
 	stream = []
-	for _, _, extStruct, _, _, _ in dfDefs:
+	for _, _, _, extStruct, _, _, _ in dfDefs:
 		nameSubStr = extStruct.replace("VkPhysicalDevice", "").replace("KHR", "").replace("NV", "")
+		if extStruct == "VkPhysicalDeviceRayTracingPropertiesNV":
+			nameSubStr += "NV"
 		stream.append(pattern.format(extStruct, nameSubStr))
 	writeInlFile(filename, INL_HEADER, indentLines(stream))
 
@@ -1817,14 +2055,14 @@
 
 def writeMandatoryFeatures(filename):
 	stream = []
-	pattern = r'\s*([\w]+)\s+([\w]+)\s+REQUIREMENTS\s+\((.*)\)'
+	pattern = r'\s*([\w]+)\s+FEATURES\s+\((.*)\)\s+REQUIREMENTS\s+\((.*)\)'
 	mandatoryFeatures = readFile(os.path.join(VULKAN_H_DIR, "mandatory_features.txt"))
 	matches = re.findall(pattern, mandatoryFeatures)
 	dictStructs = {}
 	dictData = []
 	for m in matches:
 		allRequirements = splitWithQuotation(m[2])
-		dictData.append( [ m[0], m[1], allRequirements ] )
+		dictData.append( [ m[0], m[1].strip(), allRequirements ] )
 		if m[0] != 'VkPhysicalDeviceFeatures' :
 			if (m[0] not in dictStructs):
 				dictStructs[m[0]] = [m[0][2:3].lower() + m[0][3:]]
@@ -1896,10 +2134,21 @@
 					condition = condition + ' && '
 			condition = condition + ' )'
 			stream.append('\t' + condition)
-		stream.extend(['\t{',
-					   '\t\tif ( ' + structName + '.' + v[1] + ' == VK_FALSE )',
-					   '\t\t{',
-					   '\t\t\tlog << tcu::TestLog::Message << "Mandatory feature ' + v[1] + ' not supported" << tcu::TestLog::EndMessage;',
+		stream.append('\t{')
+		# Don't need to support an AND case since that would just be another line in the .txt
+		if len(v[1].split(" ")) == 1:
+			stream.append('\t\tif ( ' + structName + '.' + v[1] + ' == VK_FALSE )')
+		else:
+			condition = 'if ( '
+			for i, feature in enumerate(v[1].split(" ")):
+				if i != 0:
+					condition = condition + ' && '
+				condition = condition + '( ' + structName + '.' + feature + ' == VK_FALSE )'
+			condition = condition + ' )'
+			stream.append('\t\t' + condition)
+		featureSet = v[1].replace(" ", " or ")
+		stream.extend(['\t\t{',
+					   '\t\t\tlog << tcu::TestLog::Message << "Mandatory feature ' + featureSet + ' not supported" << tcu::TestLog::EndMessage;',
 					   '\t\t\tresult = false;',
 					   '\t\t}',
 					   '\t}',
@@ -1943,6 +2192,7 @@
 
 	dpd										= generateDevicePropertiesDefs(src)
 	writeDeviceProperties					(dpd, os.path.join(VULKAN_DIR, "vkDeviceProperties.inl"))
+
 	writeDevicePropertiesDefaultDeviceDefs	(dpd, os.path.join(VULKAN_DIR, "vkDevicePropertiesForDefaultDeviceDefs.inl"))
 	writeDevicePropertiesContextDecl		(dpd, os.path.join(VULKAN_DIR, "vkDevicePropertiesForContextDecl.inl"))
 	writeDevicePropertiesContextDefs		(dpd, os.path.join(VULKAN_DIR, "vkDevicePropertiesForContextDefs.inl"))
@@ -1976,6 +2226,8 @@
 	writeSupportedExtenions					(api, os.path.join(VULKAN_DIR, "vkSupportedExtensions.inl"))
 	writeCoreFunctionalities				(api, os.path.join(VULKAN_DIR, "vkCoreFunctionalities.inl"))
 	writeExtensionFunctions					(api, os.path.join(VULKAN_DIR, "vkExtensionFunctions.inl"))
+	writeDeviceFeatures2					(api, os.path.join(VULKAN_DIR, "vkDeviceFeatures2.inl"))
 	writeMandatoryFeatures					(     os.path.join(VULKAN_DIR, "vkMandatoryFeatures.inl"))
 	writeExtensionList						(     os.path.join(VULKAN_DIR, "vkInstanceExtensions.inl"),				'INSTANCE')
 	writeExtensionList						(     os.path.join(VULKAN_DIR, "vkDeviceExtensions.inl"),				'DEVICE')
+	writeObjTypeImpl						(api, os.path.join(VULKAN_DIR, "vkObjTypeImpl.inl"))
\ No newline at end of file
diff --git a/external/vulkancts/scripts/src/mandatory_features.txt b/external/vulkancts/scripts/src/mandatory_features.txt
index 643dd0b..6da550c 100644
--- a/external/vulkancts/scripts/src/mandatory_features.txt
+++ b/external/vulkancts/scripts/src/mandatory_features.txt
@@ -6,51 +6,76 @@
 // * structure type enum
 // * required extensions that enable specified feature
 
-VkPhysicalDeviceFeatures								robustBufferAccess									REQUIREMENTS ()
-VkPhysicalDeviceFeatures								shaderSampledImageArrayDynamicIndexing				REQUIREMENTS ( VK_EXT_descriptor_indexing )
-VkPhysicalDeviceFeatures								shaderStorageBufferArrayDynamicIndexing				REQUIREMENTS ( VK_EXT_descriptor_indexing )
-VkPhysicalDevice8BitStorageFeaturesKHR					storageBuffer8BitAccess								REQUIREMENTS ( VK_KHR_8bit_storage )
-VkPhysicalDeviceVulkan11Features						multiview											REQUIREMENTS ( "ApiVersion(1, 2, 0)" )
-VkPhysicalDeviceMultiviewFeatures						multiview											REQUIREMENTS ( "ApiVersion(1, 1, 0)" )
-VkPhysicalDeviceMultiviewFeatures						multiview											REQUIREMENTS ( VK_KHR_multiview )
-VkPhysicalDeviceVariablePointersFeatures				variablePointersStorageBuffer						REQUIREMENTS ( VK_KHR_variable_pointers )
-VkPhysicalDeviceDescriptorIndexingFeaturesEXT			shaderUniformTexelBufferArrayDynamicIndexing		REQUIREMENTS ( VK_EXT_descriptor_indexing )
-VkPhysicalDeviceDescriptorIndexingFeaturesEXT			shaderStorageTexelBufferArrayDynamicIndexing		REQUIREMENTS ( VK_EXT_descriptor_indexing )
-VkPhysicalDeviceDescriptorIndexingFeaturesEXT			shaderSampledImageArrayNonUniformIndexing			REQUIREMENTS ( VK_EXT_descriptor_indexing )
-VkPhysicalDeviceDescriptorIndexingFeaturesEXT			shaderStorageBufferArrayNonUniformIndexing			REQUIREMENTS ( VK_EXT_descriptor_indexing )
-VkPhysicalDeviceDescriptorIndexingFeaturesEXT			shaderUniformTexelBufferArrayNonUniformIndexing		REQUIREMENTS ( VK_EXT_descriptor_indexing )
-VkPhysicalDeviceDescriptorIndexingFeaturesEXT			descriptorBindingSampledImageUpdateAfterBind		REQUIREMENTS ( VK_EXT_descriptor_indexing )
-VkPhysicalDeviceDescriptorIndexingFeaturesEXT			descriptorBindingStorageImageUpdateAfterBind		REQUIREMENTS ( VK_EXT_descriptor_indexing )
-VkPhysicalDeviceDescriptorIndexingFeaturesEXT			descriptorBindingStorageBufferUpdateAfterBind		REQUIREMENTS ( VK_EXT_descriptor_indexing )
-VkPhysicalDeviceDescriptorIndexingFeaturesEXT			descriptorBindingUniformTexelBufferUpdateAfterBind	REQUIREMENTS ( VK_EXT_descriptor_indexing )
-VkPhysicalDeviceDescriptorIndexingFeaturesEXT			descriptorBindingStorageTexelBufferUpdateAfterBind	REQUIREMENTS ( VK_EXT_descriptor_indexing )
-VkPhysicalDeviceDescriptorIndexingFeaturesEXT			descriptorBindingUpdateUnusedWhilePending			REQUIREMENTS ( VK_EXT_descriptor_indexing )
-VkPhysicalDeviceDescriptorIndexingFeaturesEXT			descriptorBindingPartiallyBound						REQUIREMENTS ( VK_EXT_descriptor_indexing )
-VkPhysicalDeviceDescriptorIndexingFeaturesEXT			runtimeDescriptorArray								REQUIREMENTS ( VK_EXT_descriptor_indexing )
-VkPhysicalDeviceInlineUniformBlockFeaturesEXT			inlineUniformBlock									REQUIREMENTS ( VK_EXT_inline_uniform_block )
-VkPhysicalDeviceInlineUniformBlockFeaturesEXT			descriptorBindingInlineUniformBlockUpdateAfterBind	REQUIREMENTS ( VK_EXT_inline_uniform_block VK_EXT_descriptor_indexing )
-VkPhysicalDeviceScalarBlockLayoutFeaturesEXT			scalarBlockLayout									REQUIREMENTS ( VK_EXT_scalar_block_layout )
-VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR	uniformBufferStandardLayout							REQUIREMENTS ( VK_KHR_uniform_buffer_standard_layout )
-VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR	pipelineExecutableInfo								REQUIREMENTS ( VK_KHR_pipeline_executable_properties )
-VkPhysicalDeviceSubgroupSizeControlFeaturesEXT			subgroupSizeControl									REQUIREMENTS ( VK_EXT_subgroup_size_control )
-VkPhysicalDeviceSubgroupSizeControlFeaturesEXT			computeFullSubgroups								REQUIREMENTS ( VK_EXT_subgroup_size_control )
-VkPhysicalDeviceVulkan12Features						subgroupBroadcastDynamicId							REQUIREMENTS ( "ApiVersion(1, 2, 0)" )
-VkPhysicalDeviceVulkan12Features						imagelessFramebuffer								REQUIREMENTS ( "ApiVersion(1, 2, 0)" )
-VkPhysicalDeviceVulkan12Features						uniformBufferStandardLayout							REQUIREMENTS ( "ApiVersion(1, 2, 0)" )
-VkPhysicalDeviceVulkan12Features						separateDepthStencilLayouts							REQUIREMENTS ( "ApiVersion(1, 2, 0)" )
-VkPhysicalDeviceVulkan12Features						hostQueryReset										REQUIREMENTS ( "ApiVersion(1, 2, 0)" )
-VkPhysicalDeviceTimelineSemaphoreFeaturesKHR 			timelineSemaphore									REQUIREMENTS ( VK_KHR_timeline_semaphore )
-VkPhysicalDeviceVulkan12Features						timelineSemaphore									REQUIREMENTS ( "ApiVersion(1, 2, 0)" )
-VkPhysicalDeviceVulkan12Features						shaderUniformTexelBufferArrayDynamicIndexing		REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
-VkPhysicalDeviceVulkan12Features						shaderStorageTexelBufferArrayDynamicIndexing		REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
-VkPhysicalDeviceVulkan12Features						shaderSampledImageArrayNonUniformIndexing			REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
-VkPhysicalDeviceVulkan12Features						shaderStorageBufferArrayNonUniformIndexing			REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
-VkPhysicalDeviceVulkan12Features						shaderUniformTexelBufferArrayNonUniformIndexing		REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
-VkPhysicalDeviceVulkan12Features						descriptorBindingSampledImageUpdateAfterBind		REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
-VkPhysicalDeviceVulkan12Features						descriptorBindingStorageImageUpdateAfterBind		REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
-VkPhysicalDeviceVulkan12Features						descriptorBindingStorageBufferUpdateAfterBind		REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
-VkPhysicalDeviceVulkan12Features						descriptorBindingUniformTexelBufferUpdateAfterBind	REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
-VkPhysicalDeviceVulkan12Features						descriptorBindingStorageTexelBufferUpdateAfterBind	REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
-VkPhysicalDeviceVulkan12Features						descriptorBindingUpdateUnusedWhilePending			REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
-VkPhysicalDeviceVulkan12Features						descriptorBindingPartiallyBound						REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
-VkPhysicalDeviceVulkan12Features						runtimeDescriptorArray								REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
+VkPhysicalDeviceFeatures									FEATURES ( robustBufferAccess )									REQUIREMENTS ()
+VkPhysicalDeviceFeatures									FEATURES ( shaderSampledImageArrayDynamicIndexing )				REQUIREMENTS ( VK_EXT_descriptor_indexing )
+VkPhysicalDeviceFeatures									FEATURES ( shaderStorageBufferArrayDynamicIndexing )			REQUIREMENTS ( VK_EXT_descriptor_indexing )
+VkPhysicalDevice8BitStorageFeaturesKHR						FEATURES ( storageBuffer8BitAccess )							REQUIREMENTS ( VK_KHR_8bit_storage )
+VkPhysicalDeviceVulkan11Features							FEATURES ( multiview )											REQUIREMENTS ( "ApiVersion(1, 2, 0)" )
+VkPhysicalDeviceMultiviewFeatures							FEATURES ( multiview )											REQUIREMENTS ( "ApiVersion(1, 1, 0)" )
+VkPhysicalDeviceMultiviewFeatures							FEATURES ( multiview )											REQUIREMENTS ( VK_KHR_multiview )
+VkPhysicalDeviceVariablePointersFeatures					FEATURES ( variablePointersStorageBuffer )						REQUIREMENTS ( VK_KHR_variable_pointers )
+VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( shaderUniformTexelBufferArrayDynamicIndexing )		REQUIREMENTS ( VK_EXT_descriptor_indexing )
+VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( shaderStorageTexelBufferArrayDynamicIndexing )		REQUIREMENTS ( VK_EXT_descriptor_indexing )
+VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( shaderSampledImageArrayNonUniformIndexing )			REQUIREMENTS ( VK_EXT_descriptor_indexing )
+VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( shaderStorageBufferArrayNonUniformIndexing )			REQUIREMENTS ( VK_EXT_descriptor_indexing )
+VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( shaderUniformTexelBufferArrayNonUniformIndexing )	REQUIREMENTS ( VK_EXT_descriptor_indexing )
+VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( descriptorBindingSampledImageUpdateAfterBind )		REQUIREMENTS ( VK_EXT_descriptor_indexing )
+VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( descriptorBindingStorageImageUpdateAfterBind )		REQUIREMENTS ( VK_EXT_descriptor_indexing )
+VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( descriptorBindingStorageBufferUpdateAfterBind )		REQUIREMENTS ( VK_EXT_descriptor_indexing )
+VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( descriptorBindingUniformTexelBufferUpdateAfterBind )	REQUIREMENTS ( VK_EXT_descriptor_indexing )
+VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( descriptorBindingStorageTexelBufferUpdateAfterBind )	REQUIREMENTS ( VK_EXT_descriptor_indexing )
+VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( descriptorBindingUpdateUnusedWhilePending )			REQUIREMENTS ( VK_EXT_descriptor_indexing )
+VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( descriptorBindingPartiallyBound )					REQUIREMENTS ( VK_EXT_descriptor_indexing )
+VkPhysicalDeviceDescriptorIndexingFeaturesEXT				FEATURES ( runtimeDescriptorArray )								REQUIREMENTS ( VK_EXT_descriptor_indexing )
+VkPhysicalDeviceInlineUniformBlockFeaturesEXT				FEATURES ( inlineUniformBlock )									REQUIREMENTS ( VK_EXT_inline_uniform_block )
+VkPhysicalDeviceInlineUniformBlockFeaturesEXT				FEATURES ( descriptorBindingInlineUniformBlockUpdateAfterBind )	REQUIREMENTS ( VK_EXT_inline_uniform_block VK_EXT_descriptor_indexing )
+VkPhysicalDeviceScalarBlockLayoutFeaturesEXT				FEATURES ( scalarBlockLayout )									REQUIREMENTS ( VK_EXT_scalar_block_layout )
+VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR		FEATURES ( uniformBufferStandardLayout )						REQUIREMENTS ( VK_KHR_uniform_buffer_standard_layout )
+VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR		FEATURES ( pipelineExecutableInfo )								REQUIREMENTS ( VK_KHR_pipeline_executable_properties )
+VkPhysicalDeviceSubgroupSizeControlFeaturesEXT				FEATURES ( subgroupSizeControl )								REQUIREMENTS ( VK_EXT_subgroup_size_control )
+VkPhysicalDeviceSubgroupSizeControlFeaturesEXT				FEATURES ( computeFullSubgroups )								REQUIREMENTS ( VK_EXT_subgroup_size_control )
+VkPhysicalDeviceVulkan12Features							FEATURES ( subgroupBroadcastDynamicId )							REQUIREMENTS ( "ApiVersion(1, 2, 0)" )
+VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR		FEATURES ( shaderSubgroupExtendedTypes )						REQUIREMENTS ( VK_KHR_shader_subgroup_extended_types )
+VkPhysicalDeviceVulkan12Features							FEATURES ( shaderSubgroupExtendedTypes )						REQUIREMENTS ( "ApiVersion(1, 2, 0)" )
+VkPhysicalDeviceImagelessFramebufferFeaturesKHR 			FEATURES ( imagelessFramebuffer )								REQUIREMENTS ( VK_KHR_imageless_framebuffer )
+VkPhysicalDeviceVulkan12Features							FEATURES ( imagelessFramebuffer )								REQUIREMENTS ( "ApiVersion(1, 2, 0)" )
+VkPhysicalDeviceVulkan12Features							FEATURES ( uniformBufferStandardLayout )						REQUIREMENTS ( "ApiVersion(1, 2, 0)" )
+VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR		FEATURES ( separateDepthStencilLayouts )						REQUIREMENTS ( VK_KHR_separate_depth_stencil_layouts )
+VkPhysicalDeviceVulkan12Features							FEATURES ( separateDepthStencilLayouts )						REQUIREMENTS ( "ApiVersion(1, 2, 0)" )
+VkPhysicalDeviceHostQueryResetFeaturesEXT					FEATURES ( hostQueryReset )										REQUIREMENTS ( VK_EXT_host_query_reset )
+VkPhysicalDeviceVulkan12Features							FEATURES ( hostQueryReset )										REQUIREMENTS ( "ApiVersion(1, 2, 0)" )
+VkPhysicalDeviceTimelineSemaphoreFeaturesKHR 				FEATURES ( timelineSemaphore )									REQUIREMENTS ( VK_KHR_timeline_semaphore )
+VkPhysicalDeviceVulkan12Features							FEATURES ( timelineSemaphore )									REQUIREMENTS ( "ApiVersion(1, 2, 0)" )
+VkPhysicalDeviceVulkan12Features							FEATURES ( shaderUniformTexelBufferArrayDynamicIndexing )		REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
+VkPhysicalDeviceVulkan12Features							FEATURES ( shaderStorageTexelBufferArrayDynamicIndexing )		REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
+VkPhysicalDeviceVulkan12Features							FEATURES ( shaderSampledImageArrayNonUniformIndexing )			REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
+VkPhysicalDeviceVulkan12Features							FEATURES ( shaderStorageBufferArrayNonUniformIndexing )			REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
+VkPhysicalDeviceVulkan12Features							FEATURES ( shaderUniformTexelBufferArrayNonUniformIndexing )	REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
+VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingSampledImageUpdateAfterBind )		REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
+VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingStorageImageUpdateAfterBind )		REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
+VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingStorageBufferUpdateAfterBind )		REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
+VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingUniformTexelBufferUpdateAfterBind )	REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
+VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingStorageTexelBufferUpdateAfterBind )	REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
+VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingUpdateUnusedWhilePending )			REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
+VkPhysicalDeviceVulkan12Features							FEATURES ( descriptorBindingPartiallyBound )					REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
+VkPhysicalDeviceVulkan12Features							FEATURES ( runtimeDescriptorArray )								REQUIREMENTS ( "ApiVersion(1, 2, 0)" physicalDeviceVulkan12Features.descriptorIndexing )
+VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT		FEATURES ( textureCompressionASTC_HDR )							REQUIREMENTS ( VK_EXT_texture_compression_astc_hdr )
+VkPhysicalDeviceDepthClipEnableFeaturesEXT					FEATURES ( depthClipEnable )									REQUIREMENTS ( VK_EXT_depth_clip_enable )
+VkPhysicalDeviceMemoryPriorityFeaturesEXT					FEATURES ( memoryPriority )										REQUIREMENTS ( VK_EXT_memory_priority )
+VkPhysicalDeviceYcbcrImageArraysFeaturesEXT					FEATURES ( ycbcrImageArrays )									REQUIREMENTS ( VK_EXT_ycbcr_image_arrays )
+VkPhysicalDeviceIndexTypeUint8FeaturesEXT					FEATURES ( indexTypeUint8 )										REQUIREMENTS ( VK_EXT_index_type_uint8 )
+VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT	FEATURES ( shaderDemoteToHelperInvocation )						REQUIREMENTS ( VK_EXT_shader_demote_to_helper_invocation )
+VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT				FEATURES ( texelBufferAlignment )								REQUIREMENTS ( VK_EXT_texel_buffer_alignment )
+VkPhysicalDeviceVulkanMemoryModelFeaturesKHR				FEATURES ( vulkanMemoryModel )									REQUIREMENTS ( VK_KHR_vulkan_memory_model )
+VkPhysicalDeviceBufferDeviceAddressFeaturesKHR				FEATURES ( bufferDeviceAddress )								REQUIREMENTS ( VK_KHR_buffer_device_address )
+VkPhysicalDevicePerformanceQueryFeaturesKHR					FEATURES ( performanceCounterQueryPools )						REQUIREMENTS ( VK_KHR_performance_query )
+VkPhysicalDeviceTransformFeedbackFeaturesEXT				FEATURES ( transformFeedback )									REQUIREMENTS ( VK_EXT_transform_feedback )
+VkPhysicalDeviceConditionalRenderingFeaturesEXT				FEATURES ( conditionalRendering )								REQUIREMENTS ( VK_EXT_conditional_rendering )
+VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT			FEATURES ( vertexAttributeInstanceRateDivisor )					REQUIREMENTS ( VK_EXT_vertex_attribute_divisor )
+VkPhysicalDeviceFragmentDensityMapFeaturesEXT				FEATURES ( fragmentDensityMap )									REQUIREMENTS ( VK_EXT_fragment_density_map )
+VkPhysicalDeviceShaderClockFeaturesKHR						FEATURES ( shaderSubgroupClock )								REQUIREMENTS ( VK_KHR_shader_clock )
+VkPhysicalDeviceShaderAtomicInt64FeaturesKHR				FEATURES ( shaderBufferInt64Atomics )							REQUIREMENTS ( VK_KHR_shader_atomic_int64 )
+VkPhysicalDevice16BitStorageFeaturesKHR 					FEATURES ( storageBuffer16BitAccess )							REQUIREMENTS ( VK_KHR_16bit_storage )
+VkPhysicalDeviceShaderFloat16Int8Features					FEATURES ( shaderFloat16 shaderInt8 )							REQUIREMENTS ( VK_KHR_shader_float16_int8 )
+VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT			FEATURES ( fragmentShaderSampleInterlock fragmentShaderPixelInterlock fragmentShaderShadingRateInterlock )						REQUIREMENTS ( VK_EXT_fragment_shader_interlock )
+VkPhysicalDeviceLineRasterizationFeaturesEXT				FEATURES ( rectangularLines bresenhamLines smoothLines stippledRectangularLines stippledBresenhamLines stippledSmoothLines )	REQUIREMENTS ( VK_EXT_line_rasterization )
diff --git a/external/vulkancts/scripts/src/vulkan_android.h b/external/vulkancts/scripts/src/vulkan_android.h
index 9b8d3e2..50ef85f 100644
--- a/external/vulkancts/scripts/src/vulkan_android.h
+++ b/external/vulkancts/scripts/src/vulkan_android.h
@@ -2,19 +2,9 @@
 #define VULKAN_ANDROID_H_ 1
 
 /*
-** Copyright (c) 2015-2019 The Khronos Group Inc.
+** Copyright (c) 2015-2020 The Khronos Group Inc.
 **
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
+** SPDX-License-Identifier: Apache-2.0
 */
 
 /*
diff --git a/external/vulkancts/scripts/src/vulkan_beta.h b/external/vulkancts/scripts/src/vulkan_beta.h
new file mode 100644
index 0000000..2904234
--- /dev/null
+++ b/external/vulkancts/scripts/src/vulkan_beta.h
@@ -0,0 +1,428 @@
+#ifndef VULKAN_BETA_H_
+#define VULKAN_BETA_H_ 1
+
+/*
+** Copyright (c) 2015-2020 The Khronos Group Inc.
+**
+** SPDX-License-Identifier: Apache-2.0
+*/
+
+/*
+** This header is generated from the Khronos Vulkan XML API Registry.
+**
+*/
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+#define VK_KHR_deferred_host_operations 1
+VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeferredOperationKHR)
+#define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 3
+#define VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME "VK_KHR_deferred_host_operations"
+typedef struct VkDeferredOperationInfoKHR {
+    VkStructureType           sType;
+    const void*               pNext;
+    VkDeferredOperationKHR    operationHandle;
+} VkDeferredOperationInfoKHR;
+
+typedef VkResult (VKAPI_PTR *PFN_vkCreateDeferredOperationKHR)(VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation);
+typedef void (VKAPI_PTR *PFN_vkDestroyDeferredOperationKHR)(VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator);
+typedef uint32_t (VKAPI_PTR *PFN_vkGetDeferredOperationMaxConcurrencyKHR)(VkDevice device, VkDeferredOperationKHR operation);
+typedef VkResult (VKAPI_PTR *PFN_vkGetDeferredOperationResultKHR)(VkDevice device, VkDeferredOperationKHR operation);
+typedef VkResult (VKAPI_PTR *PFN_vkDeferredOperationJoinKHR)(VkDevice device, VkDeferredOperationKHR operation);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR VkResult VKAPI_CALL vkCreateDeferredOperationKHR(
+    VkDevice                                    device,
+    const VkAllocationCallbacks*                pAllocator,
+    VkDeferredOperationKHR*                     pDeferredOperation);
+
+VKAPI_ATTR void VKAPI_CALL vkDestroyDeferredOperationKHR(
+    VkDevice                                    device,
+    VkDeferredOperationKHR                      operation,
+    const VkAllocationCallbacks*                pAllocator);
+
+VKAPI_ATTR uint32_t VKAPI_CALL vkGetDeferredOperationMaxConcurrencyKHR(
+    VkDevice                                    device,
+    VkDeferredOperationKHR                      operation);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkGetDeferredOperationResultKHR(
+    VkDevice                                    device,
+    VkDeferredOperationKHR                      operation);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkDeferredOperationJoinKHR(
+    VkDevice                                    device,
+    VkDeferredOperationKHR                      operation);
+#endif
+
+
+#define VK_KHR_pipeline_library 1
+#define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1
+#define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library"
+typedef struct VkPipelineLibraryCreateInfoKHR {
+    VkStructureType      sType;
+    const void*          pNext;
+    uint32_t             libraryCount;
+    const VkPipeline*    pLibraries;
+} VkPipelineLibraryCreateInfoKHR;
+
+
+
+#define VK_KHR_ray_tracing 1
+#define VK_KHR_RAY_TRACING_SPEC_VERSION   8
+#define VK_KHR_RAY_TRACING_EXTENSION_NAME "VK_KHR_ray_tracing"
+
+typedef enum VkAccelerationStructureBuildTypeKHR {
+    VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0,
+    VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1,
+    VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2,
+    VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkAccelerationStructureBuildTypeKHR;
+typedef union VkDeviceOrHostAddressKHR {
+    VkDeviceAddress    deviceAddress;
+    void*              hostAddress;
+} VkDeviceOrHostAddressKHR;
+
+typedef union VkDeviceOrHostAddressConstKHR {
+    VkDeviceAddress    deviceAddress;
+    const void*        hostAddress;
+} VkDeviceOrHostAddressConstKHR;
+
+typedef struct VkAccelerationStructureBuildOffsetInfoKHR {
+    uint32_t    primitiveCount;
+    uint32_t    primitiveOffset;
+    uint32_t    firstVertex;
+    uint32_t    transformOffset;
+} VkAccelerationStructureBuildOffsetInfoKHR;
+
+typedef struct VkRayTracingShaderGroupCreateInfoKHR {
+    VkStructureType                   sType;
+    const void*                       pNext;
+    VkRayTracingShaderGroupTypeKHR    type;
+    uint32_t                          generalShader;
+    uint32_t                          closestHitShader;
+    uint32_t                          anyHitShader;
+    uint32_t                          intersectionShader;
+    const void*                       pShaderGroupCaptureReplayHandle;
+} VkRayTracingShaderGroupCreateInfoKHR;
+
+typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR {
+    VkStructureType    sType;
+    const void*        pNext;
+    uint32_t           maxPayloadSize;
+    uint32_t           maxAttributeSize;
+    uint32_t           maxCallableSize;
+} VkRayTracingPipelineInterfaceCreateInfoKHR;
+
+typedef struct VkRayTracingPipelineCreateInfoKHR {
+    VkStructureType                                      sType;
+    const void*                                          pNext;
+    VkPipelineCreateFlags                                flags;
+    uint32_t                                             stageCount;
+    const VkPipelineShaderStageCreateInfo*               pStages;
+    uint32_t                                             groupCount;
+    const VkRayTracingShaderGroupCreateInfoKHR*          pGroups;
+    uint32_t                                             maxRecursionDepth;
+    VkPipelineLibraryCreateInfoKHR                       libraries;
+    const VkRayTracingPipelineInterfaceCreateInfoKHR*    pLibraryInterface;
+    VkPipelineLayout                                     layout;
+    VkPipeline                                           basePipelineHandle;
+    int32_t                                              basePipelineIndex;
+} VkRayTracingPipelineCreateInfoKHR;
+
+typedef struct VkAccelerationStructureGeometryTrianglesDataKHR {
+    VkStructureType                  sType;
+    const void*                      pNext;
+    VkFormat                         vertexFormat;
+    VkDeviceOrHostAddressConstKHR    vertexData;
+    VkDeviceSize                     vertexStride;
+    VkIndexType                      indexType;
+    VkDeviceOrHostAddressConstKHR    indexData;
+    VkDeviceOrHostAddressConstKHR    transformData;
+} VkAccelerationStructureGeometryTrianglesDataKHR;
+
+typedef struct VkAccelerationStructureGeometryAabbsDataKHR {
+    VkStructureType                  sType;
+    const void*                      pNext;
+    VkDeviceOrHostAddressConstKHR    data;
+    VkDeviceSize                     stride;
+} VkAccelerationStructureGeometryAabbsDataKHR;
+
+typedef struct VkAccelerationStructureGeometryInstancesDataKHR {
+    VkStructureType                  sType;
+    const void*                      pNext;
+    VkBool32                         arrayOfPointers;
+    VkDeviceOrHostAddressConstKHR    data;
+} VkAccelerationStructureGeometryInstancesDataKHR;
+
+typedef union VkAccelerationStructureGeometryDataKHR {
+    VkAccelerationStructureGeometryTrianglesDataKHR    triangles;
+    VkAccelerationStructureGeometryAabbsDataKHR        aabbs;
+    VkAccelerationStructureGeometryInstancesDataKHR    instances;
+} VkAccelerationStructureGeometryDataKHR;
+
+typedef struct VkAccelerationStructureGeometryKHR {
+    VkStructureType                           sType;
+    const void*                               pNext;
+    VkGeometryTypeKHR                         geometryType;
+    VkAccelerationStructureGeometryDataKHR    geometry;
+    VkGeometryFlagsKHR                        flags;
+} VkAccelerationStructureGeometryKHR;
+
+typedef struct VkAccelerationStructureBuildGeometryInfoKHR {
+    VkStructureType                                     sType;
+    const void*                                         pNext;
+    VkAccelerationStructureTypeKHR                      type;
+    VkBuildAccelerationStructureFlagsKHR                flags;
+    VkBool32                                            update;
+    VkAccelerationStructureKHR                          srcAccelerationStructure;
+    VkAccelerationStructureKHR                          dstAccelerationStructure;
+    VkBool32                                            geometryArrayOfPointers;
+    uint32_t                                            geometryCount;
+    const VkAccelerationStructureGeometryKHR* const*    ppGeometries;
+    VkDeviceOrHostAddressKHR                            scratchData;
+} VkAccelerationStructureBuildGeometryInfoKHR;
+
+typedef struct VkAccelerationStructureCreateGeometryTypeInfoKHR {
+    VkStructureType      sType;
+    const void*          pNext;
+    VkGeometryTypeKHR    geometryType;
+    uint32_t             maxPrimitiveCount;
+    VkIndexType          indexType;
+    uint32_t             maxVertexCount;
+    VkFormat             vertexFormat;
+    VkBool32             allowsTransforms;
+} VkAccelerationStructureCreateGeometryTypeInfoKHR;
+
+typedef struct VkAccelerationStructureCreateInfoKHR {
+    VkStructureType                                            sType;
+    const void*                                                pNext;
+    VkDeviceSize                                               compactedSize;
+    VkAccelerationStructureTypeKHR                             type;
+    VkBuildAccelerationStructureFlagsKHR                       flags;
+    uint32_t                                                   maxGeometryCount;
+    const VkAccelerationStructureCreateGeometryTypeInfoKHR*    pGeometryInfos;
+    VkDeviceAddress                                            deviceAddress;
+} VkAccelerationStructureCreateInfoKHR;
+
+typedef struct VkAccelerationStructureMemoryRequirementsInfoKHR {
+    VkStructureType                                     sType;
+    const void*                                         pNext;
+    VkAccelerationStructureMemoryRequirementsTypeKHR    type;
+    VkAccelerationStructureBuildTypeKHR                 buildType;
+    VkAccelerationStructureKHR                          accelerationStructure;
+} VkAccelerationStructureMemoryRequirementsInfoKHR;
+
+typedef struct VkPhysicalDeviceRayTracingFeaturesKHR {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           rayTracing;
+    VkBool32           rayTracingShaderGroupHandleCaptureReplay;
+    VkBool32           rayTracingShaderGroupHandleCaptureReplayMixed;
+    VkBool32           rayTracingAccelerationStructureCaptureReplay;
+    VkBool32           rayTracingIndirectTraceRays;
+    VkBool32           rayTracingIndirectAccelerationStructureBuild;
+    VkBool32           rayTracingHostAccelerationStructureCommands;
+    VkBool32           rayQuery;
+    VkBool32           rayTracingPrimitiveCulling;
+} VkPhysicalDeviceRayTracingFeaturesKHR;
+
+typedef struct VkPhysicalDeviceRayTracingPropertiesKHR {
+    VkStructureType    sType;
+    void*              pNext;
+    uint32_t           shaderGroupHandleSize;
+    uint32_t           maxRecursionDepth;
+    uint32_t           maxShaderGroupStride;
+    uint32_t           shaderGroupBaseAlignment;
+    uint64_t           maxGeometryCount;
+    uint64_t           maxInstanceCount;
+    uint64_t           maxPrimitiveCount;
+    uint32_t           maxDescriptorSetAccelerationStructures;
+    uint32_t           shaderGroupHandleCaptureReplaySize;
+} VkPhysicalDeviceRayTracingPropertiesKHR;
+
+typedef struct VkAccelerationStructureDeviceAddressInfoKHR {
+    VkStructureType               sType;
+    const void*                   pNext;
+    VkAccelerationStructureKHR    accelerationStructure;
+} VkAccelerationStructureDeviceAddressInfoKHR;
+
+typedef struct VkAccelerationStructureVersionKHR {
+    VkStructureType    sType;
+    const void*        pNext;
+    const uint8_t*     versionData;
+} VkAccelerationStructureVersionKHR;
+
+typedef struct VkStridedBufferRegionKHR {
+    VkBuffer        buffer;
+    VkDeviceSize    offset;
+    VkDeviceSize    stride;
+    VkDeviceSize    size;
+} VkStridedBufferRegionKHR;
+
+typedef struct VkTraceRaysIndirectCommandKHR {
+    uint32_t    width;
+    uint32_t    height;
+    uint32_t    depth;
+} VkTraceRaysIndirectCommandKHR;
+
+typedef struct VkCopyAccelerationStructureToMemoryInfoKHR {
+    VkStructureType                       sType;
+    const void*                           pNext;
+    VkAccelerationStructureKHR            src;
+    VkDeviceOrHostAddressKHR              dst;
+    VkCopyAccelerationStructureModeKHR    mode;
+} VkCopyAccelerationStructureToMemoryInfoKHR;
+
+typedef struct VkCopyMemoryToAccelerationStructureInfoKHR {
+    VkStructureType                       sType;
+    const void*                           pNext;
+    VkDeviceOrHostAddressConstKHR         src;
+    VkAccelerationStructureKHR            dst;
+    VkCopyAccelerationStructureModeKHR    mode;
+} VkCopyMemoryToAccelerationStructureInfoKHR;
+
+typedef struct VkCopyAccelerationStructureInfoKHR {
+    VkStructureType                       sType;
+    const void*                           pNext;
+    VkAccelerationStructureKHR            src;
+    VkAccelerationStructureKHR            dst;
+    VkCopyAccelerationStructureModeKHR    mode;
+} VkCopyAccelerationStructureInfoKHR;
+
+typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureKHR)(VkDevice                                           device, const VkAccelerationStructureCreateInfoKHR*        pCreateInfo, const VkAllocationCallbacks*       pAllocator, VkAccelerationStructureKHR*                        pAccelerationStructure);
+typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsKHR)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoKHR* pInfo, VkMemoryRequirements2* pMemoryRequirements);
+typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureKHR)(VkCommandBuffer                                    commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildOffsetInfoKHR* const* ppOffsetInfos);
+typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureIndirectKHR)(VkCommandBuffer                  commandBuffer, const VkAccelerationStructureBuildGeometryInfoKHR* pInfo, VkBuffer                                           indirectBuffer, VkDeviceSize                                       indirectOffset, uint32_t                                           indirectStride);
+typedef VkResult (VKAPI_PTR *PFN_vkBuildAccelerationStructureKHR)(VkDevice                                           device, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildOffsetInfoKHR* const* ppOffsetInfos);
+typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureKHR)(VkDevice device, const VkCopyAccelerationStructureInfoKHR* pInfo);
+typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureToMemoryKHR)(VkDevice device, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
+typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToAccelerationStructureKHR)(VkDevice device, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
+typedef VkResult (VKAPI_PTR *PFN_vkWriteAccelerationStructuresPropertiesKHR)(VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType  queryType, size_t       dataSize, void* pData, size_t stride);
+typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo);
+typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureToMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
+typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
+typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysKHR)(VkCommandBuffer commandBuffer, const VkStridedBufferRegionKHR* pRaygenShaderBindingTable, const VkStridedBufferRegionKHR* pMissShaderBindingTable, const VkStridedBufferRegionKHR* pHitShaderBindingTable, const VkStridedBufferRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth);
+typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesKHR)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
+typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetAccelerationStructureDeviceAddressKHR)(VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
+typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
+typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirectKHR)(VkCommandBuffer commandBuffer, const VkStridedBufferRegionKHR* pRaygenShaderBindingTable, const VkStridedBufferRegionKHR* pMissShaderBindingTable, const VkStridedBufferRegionKHR* pHitShaderBindingTable, const VkStridedBufferRegionKHR* pCallableShaderBindingTable, VkBuffer buffer, VkDeviceSize offset);
+typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)(VkDevice device, const VkAccelerationStructureVersionKHR* version);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureKHR(
+    VkDevice                                    device,
+    const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
+    const VkAllocationCallbacks*                pAllocator,
+    VkAccelerationStructureKHR*                 pAccelerationStructure);
+
+VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsKHR(
+    VkDevice                                    device,
+    const VkAccelerationStructureMemoryRequirementsInfoKHR* pInfo,
+    VkMemoryRequirements2*                      pMemoryRequirements);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureKHR(
+    VkCommandBuffer                             commandBuffer,
+    uint32_t                                    infoCount,
+    const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
+    const VkAccelerationStructureBuildOffsetInfoKHR* const* ppOffsetInfos);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureIndirectKHR(
+    VkCommandBuffer                             commandBuffer,
+    const VkAccelerationStructureBuildGeometryInfoKHR* pInfo,
+    VkBuffer                                    indirectBuffer,
+    VkDeviceSize                                indirectOffset,
+    uint32_t                                    indirectStride);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkBuildAccelerationStructureKHR(
+    VkDevice                                    device,
+    uint32_t                                    infoCount,
+    const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
+    const VkAccelerationStructureBuildOffsetInfoKHR* const* ppOffsetInfos);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureKHR(
+    VkDevice                                    device,
+    const VkCopyAccelerationStructureInfoKHR*   pInfo);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureToMemoryKHR(
+    VkDevice                                    device,
+    const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToAccelerationStructureKHR(
+    VkDevice                                    device,
+    const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkWriteAccelerationStructuresPropertiesKHR(
+    VkDevice                                    device,
+    uint32_t                                    accelerationStructureCount,
+    const VkAccelerationStructureKHR*           pAccelerationStructures,
+    VkQueryType                                 queryType,
+    size_t                                      dataSize,
+    void*                                       pData,
+    size_t                                      stride);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureKHR(
+    VkCommandBuffer                             commandBuffer,
+    const VkCopyAccelerationStructureInfoKHR*   pInfo);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureToMemoryKHR(
+    VkCommandBuffer                             commandBuffer,
+    const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToAccelerationStructureKHR(
+    VkCommandBuffer                             commandBuffer,
+    const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysKHR(
+    VkCommandBuffer                             commandBuffer,
+    const VkStridedBufferRegionKHR*             pRaygenShaderBindingTable,
+    const VkStridedBufferRegionKHR*             pMissShaderBindingTable,
+    const VkStridedBufferRegionKHR*             pHitShaderBindingTable,
+    const VkStridedBufferRegionKHR*             pCallableShaderBindingTable,
+    uint32_t                                    width,
+    uint32_t                                    height,
+    uint32_t                                    depth);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesKHR(
+    VkDevice                                    device,
+    VkPipelineCache                             pipelineCache,
+    uint32_t                                    createInfoCount,
+    const VkRayTracingPipelineCreateInfoKHR*    pCreateInfos,
+    const VkAllocationCallbacks*                pAllocator,
+    VkPipeline*                                 pPipelines);
+
+VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetAccelerationStructureDeviceAddressKHR(
+    VkDevice                                    device,
+    const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
+    VkDevice                                    device,
+    VkPipeline                                  pipeline,
+    uint32_t                                    firstGroup,
+    uint32_t                                    groupCount,
+    size_t                                      dataSize,
+    void*                                       pData);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirectKHR(
+    VkCommandBuffer                             commandBuffer,
+    const VkStridedBufferRegionKHR*             pRaygenShaderBindingTable,
+    const VkStridedBufferRegionKHR*             pMissShaderBindingTable,
+    const VkStridedBufferRegionKHR*             pHitShaderBindingTable,
+    const VkStridedBufferRegionKHR*             pCallableShaderBindingTable,
+    VkBuffer                                    buffer,
+    VkDeviceSize                                offset);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceAccelerationStructureCompatibilityKHR(
+    VkDevice                                    device,
+    const VkAccelerationStructureVersionKHR*    version);
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/external/vulkancts/scripts/src/vulkan_core.h b/external/vulkancts/scripts/src/vulkan_core.h
index afbbd52..3ab5c2f 100644
--- a/external/vulkancts/scripts/src/vulkan_core.h
+++ b/external/vulkancts/scripts/src/vulkan_core.h
@@ -4,17 +4,7 @@
 /*
 ** Copyright (c) 2015-2020 The Khronos Group Inc.
 **
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
+** SPDX-License-Identifier: Apache-2.0
 */
 
 /*
@@ -31,24 +21,6 @@
 
 #define VK_VERSION_1_0 1
 #include "vk_platform.h"
-#define VK_MAKE_VERSION(major, minor, patch) \
-    (((major) << 22) | ((minor) << 12) | (patch))
-
-// DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead.
-//#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0
-
-// Vulkan 1.0 version number
-#define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)// Patch version should always be set to 0
-
-#define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22)
-#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
-#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
-// Version of this file
-#define VK_HEADER_VERSION 132
-
-
-#define VK_NULL_HANDLE 0
-
 
 #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
 
@@ -61,10 +33,34 @@
 #endif
 #endif
 
-typedef uint32_t VkFlags;
+#define VK_MAKE_VERSION(major, minor, patch) \
+    ((((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch)))
+
+// DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead.
+//#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0
+
+// Vulkan 1.0 version number
+#define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)// Patch version should always be set to 0
+
+// Version of this file
+#define VK_HEADER_VERSION 146
+
+// Complete version of this file
+#define VK_HEADER_VERSION_COMPLETE VK_MAKE_VERSION(1, 2, VK_HEADER_VERSION)
+
+#define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22)
+#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
+#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
+
+#define VK_NULL_HANDLE 0
+
 typedef uint32_t VkBool32;
+typedef uint64_t VkDeviceAddress;
 typedef uint64_t VkDeviceSize;
+typedef uint32_t VkFlags;
 typedef uint32_t VkSampleMask;
+VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
+VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
 VK_DEFINE_HANDLE(VkInstance)
 VK_DEFINE_HANDLE(VkPhysicalDevice)
 VK_DEFINE_HANDLE(VkDevice)
@@ -73,8 +69,6 @@
 VK_DEFINE_HANDLE(VkCommandBuffer)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
-VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
-VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
@@ -82,38 +76,30 @@
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
-VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
+VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
-VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
+VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
-#define VK_LOD_CLAMP_NONE                 1000.0f
-#define VK_REMAINING_MIP_LEVELS           (~0U)
-#define VK_REMAINING_ARRAY_LAYERS         (~0U)
-#define VK_WHOLE_SIZE                     (~0ULL)
 #define VK_ATTACHMENT_UNUSED              (~0U)
-#define VK_TRUE                           1
 #define VK_FALSE                          0
+#define VK_LOD_CLAMP_NONE                 1000.0f
 #define VK_QUEUE_FAMILY_IGNORED           (~0U)
+#define VK_REMAINING_ARRAY_LAYERS         (~0U)
+#define VK_REMAINING_MIP_LEVELS           (~0U)
 #define VK_SUBPASS_EXTERNAL               (~0U)
-#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE  256
-#define VK_UUID_SIZE                      16
+#define VK_TRUE                           1
+#define VK_WHOLE_SIZE                     (~0ULL)
 #define VK_MAX_MEMORY_TYPES               32
 #define VK_MAX_MEMORY_HEAPS               16
+#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE  256
+#define VK_UUID_SIZE                      16
 #define VK_MAX_EXTENSION_NAME_SIZE        256
 #define VK_MAX_DESCRIPTION_SIZE           256
 
-typedef enum VkPipelineCacheHeaderVersion {
-    VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
-    VK_PIPELINE_CACHE_HEADER_VERSION_BEGIN_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE,
-    VK_PIPELINE_CACHE_HEADER_VERSION_END_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE,
-    VK_PIPELINE_CACHE_HEADER_VERSION_RANGE_SIZE = (VK_PIPELINE_CACHE_HEADER_VERSION_ONE - VK_PIPELINE_CACHE_HEADER_VERSION_ONE + 1),
-    VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
-} VkPipelineCacheHeaderVersion;
-
 typedef enum VkResult {
     VK_SUCCESS = 0,
     VK_NOT_READY = 1,
@@ -145,17 +131,21 @@
     VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
     VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
     VK_ERROR_INVALID_SHADER_NV = -1000012000,
+    VK_ERROR_INCOMPATIBLE_VERSION_KHR = -1000150000,
     VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000,
     VK_ERROR_NOT_PERMITTED_EXT = -1000174001,
     VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000,
+    VK_THREAD_IDLE_KHR = 1000268000,
+    VK_THREAD_DONE_KHR = 1000268001,
+    VK_OPERATION_DEFERRED_KHR = 1000268002,
+    VK_OPERATION_NOT_DEFERRED_KHR = 1000268003,
+    VK_PIPELINE_COMPILE_REQUIRED_EXT = 1000297000,
     VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY,
     VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE,
     VK_ERROR_FRAGMENTATION_EXT = VK_ERROR_FRAGMENTATION,
     VK_ERROR_INVALID_DEVICE_ADDRESS_EXT = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
     VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
-    VK_RESULT_BEGIN_RANGE = VK_ERROR_UNKNOWN,
-    VK_RESULT_END_RANGE = VK_INCOMPLETE,
-    VK_RESULT_RANGE_SIZE = (VK_INCOMPLETE - VK_ERROR_UNKNOWN + 1),
+    VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED_EXT,
     VK_RESULT_MAX_ENUM = 0x7FFFFFFF
 } VkResult;
 
@@ -352,6 +342,7 @@
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001,
     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002,
     VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000,
+    VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001,
     VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
     VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
@@ -384,12 +375,6 @@
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
     VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
     VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
-    VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
-    VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
-    VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002,
-    VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003,
-    VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004,
-    VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005,
     VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
     VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
     VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
@@ -453,6 +438,26 @@
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
     VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
+    VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR = 1000165006,
+    VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = 1000165007,
+    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = 1000150000,
+    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_GEOMETRY_TYPE_INFO_KHR = 1000150001,
+    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = 1000150002,
+    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = 1000150003,
+    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = 1000150004,
+    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = 1000150005,
+    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR = 1000150006,
+    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_KHR = 1000150008,
+    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_KHR = 1000150009,
+    VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR = 1000150010,
+    VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = 1000150011,
+    VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = 1000150012,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_FEATURES_KHR = 1000150013,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_KHR = 1000150014,
+    VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR = 1000150015,
+    VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR = 1000150016,
+    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR = 1000150017,
+    VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = 1000150018,
     VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001,
@@ -473,8 +478,6 @@
     VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003,
     VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004,
     VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005,
-    VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006,
-    VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007,
     VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009,
     VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011,
@@ -507,7 +510,7 @@
     VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
     VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000,
-    VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = 1000210000,
+    VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = 1000210000,
     VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001,
     VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002,
     VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003,
@@ -551,6 +554,8 @@
     VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = 1000259001,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = 1000259002,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = 1000265000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = 1000267000,
+    VK_STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR = 1000268000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000,
     VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001,
     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002,
@@ -558,8 +563,33 @@
     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004,
     VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = 1000276000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000,
+    VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001,
+    VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002,
+    VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = 1000277003,
+    VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = 1000277004,
+    VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = 1000277005,
+    VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = 1000277006,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = 1000281001,
+    VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000,
+    VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = 1000286000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = 1000286001,
+    VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = 1000287000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002,
+    VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = 1000295000,
+    VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = 1000295001,
+    VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = 1000295002,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = 1000297000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000,
+    VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001,
+    VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
     VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
@@ -618,8 +648,8 @@
     VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
     VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
     VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
-    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,
-    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
     VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
@@ -643,6 +673,8 @@
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
+    VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR,
+    VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
     VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
@@ -658,6 +690,7 @@
     VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
     VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
     VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
+    VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
@@ -673,29 +706,110 @@
     VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
     VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
-    VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
-    VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
-    VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
     VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkStructureType;
 
+typedef enum VkImageLayout {
+    VK_IMAGE_LAYOUT_UNDEFINED = 0,
+    VK_IMAGE_LAYOUT_GENERAL = 1,
+    VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
+    VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
+    VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
+    VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
+    VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
+    VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
+    VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
+    VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
+    VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
+    VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000,
+    VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001,
+    VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002,
+    VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003,
+    VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
+    VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
+    VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003,
+    VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000,
+    VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
+    VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
+    VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
+    VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
+    VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
+    VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
+    VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
+} VkImageLayout;
+
+typedef enum VkObjectType {
+    VK_OBJECT_TYPE_UNKNOWN = 0,
+    VK_OBJECT_TYPE_INSTANCE = 1,
+    VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
+    VK_OBJECT_TYPE_DEVICE = 3,
+    VK_OBJECT_TYPE_QUEUE = 4,
+    VK_OBJECT_TYPE_SEMAPHORE = 5,
+    VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
+    VK_OBJECT_TYPE_FENCE = 7,
+    VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
+    VK_OBJECT_TYPE_BUFFER = 9,
+    VK_OBJECT_TYPE_IMAGE = 10,
+    VK_OBJECT_TYPE_EVENT = 11,
+    VK_OBJECT_TYPE_QUERY_POOL = 12,
+    VK_OBJECT_TYPE_BUFFER_VIEW = 13,
+    VK_OBJECT_TYPE_IMAGE_VIEW = 14,
+    VK_OBJECT_TYPE_SHADER_MODULE = 15,
+    VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
+    VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
+    VK_OBJECT_TYPE_RENDER_PASS = 18,
+    VK_OBJECT_TYPE_PIPELINE = 19,
+    VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
+    VK_OBJECT_TYPE_SAMPLER = 21,
+    VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
+    VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
+    VK_OBJECT_TYPE_FRAMEBUFFER = 24,
+    VK_OBJECT_TYPE_COMMAND_POOL = 25,
+    VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
+    VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
+    VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
+    VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
+    VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
+    VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
+    VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
+    VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
+    VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = 1000165000,
+    VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
+    VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000,
+    VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000,
+    VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000,
+    VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = 1000295000,
+    VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
+    VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
+    VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR,
+    VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
+} VkObjectType;
+
+typedef enum VkVendorId {
+    VK_VENDOR_ID_VIV = 0x10001,
+    VK_VENDOR_ID_VSI = 0x10002,
+    VK_VENDOR_ID_KAZAN = 0x10003,
+    VK_VENDOR_ID_CODEPLAY = 0x10004,
+    VK_VENDOR_ID_MESA = 0x10005,
+    VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
+} VkVendorId;
+
+typedef enum VkPipelineCacheHeaderVersion {
+    VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
+    VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
+} VkPipelineCacheHeaderVersion;
+
 typedef enum VkSystemAllocationScope {
     VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
     VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
     VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
     VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
     VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
-    VK_SYSTEM_ALLOCATION_SCOPE_BEGIN_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
-    VK_SYSTEM_ALLOCATION_SCOPE_END_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE,
-    VK_SYSTEM_ALLOCATION_SCOPE_RANGE_SIZE = (VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE - VK_SYSTEM_ALLOCATION_SCOPE_COMMAND + 1),
     VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
 } VkSystemAllocationScope;
 
 typedef enum VkInternalAllocationType {
     VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
-    VK_INTERNAL_ALLOCATION_TYPE_BEGIN_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
-    VK_INTERNAL_ALLOCATION_TYPE_END_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
-    VK_INTERNAL_ALLOCATION_TYPE_RANGE_SIZE = (VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE - VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE + 1),
     VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkInternalAllocationType;
 
@@ -975,41 +1089,29 @@
     VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
     VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
     VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
-    VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED,
-    VK_FORMAT_END_RANGE = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
-    VK_FORMAT_RANGE_SIZE = (VK_FORMAT_ASTC_12x12_SRGB_BLOCK - VK_FORMAT_UNDEFINED + 1),
     VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
 } VkFormat;
 
-typedef enum VkImageType {
-    VK_IMAGE_TYPE_1D = 0,
-    VK_IMAGE_TYPE_2D = 1,
-    VK_IMAGE_TYPE_3D = 2,
-    VK_IMAGE_TYPE_BEGIN_RANGE = VK_IMAGE_TYPE_1D,
-    VK_IMAGE_TYPE_END_RANGE = VK_IMAGE_TYPE_3D,
-    VK_IMAGE_TYPE_RANGE_SIZE = (VK_IMAGE_TYPE_3D - VK_IMAGE_TYPE_1D + 1),
-    VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
-} VkImageType;
-
 typedef enum VkImageTiling {
     VK_IMAGE_TILING_OPTIMAL = 0,
     VK_IMAGE_TILING_LINEAR = 1,
     VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,
-    VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_OPTIMAL,
-    VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_LINEAR,
-    VK_IMAGE_TILING_RANGE_SIZE = (VK_IMAGE_TILING_LINEAR - VK_IMAGE_TILING_OPTIMAL + 1),
     VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
 } VkImageTiling;
 
+typedef enum VkImageType {
+    VK_IMAGE_TYPE_1D = 0,
+    VK_IMAGE_TYPE_2D = 1,
+    VK_IMAGE_TYPE_3D = 2,
+    VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
+} VkImageType;
+
 typedef enum VkPhysicalDeviceType {
     VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
     VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
     VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
     VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
     VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
-    VK_PHYSICAL_DEVICE_TYPE_BEGIN_RANGE = VK_PHYSICAL_DEVICE_TYPE_OTHER,
-    VK_PHYSICAL_DEVICE_TYPE_END_RANGE = VK_PHYSICAL_DEVICE_TYPE_CPU,
-    VK_PHYSICAL_DEVICE_TYPE_RANGE_SIZE = (VK_PHYSICAL_DEVICE_TYPE_CPU - VK_PHYSICAL_DEVICE_TYPE_OTHER + 1),
     VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkPhysicalDeviceType;
 
@@ -1019,69 +1121,19 @@
     VK_QUERY_TYPE_TIMESTAMP = 2,
     VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
     VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000,
-    VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000,
+    VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000165000,
+    VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150000,
     VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000,
-    VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION,
-    VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP,
-    VK_QUERY_TYPE_RANGE_SIZE = (VK_QUERY_TYPE_TIMESTAMP - VK_QUERY_TYPE_OCCLUSION + 1),
+    VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR,
     VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkQueryType;
 
 typedef enum VkSharingMode {
     VK_SHARING_MODE_EXCLUSIVE = 0,
     VK_SHARING_MODE_CONCURRENT = 1,
-    VK_SHARING_MODE_BEGIN_RANGE = VK_SHARING_MODE_EXCLUSIVE,
-    VK_SHARING_MODE_END_RANGE = VK_SHARING_MODE_CONCURRENT,
-    VK_SHARING_MODE_RANGE_SIZE = (VK_SHARING_MODE_CONCURRENT - VK_SHARING_MODE_EXCLUSIVE + 1),
     VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
 } VkSharingMode;
 
-typedef enum VkImageLayout {
-    VK_IMAGE_LAYOUT_UNDEFINED = 0,
-    VK_IMAGE_LAYOUT_GENERAL = 1,
-    VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
-    VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
-    VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
-    VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
-    VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
-    VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
-    VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
-    VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
-    VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
-    VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000,
-    VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001,
-    VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002,
-    VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003,
-    VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
-    VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
-    VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003,
-    VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000,
-    VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
-    VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
-    VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
-    VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
-    VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
-    VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
-    VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED,
-    VK_IMAGE_LAYOUT_END_RANGE = VK_IMAGE_LAYOUT_PREINITIALIZED,
-    VK_IMAGE_LAYOUT_RANGE_SIZE = (VK_IMAGE_LAYOUT_PREINITIALIZED - VK_IMAGE_LAYOUT_UNDEFINED + 1),
-    VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
-} VkImageLayout;
-
-typedef enum VkImageViewType {
-    VK_IMAGE_VIEW_TYPE_1D = 0,
-    VK_IMAGE_VIEW_TYPE_2D = 1,
-    VK_IMAGE_VIEW_TYPE_3D = 2,
-    VK_IMAGE_VIEW_TYPE_CUBE = 3,
-    VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
-    VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
-    VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
-    VK_IMAGE_VIEW_TYPE_BEGIN_RANGE = VK_IMAGE_VIEW_TYPE_1D,
-    VK_IMAGE_VIEW_TYPE_END_RANGE = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY,
-    VK_IMAGE_VIEW_TYPE_RANGE_SIZE = (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY - VK_IMAGE_VIEW_TYPE_1D + 1),
-    VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
-} VkImageViewType;
-
 typedef enum VkComponentSwizzle {
     VK_COMPONENT_SWIZZLE_IDENTITY = 0,
     VK_COMPONENT_SWIZZLE_ZERO = 1,
@@ -1090,111 +1142,19 @@
     VK_COMPONENT_SWIZZLE_G = 4,
     VK_COMPONENT_SWIZZLE_B = 5,
     VK_COMPONENT_SWIZZLE_A = 6,
-    VK_COMPONENT_SWIZZLE_BEGIN_RANGE = VK_COMPONENT_SWIZZLE_IDENTITY,
-    VK_COMPONENT_SWIZZLE_END_RANGE = VK_COMPONENT_SWIZZLE_A,
-    VK_COMPONENT_SWIZZLE_RANGE_SIZE = (VK_COMPONENT_SWIZZLE_A - VK_COMPONENT_SWIZZLE_IDENTITY + 1),
     VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
 } VkComponentSwizzle;
 
-typedef enum VkVertexInputRate {
-    VK_VERTEX_INPUT_RATE_VERTEX = 0,
-    VK_VERTEX_INPUT_RATE_INSTANCE = 1,
-    VK_VERTEX_INPUT_RATE_BEGIN_RANGE = VK_VERTEX_INPUT_RATE_VERTEX,
-    VK_VERTEX_INPUT_RATE_END_RANGE = VK_VERTEX_INPUT_RATE_INSTANCE,
-    VK_VERTEX_INPUT_RATE_RANGE_SIZE = (VK_VERTEX_INPUT_RATE_INSTANCE - VK_VERTEX_INPUT_RATE_VERTEX + 1),
-    VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
-} VkVertexInputRate;
-
-typedef enum VkPrimitiveTopology {
-    VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
-    VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
-    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
-    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
-    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
-    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
-    VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
-    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
-    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
-    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
-    VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
-    VK_PRIMITIVE_TOPOLOGY_BEGIN_RANGE = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
-    VK_PRIMITIVE_TOPOLOGY_END_RANGE = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,
-    VK_PRIMITIVE_TOPOLOGY_RANGE_SIZE = (VK_PRIMITIVE_TOPOLOGY_PATCH_LIST - VK_PRIMITIVE_TOPOLOGY_POINT_LIST + 1),
-    VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
-} VkPrimitiveTopology;
-
-typedef enum VkPolygonMode {
-    VK_POLYGON_MODE_FILL = 0,
-    VK_POLYGON_MODE_LINE = 1,
-    VK_POLYGON_MODE_POINT = 2,
-    VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
-    VK_POLYGON_MODE_BEGIN_RANGE = VK_POLYGON_MODE_FILL,
-    VK_POLYGON_MODE_END_RANGE = VK_POLYGON_MODE_POINT,
-    VK_POLYGON_MODE_RANGE_SIZE = (VK_POLYGON_MODE_POINT - VK_POLYGON_MODE_FILL + 1),
-    VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
-} VkPolygonMode;
-
-typedef enum VkFrontFace {
-    VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
-    VK_FRONT_FACE_CLOCKWISE = 1,
-    VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_COUNTER_CLOCKWISE,
-    VK_FRONT_FACE_END_RANGE = VK_FRONT_FACE_CLOCKWISE,
-    VK_FRONT_FACE_RANGE_SIZE = (VK_FRONT_FACE_CLOCKWISE - VK_FRONT_FACE_COUNTER_CLOCKWISE + 1),
-    VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
-} VkFrontFace;
-
-typedef enum VkCompareOp {
-    VK_COMPARE_OP_NEVER = 0,
-    VK_COMPARE_OP_LESS = 1,
-    VK_COMPARE_OP_EQUAL = 2,
-    VK_COMPARE_OP_LESS_OR_EQUAL = 3,
-    VK_COMPARE_OP_GREATER = 4,
-    VK_COMPARE_OP_NOT_EQUAL = 5,
-    VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
-    VK_COMPARE_OP_ALWAYS = 7,
-    VK_COMPARE_OP_BEGIN_RANGE = VK_COMPARE_OP_NEVER,
-    VK_COMPARE_OP_END_RANGE = VK_COMPARE_OP_ALWAYS,
-    VK_COMPARE_OP_RANGE_SIZE = (VK_COMPARE_OP_ALWAYS - VK_COMPARE_OP_NEVER + 1),
-    VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
-} VkCompareOp;
-
-typedef enum VkStencilOp {
-    VK_STENCIL_OP_KEEP = 0,
-    VK_STENCIL_OP_ZERO = 1,
-    VK_STENCIL_OP_REPLACE = 2,
-    VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
-    VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
-    VK_STENCIL_OP_INVERT = 5,
-    VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
-    VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
-    VK_STENCIL_OP_BEGIN_RANGE = VK_STENCIL_OP_KEEP,
-    VK_STENCIL_OP_END_RANGE = VK_STENCIL_OP_DECREMENT_AND_WRAP,
-    VK_STENCIL_OP_RANGE_SIZE = (VK_STENCIL_OP_DECREMENT_AND_WRAP - VK_STENCIL_OP_KEEP + 1),
-    VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
-} VkStencilOp;
-
-typedef enum VkLogicOp {
-    VK_LOGIC_OP_CLEAR = 0,
-    VK_LOGIC_OP_AND = 1,
-    VK_LOGIC_OP_AND_REVERSE = 2,
-    VK_LOGIC_OP_COPY = 3,
-    VK_LOGIC_OP_AND_INVERTED = 4,
-    VK_LOGIC_OP_NO_OP = 5,
-    VK_LOGIC_OP_XOR = 6,
-    VK_LOGIC_OP_OR = 7,
-    VK_LOGIC_OP_NOR = 8,
-    VK_LOGIC_OP_EQUIVALENT = 9,
-    VK_LOGIC_OP_INVERT = 10,
-    VK_LOGIC_OP_OR_REVERSE = 11,
-    VK_LOGIC_OP_COPY_INVERTED = 12,
-    VK_LOGIC_OP_OR_INVERTED = 13,
-    VK_LOGIC_OP_NAND = 14,
-    VK_LOGIC_OP_SET = 15,
-    VK_LOGIC_OP_BEGIN_RANGE = VK_LOGIC_OP_CLEAR,
-    VK_LOGIC_OP_END_RANGE = VK_LOGIC_OP_SET,
-    VK_LOGIC_OP_RANGE_SIZE = (VK_LOGIC_OP_SET - VK_LOGIC_OP_CLEAR + 1),
-    VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
-} VkLogicOp;
+typedef enum VkImageViewType {
+    VK_IMAGE_VIEW_TYPE_1D = 0,
+    VK_IMAGE_VIEW_TYPE_2D = 1,
+    VK_IMAGE_VIEW_TYPE_3D = 2,
+    VK_IMAGE_VIEW_TYPE_CUBE = 3,
+    VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
+    VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
+    VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
+    VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
+} VkImageViewType;
 
 typedef enum VkBlendFactor {
     VK_BLEND_FACTOR_ZERO = 0,
@@ -1216,9 +1176,6 @@
     VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
     VK_BLEND_FACTOR_SRC1_ALPHA = 17,
     VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
-    VK_BLEND_FACTOR_BEGIN_RANGE = VK_BLEND_FACTOR_ZERO,
-    VK_BLEND_FACTOR_END_RANGE = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA,
-    VK_BLEND_FACTOR_RANGE_SIZE = (VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - VK_BLEND_FACTOR_ZERO + 1),
     VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
 } VkBlendFactor;
 
@@ -1274,12 +1231,21 @@
     VK_BLEND_OP_RED_EXT = 1000148043,
     VK_BLEND_OP_GREEN_EXT = 1000148044,
     VK_BLEND_OP_BLUE_EXT = 1000148045,
-    VK_BLEND_OP_BEGIN_RANGE = VK_BLEND_OP_ADD,
-    VK_BLEND_OP_END_RANGE = VK_BLEND_OP_MAX,
-    VK_BLEND_OP_RANGE_SIZE = (VK_BLEND_OP_MAX - VK_BLEND_OP_ADD + 1),
     VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
 } VkBlendOp;
 
+typedef enum VkCompareOp {
+    VK_COMPARE_OP_NEVER = 0,
+    VK_COMPARE_OP_LESS = 1,
+    VK_COMPARE_OP_EQUAL = 2,
+    VK_COMPARE_OP_LESS_OR_EQUAL = 3,
+    VK_COMPARE_OP_GREATER = 4,
+    VK_COMPARE_OP_NOT_EQUAL = 5,
+    VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
+    VK_COMPARE_OP_ALWAYS = 7,
+    VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
+} VkCompareOp;
+
 typedef enum VkDynamicState {
     VK_DYNAMIC_STATE_VIEWPORT = 0,
     VK_DYNAMIC_STATE_SCISSOR = 1,
@@ -1297,44 +1263,87 @@
     VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
     VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
     VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = 1000259000,
-    VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT,
-    VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
-    VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1),
+    VK_DYNAMIC_STATE_CULL_MODE_EXT = 1000267000,
+    VK_DYNAMIC_STATE_FRONT_FACE_EXT = 1000267001,
+    VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = 1000267002,
+    VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = 1000267003,
+    VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = 1000267004,
+    VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = 1000267005,
+    VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = 1000267006,
+    VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = 1000267007,
+    VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = 1000267008,
+    VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = 1000267009,
+    VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = 1000267010,
+    VK_DYNAMIC_STATE_STENCIL_OP_EXT = 1000267011,
     VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
 } VkDynamicState;
 
-typedef enum VkFilter {
-    VK_FILTER_NEAREST = 0,
-    VK_FILTER_LINEAR = 1,
-    VK_FILTER_CUBIC_IMG = 1000015000,
-    VK_FILTER_CUBIC_EXT = VK_FILTER_CUBIC_IMG,
-    VK_FILTER_BEGIN_RANGE = VK_FILTER_NEAREST,
-    VK_FILTER_END_RANGE = VK_FILTER_LINEAR,
-    VK_FILTER_RANGE_SIZE = (VK_FILTER_LINEAR - VK_FILTER_NEAREST + 1),
-    VK_FILTER_MAX_ENUM = 0x7FFFFFFF
-} VkFilter;
+typedef enum VkFrontFace {
+    VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
+    VK_FRONT_FACE_CLOCKWISE = 1,
+    VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
+} VkFrontFace;
 
-typedef enum VkSamplerMipmapMode {
-    VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
-    VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
-    VK_SAMPLER_MIPMAP_MODE_BEGIN_RANGE = VK_SAMPLER_MIPMAP_MODE_NEAREST,
-    VK_SAMPLER_MIPMAP_MODE_END_RANGE = VK_SAMPLER_MIPMAP_MODE_LINEAR,
-    VK_SAMPLER_MIPMAP_MODE_RANGE_SIZE = (VK_SAMPLER_MIPMAP_MODE_LINEAR - VK_SAMPLER_MIPMAP_MODE_NEAREST + 1),
-    VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
-} VkSamplerMipmapMode;
+typedef enum VkVertexInputRate {
+    VK_VERTEX_INPUT_RATE_VERTEX = 0,
+    VK_VERTEX_INPUT_RATE_INSTANCE = 1,
+    VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
+} VkVertexInputRate;
 
-typedef enum VkSamplerAddressMode {
-    VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
-    VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
-    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
-    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
-    VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
-    VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
-    VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT,
-    VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,
-    VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1),
-    VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
-} VkSamplerAddressMode;
+typedef enum VkPrimitiveTopology {
+    VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
+    VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
+    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
+    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
+    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
+    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
+    VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
+    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
+    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
+    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
+    VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
+    VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
+} VkPrimitiveTopology;
+
+typedef enum VkPolygonMode {
+    VK_POLYGON_MODE_FILL = 0,
+    VK_POLYGON_MODE_LINE = 1,
+    VK_POLYGON_MODE_POINT = 2,
+    VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
+    VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
+} VkPolygonMode;
+
+typedef enum VkStencilOp {
+    VK_STENCIL_OP_KEEP = 0,
+    VK_STENCIL_OP_ZERO = 1,
+    VK_STENCIL_OP_REPLACE = 2,
+    VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
+    VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
+    VK_STENCIL_OP_INVERT = 5,
+    VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
+    VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
+    VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
+} VkStencilOp;
+
+typedef enum VkLogicOp {
+    VK_LOGIC_OP_CLEAR = 0,
+    VK_LOGIC_OP_AND = 1,
+    VK_LOGIC_OP_AND_REVERSE = 2,
+    VK_LOGIC_OP_COPY = 3,
+    VK_LOGIC_OP_AND_INVERTED = 4,
+    VK_LOGIC_OP_NO_OP = 5,
+    VK_LOGIC_OP_XOR = 6,
+    VK_LOGIC_OP_OR = 7,
+    VK_LOGIC_OP_NOR = 8,
+    VK_LOGIC_OP_EQUIVALENT = 9,
+    VK_LOGIC_OP_INVERT = 10,
+    VK_LOGIC_OP_OR_REVERSE = 11,
+    VK_LOGIC_OP_COPY_INVERTED = 12,
+    VK_LOGIC_OP_OR_INVERTED = 13,
+    VK_LOGIC_OP_NAND = 14,
+    VK_LOGIC_OP_SET = 15,
+    VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
+} VkLogicOp;
 
 typedef enum VkBorderColor {
     VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
@@ -1343,12 +1352,35 @@
     VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
     VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
     VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
-    VK_BORDER_COLOR_BEGIN_RANGE = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
-    VK_BORDER_COLOR_END_RANGE = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
-    VK_BORDER_COLOR_RANGE_SIZE = (VK_BORDER_COLOR_INT_OPAQUE_WHITE - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK + 1),
+    VK_BORDER_COLOR_FLOAT_CUSTOM_EXT = 1000287003,
+    VK_BORDER_COLOR_INT_CUSTOM_EXT = 1000287004,
     VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
 } VkBorderColor;
 
+typedef enum VkFilter {
+    VK_FILTER_NEAREST = 0,
+    VK_FILTER_LINEAR = 1,
+    VK_FILTER_CUBIC_IMG = 1000015000,
+    VK_FILTER_CUBIC_EXT = VK_FILTER_CUBIC_IMG,
+    VK_FILTER_MAX_ENUM = 0x7FFFFFFF
+} VkFilter;
+
+typedef enum VkSamplerAddressMode {
+    VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
+    VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
+    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
+    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
+    VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
+    VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
+    VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
+} VkSamplerAddressMode;
+
+typedef enum VkSamplerMipmapMode {
+    VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
+    VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
+    VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
+} VkSamplerMipmapMode;
+
 typedef enum VkDescriptorType {
     VK_DESCRIPTOR_TYPE_SAMPLER = 0,
     VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
@@ -1362,10 +1394,8 @@
     VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
     VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
     VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000,
-    VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
-    VK_DESCRIPTOR_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER,
-    VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
-    VK_DESCRIPTOR_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - VK_DESCRIPTOR_TYPE_SAMPLER + 1),
+    VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000165000,
+    VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR,
     VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkDescriptorType;
 
@@ -1373,118 +1403,98 @@
     VK_ATTACHMENT_LOAD_OP_LOAD = 0,
     VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
     VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
-    VK_ATTACHMENT_LOAD_OP_BEGIN_RANGE = VK_ATTACHMENT_LOAD_OP_LOAD,
-    VK_ATTACHMENT_LOAD_OP_END_RANGE = VK_ATTACHMENT_LOAD_OP_DONT_CARE,
-    VK_ATTACHMENT_LOAD_OP_RANGE_SIZE = (VK_ATTACHMENT_LOAD_OP_DONT_CARE - VK_ATTACHMENT_LOAD_OP_LOAD + 1),
     VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
 } VkAttachmentLoadOp;
 
 typedef enum VkAttachmentStoreOp {
     VK_ATTACHMENT_STORE_OP_STORE = 0,
     VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
-    VK_ATTACHMENT_STORE_OP_BEGIN_RANGE = VK_ATTACHMENT_STORE_OP_STORE,
-    VK_ATTACHMENT_STORE_OP_END_RANGE = VK_ATTACHMENT_STORE_OP_DONT_CARE,
-    VK_ATTACHMENT_STORE_OP_RANGE_SIZE = (VK_ATTACHMENT_STORE_OP_DONT_CARE - VK_ATTACHMENT_STORE_OP_STORE + 1),
+    VK_ATTACHMENT_STORE_OP_NONE_QCOM = 1000301000,
     VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
 } VkAttachmentStoreOp;
 
 typedef enum VkPipelineBindPoint {
     VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
     VK_PIPELINE_BIND_POINT_COMPUTE = 1,
-    VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = 1000165000,
-    VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS,
-    VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE,
-    VK_PIPELINE_BIND_POINT_RANGE_SIZE = (VK_PIPELINE_BIND_POINT_COMPUTE - VK_PIPELINE_BIND_POINT_GRAPHICS + 1),
+    VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000,
+    VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
     VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
 } VkPipelineBindPoint;
 
 typedef enum VkCommandBufferLevel {
     VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
     VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
-    VK_COMMAND_BUFFER_LEVEL_BEGIN_RANGE = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
-    VK_COMMAND_BUFFER_LEVEL_END_RANGE = VK_COMMAND_BUFFER_LEVEL_SECONDARY,
-    VK_COMMAND_BUFFER_LEVEL_RANGE_SIZE = (VK_COMMAND_BUFFER_LEVEL_SECONDARY - VK_COMMAND_BUFFER_LEVEL_PRIMARY + 1),
     VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
 } VkCommandBufferLevel;
 
 typedef enum VkIndexType {
     VK_INDEX_TYPE_UINT16 = 0,
     VK_INDEX_TYPE_UINT32 = 1,
-    VK_INDEX_TYPE_NONE_NV = 1000165000,
+    VK_INDEX_TYPE_NONE_KHR = 1000165000,
     VK_INDEX_TYPE_UINT8_EXT = 1000265000,
-    VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16,
-    VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32,
-    VK_INDEX_TYPE_RANGE_SIZE = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1),
+    VK_INDEX_TYPE_NONE_NV = VK_INDEX_TYPE_NONE_KHR,
     VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkIndexType;
 
 typedef enum VkSubpassContents {
     VK_SUBPASS_CONTENTS_INLINE = 0,
     VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
-    VK_SUBPASS_CONTENTS_BEGIN_RANGE = VK_SUBPASS_CONTENTS_INLINE,
-    VK_SUBPASS_CONTENTS_END_RANGE = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS,
-    VK_SUBPASS_CONTENTS_RANGE_SIZE = (VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - VK_SUBPASS_CONTENTS_INLINE + 1),
     VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
 } VkSubpassContents;
 
-typedef enum VkObjectType {
-    VK_OBJECT_TYPE_UNKNOWN = 0,
-    VK_OBJECT_TYPE_INSTANCE = 1,
-    VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
-    VK_OBJECT_TYPE_DEVICE = 3,
-    VK_OBJECT_TYPE_QUEUE = 4,
-    VK_OBJECT_TYPE_SEMAPHORE = 5,
-    VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
-    VK_OBJECT_TYPE_FENCE = 7,
-    VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
-    VK_OBJECT_TYPE_BUFFER = 9,
-    VK_OBJECT_TYPE_IMAGE = 10,
-    VK_OBJECT_TYPE_EVENT = 11,
-    VK_OBJECT_TYPE_QUERY_POOL = 12,
-    VK_OBJECT_TYPE_BUFFER_VIEW = 13,
-    VK_OBJECT_TYPE_IMAGE_VIEW = 14,
-    VK_OBJECT_TYPE_SHADER_MODULE = 15,
-    VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
-    VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
-    VK_OBJECT_TYPE_RENDER_PASS = 18,
-    VK_OBJECT_TYPE_PIPELINE = 19,
-    VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
-    VK_OBJECT_TYPE_SAMPLER = 21,
-    VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
-    VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
-    VK_OBJECT_TYPE_FRAMEBUFFER = 24,
-    VK_OBJECT_TYPE_COMMAND_POOL = 25,
-    VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
-    VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
-    VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
-    VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
-    VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
-    VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
-    VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
-    VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000,
-    VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001,
-    VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
-    VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
-    VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
-    VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000,
-    VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
-    VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
-    VK_OBJECT_TYPE_BEGIN_RANGE = VK_OBJECT_TYPE_UNKNOWN,
-    VK_OBJECT_TYPE_END_RANGE = VK_OBJECT_TYPE_COMMAND_POOL,
-    VK_OBJECT_TYPE_RANGE_SIZE = (VK_OBJECT_TYPE_COMMAND_POOL - VK_OBJECT_TYPE_UNKNOWN + 1),
-    VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
-} VkObjectType;
+typedef enum VkAccessFlagBits {
+    VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
+    VK_ACCESS_INDEX_READ_BIT = 0x00000002,
+    VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
+    VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
+    VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
+    VK_ACCESS_SHADER_READ_BIT = 0x00000020,
+    VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
+    VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
+    VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
+    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
+    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
+    VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
+    VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
+    VK_ACCESS_HOST_READ_BIT = 0x00002000,
+    VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
+    VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
+    VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
+    VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
+    VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
+    VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
+    VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
+    VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
+    VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000,
+    VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000,
+    VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000,
+    VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000,
+    VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000,
+    VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000,
+    VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
+    VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
+    VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
+} VkAccessFlagBits;
+typedef VkFlags VkAccessFlags;
 
-typedef enum VkVendorId {
-    VK_VENDOR_ID_VIV = 0x10001,
-    VK_VENDOR_ID_VSI = 0x10002,
-    VK_VENDOR_ID_KAZAN = 0x10003,
-    VK_VENDOR_ID_BEGIN_RANGE = VK_VENDOR_ID_VIV,
-    VK_VENDOR_ID_END_RANGE = VK_VENDOR_ID_KAZAN,
-    VK_VENDOR_ID_RANGE_SIZE = (VK_VENDOR_ID_KAZAN - VK_VENDOR_ID_VIV + 1),
-    VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
-} VkVendorId;
-typedef VkFlags VkInstanceCreateFlags;
+typedef enum VkImageAspectFlagBits {
+    VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
+    VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
+    VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
+    VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
+    VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
+    VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
+    VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
+    VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,
+    VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,
+    VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,
+    VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,
+    VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT,
+    VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT,
+    VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT,
+    VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
+} VkImageAspectFlagBits;
+typedef VkFlags VkImageAspectFlags;
 
 typedef enum VkFormatFeatureFlagBits {
     VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
@@ -1511,6 +1521,7 @@
     VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000,
     VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
+    VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000,
     VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000,
     VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
     VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
@@ -1527,21 +1538,6 @@
 } VkFormatFeatureFlagBits;
 typedef VkFlags VkFormatFeatureFlags;
 
-typedef enum VkImageUsageFlagBits {
-    VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
-    VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
-    VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
-    VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
-    VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
-    VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
-    VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
-    VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
-    VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00000100,
-    VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200,
-    VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
-} VkImageUsageFlagBits;
-typedef VkFlags VkImageUsageFlags;
-
 typedef enum VkImageCreateFlagBits {
     VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
     VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
@@ -1580,15 +1576,29 @@
 } VkSampleCountFlagBits;
 typedef VkFlags VkSampleCountFlags;
 
-typedef enum VkQueueFlagBits {
-    VK_QUEUE_GRAPHICS_BIT = 0x00000001,
-    VK_QUEUE_COMPUTE_BIT = 0x00000002,
-    VK_QUEUE_TRANSFER_BIT = 0x00000004,
-    VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
-    VK_QUEUE_PROTECTED_BIT = 0x00000010,
-    VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
-} VkQueueFlagBits;
-typedef VkFlags VkQueueFlags;
+typedef enum VkImageUsageFlagBits {
+    VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
+    VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
+    VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
+    VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
+    VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
+    VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
+    VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
+    VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
+    VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00000100,
+    VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200,
+    VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
+} VkImageUsageFlagBits;
+typedef VkFlags VkImageUsageFlags;
+typedef VkFlags VkInstanceCreateFlags;
+
+typedef enum VkMemoryHeapFlagBits {
+    VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
+    VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
+    VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
+    VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
+} VkMemoryHeapFlagBits;
+typedef VkFlags VkMemoryHeapFlags;
 
 typedef enum VkMemoryPropertyFlagBits {
     VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
@@ -1603,13 +1613,15 @@
 } VkMemoryPropertyFlagBits;
 typedef VkFlags VkMemoryPropertyFlags;
 
-typedef enum VkMemoryHeapFlagBits {
-    VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
-    VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
-    VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
-    VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
-} VkMemoryHeapFlagBits;
-typedef VkFlags VkMemoryHeapFlags;
+typedef enum VkQueueFlagBits {
+    VK_QUEUE_GRAPHICS_BIT = 0x00000001,
+    VK_QUEUE_COMPUTE_BIT = 0x00000002,
+    VK_QUEUE_TRANSFER_BIT = 0x00000004,
+    VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
+    VK_QUEUE_PROTECTED_BIT = 0x00000010,
+    VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
+} VkQueueFlagBits;
+typedef VkFlags VkQueueFlags;
 typedef VkFlags VkDeviceCreateFlags;
 
 typedef enum VkDeviceQueueCreateFlagBits {
@@ -1638,36 +1650,25 @@
     VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
     VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000,
     VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
-    VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
+    VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0x00200000,
+    VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000,
     VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00400000,
-    VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = 0x00200000,
-    VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000,
     VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000,
     VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000,
     VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000,
+    VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 0x00020000,
+    VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
+    VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
     VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkPipelineStageFlagBits;
 typedef VkFlags VkPipelineStageFlags;
 typedef VkFlags VkMemoryMapFlags;
 
-typedef enum VkImageAspectFlagBits {
-    VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
-    VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
-    VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
-    VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
-    VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
-    VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
-    VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
-    VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,
-    VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,
-    VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,
-    VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,
-    VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT,
-    VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT,
-    VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT,
-    VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
-} VkImageAspectFlagBits;
-typedef VkFlags VkImageAspectFlags;
+typedef enum VkSparseMemoryBindFlagBits {
+    VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
+    VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
+} VkSparseMemoryBindFlagBits;
+typedef VkFlags VkSparseMemoryBindFlags;
 
 typedef enum VkSparseImageFormatFlagBits {
     VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
@@ -1677,12 +1678,6 @@
 } VkSparseImageFormatFlagBits;
 typedef VkFlags VkSparseImageFormatFlags;
 
-typedef enum VkSparseMemoryBindFlagBits {
-    VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
-    VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
-} VkSparseMemoryBindFlagBits;
-typedef VkFlags VkSparseMemoryBindFlags;
-
 typedef enum VkFenceCreateFlagBits {
     VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
     VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
@@ -1690,7 +1685,6 @@
 typedef VkFlags VkFenceCreateFlags;
 typedef VkFlags VkSemaphoreCreateFlags;
 typedef VkFlags VkEventCreateFlags;
-typedef VkFlags VkQueryPoolCreateFlags;
 
 typedef enum VkQueryPipelineStatisticFlagBits {
     VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
@@ -1707,6 +1701,7 @@
     VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkQueryPipelineStatisticFlagBits;
 typedef VkFlags VkQueryPipelineStatisticFlags;
+typedef VkFlags VkQueryPoolCreateFlags;
 
 typedef enum VkQueryResultFlagBits {
     VK_QUERY_RESULT_64_BIT = 0x00000001,
@@ -1743,7 +1738,8 @@
     VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,
     VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,
     VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
-    VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = 0x00000400,
+    VK_BUFFER_USAGE_RAY_TRACING_BIT_KHR = 0x00000400,
+    VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = VK_BUFFER_USAGE_RAY_TRACING_BIT_KHR,
     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
     VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
     VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
@@ -1753,6 +1749,7 @@
 
 typedef enum VkImageViewCreateFlagBits {
     VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001,
+    VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0x00000002,
     VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkImageViewCreateFlagBits;
 typedef VkFlags VkImageViewCreateFlags;
@@ -1761,17 +1758,41 @@
     VK_SHADER_MODULE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkShaderModuleCreateFlagBits;
 typedef VkFlags VkShaderModuleCreateFlags;
+
+typedef enum VkPipelineCacheCreateFlagBits {
+    VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = 0x00000001,
+    VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
+} VkPipelineCacheCreateFlagBits;
 typedef VkFlags VkPipelineCacheCreateFlags;
 
+typedef enum VkColorComponentFlagBits {
+    VK_COLOR_COMPONENT_R_BIT = 0x00000001,
+    VK_COLOR_COMPONENT_G_BIT = 0x00000002,
+    VK_COLOR_COMPONENT_B_BIT = 0x00000004,
+    VK_COLOR_COMPONENT_A_BIT = 0x00000008,
+    VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
+} VkColorComponentFlagBits;
+typedef VkFlags VkColorComponentFlags;
+
 typedef enum VkPipelineCreateFlagBits {
     VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
     VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
     VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
     VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
     VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0x00000010,
+    VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000,
+    VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000,
+    VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000,
+    VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000,
+    VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000,
+    VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000,
     VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020,
     VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040,
     VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080,
+    VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00040000,
+    VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0x00000800,
+    VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = 0x00000100,
+    VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = 0x00000200,
     VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
     VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
     VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE,
@@ -1795,21 +1816,22 @@
     VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
     VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
     VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
-    VK_SHADER_STAGE_RAYGEN_BIT_NV = 0x00000100,
-    VK_SHADER_STAGE_ANY_HIT_BIT_NV = 0x00000200,
-    VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 0x00000400,
-    VK_SHADER_STAGE_MISS_BIT_NV = 0x00000800,
-    VK_SHADER_STAGE_INTERSECTION_BIT_NV = 0x00001000,
-    VK_SHADER_STAGE_CALLABLE_BIT_NV = 0x00002000,
+    VK_SHADER_STAGE_RAYGEN_BIT_KHR = 0x00000100,
+    VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 0x00000200,
+    VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 0x00000400,
+    VK_SHADER_STAGE_MISS_BIT_KHR = 0x00000800,
+    VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0x00001000,
+    VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0x00002000,
     VK_SHADER_STAGE_TASK_BIT_NV = 0x00000040,
     VK_SHADER_STAGE_MESH_BIT_NV = 0x00000080,
+    VK_SHADER_STAGE_RAYGEN_BIT_NV = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
+    VK_SHADER_STAGE_ANY_HIT_BIT_NV = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
+    VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
+    VK_SHADER_STAGE_MISS_BIT_NV = VK_SHADER_STAGE_MISS_BIT_KHR,
+    VK_SHADER_STAGE_INTERSECTION_BIT_NV = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
+    VK_SHADER_STAGE_CALLABLE_BIT_NV = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
     VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkShaderStageFlagBits;
-typedef VkFlags VkPipelineVertexInputStateCreateFlags;
-typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
-typedef VkFlags VkPipelineTessellationStateCreateFlags;
-typedef VkFlags VkPipelineViewportStateCreateFlags;
-typedef VkFlags VkPipelineRasterizationStateCreateFlags;
 
 typedef enum VkCullModeFlagBits {
     VK_CULL_MODE_NONE = 0,
@@ -1819,18 +1841,14 @@
     VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkCullModeFlagBits;
 typedef VkFlags VkCullModeFlags;
+typedef VkFlags VkPipelineVertexInputStateCreateFlags;
+typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
+typedef VkFlags VkPipelineTessellationStateCreateFlags;
+typedef VkFlags VkPipelineViewportStateCreateFlags;
+typedef VkFlags VkPipelineRasterizationStateCreateFlags;
 typedef VkFlags VkPipelineMultisampleStateCreateFlags;
 typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
 typedef VkFlags VkPipelineColorBlendStateCreateFlags;
-
-typedef enum VkColorComponentFlagBits {
-    VK_COLOR_COMPONENT_R_BIT = 0x00000001,
-    VK_COLOR_COMPONENT_G_BIT = 0x00000002,
-    VK_COLOR_COMPONENT_B_BIT = 0x00000004,
-    VK_COLOR_COMPONENT_A_BIT = 0x00000008,
-    VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
-} VkColorComponentFlagBits;
-typedef VkFlags VkColorComponentFlags;
 typedef VkFlags VkPipelineDynamicStateCreateFlags;
 typedef VkFlags VkPipelineLayoutCreateFlags;
 typedef VkFlags VkShaderStageFlags;
@@ -1842,14 +1860,6 @@
 } VkSamplerCreateFlagBits;
 typedef VkFlags VkSamplerCreateFlags;
 
-typedef enum VkDescriptorSetLayoutCreateFlagBits {
-    VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0x00000002,
-    VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
-    VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
-    VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
-} VkDescriptorSetLayoutCreateFlagBits;
-typedef VkFlags VkDescriptorSetLayoutCreateFlags;
-
 typedef enum VkDescriptorPoolCreateFlagBits {
     VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
     VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002,
@@ -1859,17 +1869,13 @@
 typedef VkFlags VkDescriptorPoolCreateFlags;
 typedef VkFlags VkDescriptorPoolResetFlags;
 
-typedef enum VkFramebufferCreateFlagBits {
-    VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001,
-    VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
-    VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
-} VkFramebufferCreateFlagBits;
-typedef VkFlags VkFramebufferCreateFlags;
-
-typedef enum VkRenderPassCreateFlagBits {
-    VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
-} VkRenderPassCreateFlagBits;
-typedef VkFlags VkRenderPassCreateFlags;
+typedef enum VkDescriptorSetLayoutCreateFlagBits {
+    VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0x00000002,
+    VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
+    VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
+    VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
+} VkDescriptorSetLayoutCreateFlagBits;
+typedef VkFlags VkDescriptorSetLayoutCreateFlags;
 
 typedef enum VkAttachmentDescriptionFlagBits {
     VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
@@ -1877,46 +1883,6 @@
 } VkAttachmentDescriptionFlagBits;
 typedef VkFlags VkAttachmentDescriptionFlags;
 
-typedef enum VkSubpassDescriptionFlagBits {
-    VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
-    VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
-    VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
-} VkSubpassDescriptionFlagBits;
-typedef VkFlags VkSubpassDescriptionFlags;
-
-typedef enum VkAccessFlagBits {
-    VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
-    VK_ACCESS_INDEX_READ_BIT = 0x00000002,
-    VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
-    VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
-    VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
-    VK_ACCESS_SHADER_READ_BIT = 0x00000020,
-    VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
-    VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
-    VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
-    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
-    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
-    VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
-    VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
-    VK_ACCESS_HOST_READ_BIT = 0x00002000,
-    VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
-    VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
-    VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
-    VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
-    VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
-    VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
-    VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
-    VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
-    VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
-    VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
-    VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000,
-    VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000,
-    VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000,
-    VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000,
-    VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
-} VkAccessFlagBits;
-typedef VkFlags VkAccessFlags;
-
 typedef enum VkDependencyFlagBits {
     VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
     VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
@@ -1927,6 +1893,28 @@
 } VkDependencyFlagBits;
 typedef VkFlags VkDependencyFlags;
 
+typedef enum VkFramebufferCreateFlagBits {
+    VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001,
+    VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
+    VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
+} VkFramebufferCreateFlagBits;
+typedef VkFlags VkFramebufferCreateFlags;
+
+typedef enum VkRenderPassCreateFlagBits {
+    VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 0x00000002,
+    VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
+} VkRenderPassCreateFlagBits;
+typedef VkFlags VkRenderPassCreateFlags;
+
+typedef enum VkSubpassDescriptionFlagBits {
+    VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
+    VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
+    VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 0x00000004,
+    VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 0x00000008,
+    VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
+} VkSubpassDescriptionFlagBits;
+typedef VkFlags VkSubpassDescriptionFlags;
+
 typedef enum VkCommandPoolCreateFlagBits {
     VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
     VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
@@ -1969,26 +1957,103 @@
     VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkStencilFaceFlagBits;
 typedef VkFlags VkStencilFaceFlags;
-typedef struct VkApplicationInfo {
+typedef struct VkExtent2D {
+    uint32_t    width;
+    uint32_t    height;
+} VkExtent2D;
+
+typedef struct VkExtent3D {
+    uint32_t    width;
+    uint32_t    height;
+    uint32_t    depth;
+} VkExtent3D;
+
+typedef struct VkOffset2D {
+    int32_t    x;
+    int32_t    y;
+} VkOffset2D;
+
+typedef struct VkOffset3D {
+    int32_t    x;
+    int32_t    y;
+    int32_t    z;
+} VkOffset3D;
+
+typedef struct VkRect2D {
+    VkOffset2D    offset;
+    VkExtent2D    extent;
+} VkRect2D;
+
+typedef struct VkBaseInStructure {
+    VkStructureType                    sType;
+    const struct VkBaseInStructure*    pNext;
+} VkBaseInStructure;
+
+typedef struct VkBaseOutStructure {
+    VkStructureType               sType;
+    struct VkBaseOutStructure*    pNext;
+} VkBaseOutStructure;
+
+typedef struct VkBufferMemoryBarrier {
     VkStructureType    sType;
     const void*        pNext;
-    const char*        pApplicationName;
-    uint32_t           applicationVersion;
-    const char*        pEngineName;
-    uint32_t           engineVersion;
-    uint32_t           apiVersion;
-} VkApplicationInfo;
+    VkAccessFlags      srcAccessMask;
+    VkAccessFlags      dstAccessMask;
+    uint32_t           srcQueueFamilyIndex;
+    uint32_t           dstQueueFamilyIndex;
+    VkBuffer           buffer;
+    VkDeviceSize       offset;
+    VkDeviceSize       size;
+} VkBufferMemoryBarrier;
 
-typedef struct VkInstanceCreateInfo {
-    VkStructureType             sType;
-    const void*                 pNext;
-    VkInstanceCreateFlags       flags;
-    const VkApplicationInfo*    pApplicationInfo;
-    uint32_t                    enabledLayerCount;
-    const char* const*          ppEnabledLayerNames;
-    uint32_t                    enabledExtensionCount;
-    const char* const*          ppEnabledExtensionNames;
-} VkInstanceCreateInfo;
+typedef struct VkDispatchIndirectCommand {
+    uint32_t    x;
+    uint32_t    y;
+    uint32_t    z;
+} VkDispatchIndirectCommand;
+
+typedef struct VkDrawIndexedIndirectCommand {
+    uint32_t    indexCount;
+    uint32_t    instanceCount;
+    uint32_t    firstIndex;
+    int32_t     vertexOffset;
+    uint32_t    firstInstance;
+} VkDrawIndexedIndirectCommand;
+
+typedef struct VkDrawIndirectCommand {
+    uint32_t    vertexCount;
+    uint32_t    instanceCount;
+    uint32_t    firstVertex;
+    uint32_t    firstInstance;
+} VkDrawIndirectCommand;
+
+typedef struct VkImageSubresourceRange {
+    VkImageAspectFlags    aspectMask;
+    uint32_t              baseMipLevel;
+    uint32_t              levelCount;
+    uint32_t              baseArrayLayer;
+    uint32_t              layerCount;
+} VkImageSubresourceRange;
+
+typedef struct VkImageMemoryBarrier {
+    VkStructureType            sType;
+    const void*                pNext;
+    VkAccessFlags              srcAccessMask;
+    VkAccessFlags              dstAccessMask;
+    VkImageLayout              oldLayout;
+    VkImageLayout              newLayout;
+    uint32_t                   srcQueueFamilyIndex;
+    uint32_t                   dstQueueFamilyIndex;
+    VkImage                    image;
+    VkImageSubresourceRange    subresourceRange;
+} VkImageMemoryBarrier;
+
+typedef struct VkMemoryBarrier {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkAccessFlags      srcAccessMask;
+    VkAccessFlags      dstAccessMask;
+} VkMemoryBarrier;
 
 typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
     void*                                       pUserData,
@@ -1996,13 +2061,6 @@
     size_t                                      alignment,
     VkSystemAllocationScope                     allocationScope);
 
-typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
-    void*                                       pUserData,
-    void*                                       pOriginal,
-    size_t                                      size,
-    size_t                                      alignment,
-    VkSystemAllocationScope                     allocationScope);
-
 typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
     void*                                       pUserData,
     void*                                       pMemory);
@@ -2019,6 +2077,14 @@
     VkInternalAllocationType                    allocationType,
     VkSystemAllocationScope                     allocationScope);
 
+typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
+    void*                                       pUserData,
+    void*                                       pOriginal,
+    size_t                                      size,
+    size_t                                      alignment,
+    VkSystemAllocationScope                     allocationScope);
+
+typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
 typedef struct VkAllocationCallbacks {
     void*                                   pUserData;
     PFN_vkAllocationFunction                pfnAllocation;
@@ -2028,6 +2094,51 @@
     PFN_vkInternalFreeNotification          pfnInternalFree;
 } VkAllocationCallbacks;
 
+typedef struct VkApplicationInfo {
+    VkStructureType    sType;
+    const void*        pNext;
+    const char*        pApplicationName;
+    uint32_t           applicationVersion;
+    const char*        pEngineName;
+    uint32_t           engineVersion;
+    uint32_t           apiVersion;
+} VkApplicationInfo;
+
+typedef struct VkFormatProperties {
+    VkFormatFeatureFlags    linearTilingFeatures;
+    VkFormatFeatureFlags    optimalTilingFeatures;
+    VkFormatFeatureFlags    bufferFeatures;
+} VkFormatProperties;
+
+typedef struct VkImageFormatProperties {
+    VkExtent3D            maxExtent;
+    uint32_t              maxMipLevels;
+    uint32_t              maxArrayLayers;
+    VkSampleCountFlags    sampleCounts;
+    VkDeviceSize          maxResourceSize;
+} VkImageFormatProperties;
+
+typedef struct VkInstanceCreateInfo {
+    VkStructureType             sType;
+    const void*                 pNext;
+    VkInstanceCreateFlags       flags;
+    const VkApplicationInfo*    pApplicationInfo;
+    uint32_t                    enabledLayerCount;
+    const char* const*          ppEnabledLayerNames;
+    uint32_t                    enabledExtensionCount;
+    const char* const*          ppEnabledExtensionNames;
+} VkInstanceCreateInfo;
+
+typedef struct VkMemoryHeap {
+    VkDeviceSize         size;
+    VkMemoryHeapFlags    flags;
+} VkMemoryHeap;
+
+typedef struct VkMemoryType {
+    VkMemoryPropertyFlags    propertyFlags;
+    uint32_t                 heapIndex;
+} VkMemoryType;
+
 typedef struct VkPhysicalDeviceFeatures {
     VkBool32    robustBufferAccess;
     VkBool32    fullDrawIndexUint32;
@@ -2086,26 +2197,6 @@
     VkBool32    inheritedQueries;
 } VkPhysicalDeviceFeatures;
 
-typedef struct VkFormatProperties {
-    VkFormatFeatureFlags    linearTilingFeatures;
-    VkFormatFeatureFlags    optimalTilingFeatures;
-    VkFormatFeatureFlags    bufferFeatures;
-} VkFormatProperties;
-
-typedef struct VkExtent3D {
-    uint32_t    width;
-    uint32_t    height;
-    uint32_t    depth;
-} VkExtent3D;
-
-typedef struct VkImageFormatProperties {
-    VkExtent3D            maxExtent;
-    uint32_t              maxMipLevels;
-    uint32_t              maxArrayLayers;
-    VkSampleCountFlags    sampleCounts;
-    VkDeviceSize          maxResourceSize;
-} VkImageFormatProperties;
-
 typedef struct VkPhysicalDeviceLimits {
     uint32_t              maxImageDimension1D;
     uint32_t              maxImageDimension2D;
@@ -2215,6 +2306,13 @@
     VkDeviceSize          nonCoherentAtomSize;
 } VkPhysicalDeviceLimits;
 
+typedef struct VkPhysicalDeviceMemoryProperties {
+    uint32_t        memoryTypeCount;
+    VkMemoryType    memoryTypes[VK_MAX_MEMORY_TYPES];
+    uint32_t        memoryHeapCount;
+    VkMemoryHeap    memoryHeaps[VK_MAX_MEMORY_HEAPS];
+} VkPhysicalDeviceMemoryProperties;
+
 typedef struct VkPhysicalDeviceSparseProperties {
     VkBool32    residencyStandard2DBlockShape;
     VkBool32    residencyStandard2DMultisampleBlockShape;
@@ -2242,24 +2340,6 @@
     VkExtent3D      minImageTransferGranularity;
 } VkQueueFamilyProperties;
 
-typedef struct VkMemoryType {
-    VkMemoryPropertyFlags    propertyFlags;
-    uint32_t                 heapIndex;
-} VkMemoryType;
-
-typedef struct VkMemoryHeap {
-    VkDeviceSize         size;
-    VkMemoryHeapFlags    flags;
-} VkMemoryHeap;
-
-typedef struct VkPhysicalDeviceMemoryProperties {
-    uint32_t        memoryTypeCount;
-    VkMemoryType    memoryTypes[VK_MAX_MEMORY_TYPES];
-    uint32_t        memoryHeapCount;
-    VkMemoryHeap    memoryHeaps[VK_MAX_MEMORY_HEAPS];
-} VkPhysicalDeviceMemoryProperties;
-
-typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
 typedef struct VkDeviceQueueCreateInfo {
     VkStructureType             sType;
     const void*                 pNext;
@@ -2306,13 +2386,6 @@
     const VkSemaphore*             pSignalSemaphores;
 } VkSubmitInfo;
 
-typedef struct VkMemoryAllocateInfo {
-    VkStructureType    sType;
-    const void*        pNext;
-    VkDeviceSize       allocationSize;
-    uint32_t           memoryTypeIndex;
-} VkMemoryAllocateInfo;
-
 typedef struct VkMappedMemoryRange {
     VkStructureType    sType;
     const void*        pNext;
@@ -2321,26 +2394,19 @@
     VkDeviceSize       size;
 } VkMappedMemoryRange;
 
+typedef struct VkMemoryAllocateInfo {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkDeviceSize       allocationSize;
+    uint32_t           memoryTypeIndex;
+} VkMemoryAllocateInfo;
+
 typedef struct VkMemoryRequirements {
     VkDeviceSize    size;
     VkDeviceSize    alignment;
     uint32_t        memoryTypeBits;
 } VkMemoryRequirements;
 
-typedef struct VkSparseImageFormatProperties {
-    VkImageAspectFlags          aspectMask;
-    VkExtent3D                  imageGranularity;
-    VkSparseImageFormatFlags    flags;
-} VkSparseImageFormatProperties;
-
-typedef struct VkSparseImageMemoryRequirements {
-    VkSparseImageFormatProperties    formatProperties;
-    uint32_t                         imageMipTailFirstLod;
-    VkDeviceSize                     imageMipTailSize;
-    VkDeviceSize                     imageMipTailOffset;
-    VkDeviceSize                     imageMipTailStride;
-} VkSparseImageMemoryRequirements;
-
 typedef struct VkSparseMemoryBind {
     VkDeviceSize               resourceOffset;
     VkDeviceSize               size;
@@ -2367,12 +2433,6 @@
     uint32_t              arrayLayer;
 } VkImageSubresource;
 
-typedef struct VkOffset3D {
-    int32_t    x;
-    int32_t    y;
-    int32_t    z;
-} VkOffset3D;
-
 typedef struct VkSparseImageMemoryBind {
     VkImageSubresource         subresource;
     VkOffset3D                 offset;
@@ -2403,6 +2463,20 @@
     const VkSemaphore*                          pSignalSemaphores;
 } VkBindSparseInfo;
 
+typedef struct VkSparseImageFormatProperties {
+    VkImageAspectFlags          aspectMask;
+    VkExtent3D                  imageGranularity;
+    VkSparseImageFormatFlags    flags;
+} VkSparseImageFormatProperties;
+
+typedef struct VkSparseImageMemoryRequirements {
+    VkSparseImageFormatProperties    formatProperties;
+    uint32_t                         imageMipTailFirstLod;
+    VkDeviceSize                     imageMipTailSize;
+    VkDeviceSize                     imageMipTailOffset;
+    VkDeviceSize                     imageMipTailStride;
+} VkSparseImageMemoryRequirements;
+
 typedef struct VkFenceCreateInfo {
     VkStructureType       sType;
     const void*           pNext;
@@ -2484,14 +2558,6 @@
     VkComponentSwizzle    a;
 } VkComponentMapping;
 
-typedef struct VkImageSubresourceRange {
-    VkImageAspectFlags    aspectMask;
-    uint32_t              baseMipLevel;
-    uint32_t              levelCount;
-    uint32_t              baseArrayLayer;
-    uint32_t              layerCount;
-} VkImageSubresourceRange;
-
 typedef struct VkImageViewCreateInfo {
     VkStructureType            sType;
     const void*                pNext;
@@ -2542,6 +2608,16 @@
     const VkSpecializationInfo*         pSpecializationInfo;
 } VkPipelineShaderStageCreateInfo;
 
+typedef struct VkComputePipelineCreateInfo {
+    VkStructureType                    sType;
+    const void*                        pNext;
+    VkPipelineCreateFlags              flags;
+    VkPipelineShaderStageCreateInfo    stage;
+    VkPipelineLayout                   layout;
+    VkPipeline                         basePipelineHandle;
+    int32_t                            basePipelineIndex;
+} VkComputePipelineCreateInfo;
+
 typedef struct VkVertexInputBindingDescription {
     uint32_t             binding;
     uint32_t             stride;
@@ -2589,21 +2665,6 @@
     float    maxDepth;
 } VkViewport;
 
-typedef struct VkOffset2D {
-    int32_t    x;
-    int32_t    y;
-} VkOffset2D;
-
-typedef struct VkExtent2D {
-    uint32_t    width;
-    uint32_t    height;
-} VkExtent2D;
-
-typedef struct VkRect2D {
-    VkOffset2D    offset;
-    VkExtent2D    extent;
-} VkRect2D;
-
 typedef struct VkPipelineViewportStateCreateInfo {
     VkStructureType                       sType;
     const void*                           pNext;
@@ -2719,16 +2780,6 @@
     int32_t                                          basePipelineIndex;
 } VkGraphicsPipelineCreateInfo;
 
-typedef struct VkComputePipelineCreateInfo {
-    VkStructureType                    sType;
-    const void*                        pNext;
-    VkPipelineCreateFlags              flags;
-    VkPipelineShaderStageCreateInfo    stage;
-    VkPipelineLayout                   layout;
-    VkPipeline                         basePipelineHandle;
-    int32_t                            basePipelineIndex;
-} VkComputePipelineCreateInfo;
-
 typedef struct VkPushConstantRange {
     VkShaderStageFlags    stageFlags;
     uint32_t              offset;
@@ -2766,21 +2817,29 @@
     VkBool32                unnormalizedCoordinates;
 } VkSamplerCreateInfo;
 
-typedef struct VkDescriptorSetLayoutBinding {
-    uint32_t              binding;
-    VkDescriptorType      descriptorType;
-    uint32_t              descriptorCount;
-    VkShaderStageFlags    stageFlags;
-    const VkSampler*      pImmutableSamplers;
-} VkDescriptorSetLayoutBinding;
+typedef struct VkCopyDescriptorSet {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkDescriptorSet    srcSet;
+    uint32_t           srcBinding;
+    uint32_t           srcArrayElement;
+    VkDescriptorSet    dstSet;
+    uint32_t           dstBinding;
+    uint32_t           dstArrayElement;
+    uint32_t           descriptorCount;
+} VkCopyDescriptorSet;
 
-typedef struct VkDescriptorSetLayoutCreateInfo {
-    VkStructureType                        sType;
-    const void*                            pNext;
-    VkDescriptorSetLayoutCreateFlags       flags;
-    uint32_t                               bindingCount;
-    const VkDescriptorSetLayoutBinding*    pBindings;
-} VkDescriptorSetLayoutCreateInfo;
+typedef struct VkDescriptorBufferInfo {
+    VkBuffer        buffer;
+    VkDeviceSize    offset;
+    VkDeviceSize    range;
+} VkDescriptorBufferInfo;
+
+typedef struct VkDescriptorImageInfo {
+    VkSampler        sampler;
+    VkImageView      imageView;
+    VkImageLayout    imageLayout;
+} VkDescriptorImageInfo;
 
 typedef struct VkDescriptorPoolSize {
     VkDescriptorType    type;
@@ -2804,17 +2863,21 @@
     const VkDescriptorSetLayout*    pSetLayouts;
 } VkDescriptorSetAllocateInfo;
 
-typedef struct VkDescriptorImageInfo {
-    VkSampler        sampler;
-    VkImageView      imageView;
-    VkImageLayout    imageLayout;
-} VkDescriptorImageInfo;
+typedef struct VkDescriptorSetLayoutBinding {
+    uint32_t              binding;
+    VkDescriptorType      descriptorType;
+    uint32_t              descriptorCount;
+    VkShaderStageFlags    stageFlags;
+    const VkSampler*      pImmutableSamplers;
+} VkDescriptorSetLayoutBinding;
 
-typedef struct VkDescriptorBufferInfo {
-    VkBuffer        buffer;
-    VkDeviceSize    offset;
-    VkDeviceSize    range;
-} VkDescriptorBufferInfo;
+typedef struct VkDescriptorSetLayoutCreateInfo {
+    VkStructureType                        sType;
+    const void*                            pNext;
+    VkDescriptorSetLayoutCreateFlags       flags;
+    uint32_t                               bindingCount;
+    const VkDescriptorSetLayoutBinding*    pBindings;
+} VkDescriptorSetLayoutCreateInfo;
 
 typedef struct VkWriteDescriptorSet {
     VkStructureType                  sType;
@@ -2829,30 +2892,6 @@
     const VkBufferView*              pTexelBufferView;
 } VkWriteDescriptorSet;
 
-typedef struct VkCopyDescriptorSet {
-    VkStructureType    sType;
-    const void*        pNext;
-    VkDescriptorSet    srcSet;
-    uint32_t           srcBinding;
-    uint32_t           srcArrayElement;
-    VkDescriptorSet    dstSet;
-    uint32_t           dstBinding;
-    uint32_t           dstArrayElement;
-    uint32_t           descriptorCount;
-} VkCopyDescriptorSet;
-
-typedef struct VkFramebufferCreateInfo {
-    VkStructureType             sType;
-    const void*                 pNext;
-    VkFramebufferCreateFlags    flags;
-    VkRenderPass                renderPass;
-    uint32_t                    attachmentCount;
-    const VkImageView*          pAttachments;
-    uint32_t                    width;
-    uint32_t                    height;
-    uint32_t                    layers;
-} VkFramebufferCreateInfo;
-
 typedef struct VkAttachmentDescription {
     VkAttachmentDescriptionFlags    flags;
     VkFormat                        format;
@@ -2870,6 +2909,18 @@
     VkImageLayout    layout;
 } VkAttachmentReference;
 
+typedef struct VkFramebufferCreateInfo {
+    VkStructureType             sType;
+    const void*                 pNext;
+    VkFramebufferCreateFlags    flags;
+    VkRenderPass                renderPass;
+    uint32_t                    attachmentCount;
+    const VkImageView*          pAttachments;
+    uint32_t                    width;
+    uint32_t                    height;
+    uint32_t                    layers;
+} VkFramebufferCreateInfo;
+
 typedef struct VkSubpassDescription {
     VkSubpassDescriptionFlags       flags;
     VkPipelineBindPoint             pipelineBindPoint;
@@ -2951,21 +3002,6 @@
     uint32_t              layerCount;
 } VkImageSubresourceLayers;
 
-typedef struct VkImageCopy {
-    VkImageSubresourceLayers    srcSubresource;
-    VkOffset3D                  srcOffset;
-    VkImageSubresourceLayers    dstSubresource;
-    VkOffset3D                  dstOffset;
-    VkExtent3D                  extent;
-} VkImageCopy;
-
-typedef struct VkImageBlit {
-    VkImageSubresourceLayers    srcSubresource;
-    VkOffset3D                  srcOffsets[2];
-    VkImageSubresourceLayers    dstSubresource;
-    VkOffset3D                  dstOffsets[2];
-} VkImageBlit;
-
 typedef struct VkBufferImageCopy {
     VkDeviceSize                bufferOffset;
     uint32_t                    bufferRowLength;
@@ -3003,6 +3039,21 @@
     uint32_t    layerCount;
 } VkClearRect;
 
+typedef struct VkImageBlit {
+    VkImageSubresourceLayers    srcSubresource;
+    VkOffset3D                  srcOffsets[2];
+    VkImageSubresourceLayers    dstSubresource;
+    VkOffset3D                  dstOffsets[2];
+} VkImageBlit;
+
+typedef struct VkImageCopy {
+    VkImageSubresourceLayers    srcSubresource;
+    VkOffset3D                  srcOffset;
+    VkImageSubresourceLayers    dstSubresource;
+    VkOffset3D                  dstOffset;
+    VkExtent3D                  extent;
+} VkImageCopy;
+
 typedef struct VkImageResolve {
     VkImageSubresourceLayers    srcSubresource;
     VkOffset3D                  srcOffset;
@@ -3011,38 +3062,6 @@
     VkExtent3D                  extent;
 } VkImageResolve;
 
-typedef struct VkMemoryBarrier {
-    VkStructureType    sType;
-    const void*        pNext;
-    VkAccessFlags      srcAccessMask;
-    VkAccessFlags      dstAccessMask;
-} VkMemoryBarrier;
-
-typedef struct VkBufferMemoryBarrier {
-    VkStructureType    sType;
-    const void*        pNext;
-    VkAccessFlags      srcAccessMask;
-    VkAccessFlags      dstAccessMask;
-    uint32_t           srcQueueFamilyIndex;
-    uint32_t           dstQueueFamilyIndex;
-    VkBuffer           buffer;
-    VkDeviceSize       offset;
-    VkDeviceSize       size;
-} VkBufferMemoryBarrier;
-
-typedef struct VkImageMemoryBarrier {
-    VkStructureType            sType;
-    const void*                pNext;
-    VkAccessFlags              srcAccessMask;
-    VkAccessFlags              dstAccessMask;
-    VkImageLayout              oldLayout;
-    VkImageLayout              newLayout;
-    uint32_t                   srcQueueFamilyIndex;
-    uint32_t                   dstQueueFamilyIndex;
-    VkImage                    image;
-    VkImageSubresourceRange    subresourceRange;
-} VkImageMemoryBarrier;
-
 typedef struct VkRenderPassBeginInfo {
     VkStructureType        sType;
     const void*            pNext;
@@ -3053,37 +3072,6 @@
     const VkClearValue*    pClearValues;
 } VkRenderPassBeginInfo;
 
-typedef struct VkDispatchIndirectCommand {
-    uint32_t    x;
-    uint32_t    y;
-    uint32_t    z;
-} VkDispatchIndirectCommand;
-
-typedef struct VkDrawIndexedIndirectCommand {
-    uint32_t    indexCount;
-    uint32_t    instanceCount;
-    uint32_t    firstIndex;
-    int32_t     vertexOffset;
-    uint32_t    firstInstance;
-} VkDrawIndexedIndirectCommand;
-
-typedef struct VkDrawIndirectCommand {
-    uint32_t    vertexCount;
-    uint32_t    instanceCount;
-    uint32_t    firstVertex;
-    uint32_t    firstInstance;
-} VkDrawIndirectCommand;
-
-typedef struct VkBaseOutStructure {
-    VkStructureType               sType;
-    struct VkBaseOutStructure*    pNext;
-} VkBaseOutStructure;
-
-typedef struct VkBaseInStructure {
-    VkStructureType                    sType;
-    const struct VkBaseInStructure*    pNext;
-} VkBaseInStructure;
-
 typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
 typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
@@ -4037,9 +4025,6 @@
     VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
     VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
     VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
-    VK_POINT_CLIPPING_BEHAVIOR_BEGIN_RANGE = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
-    VK_POINT_CLIPPING_BEHAVIOR_END_RANGE = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
-    VK_POINT_CLIPPING_BEHAVIOR_RANGE_SIZE = (VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY - VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES + 1),
     VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
 } VkPointClippingBehavior;
 
@@ -4048,9 +4033,6 @@
     VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
     VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
     VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
-    VK_TESSELLATION_DOMAIN_ORIGIN_BEGIN_RANGE = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
-    VK_TESSELLATION_DOMAIN_ORIGIN_END_RANGE = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
-    VK_TESSELLATION_DOMAIN_ORIGIN_RANGE_SIZE = (VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT - VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT + 1),
     VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF
 } VkTessellationDomainOrigin;
 
@@ -4065,9 +4047,6 @@
     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
     VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
-    VK_SAMPLER_YCBCR_MODEL_CONVERSION_BEGIN_RANGE = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
-    VK_SAMPLER_YCBCR_MODEL_CONVERSION_END_RANGE = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
-    VK_SAMPLER_YCBCR_MODEL_CONVERSION_RANGE_SIZE = (VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 - VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY + 1),
     VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF
 } VkSamplerYcbcrModelConversion;
 
@@ -4076,9 +4055,6 @@
     VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
     VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
     VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
-    VK_SAMPLER_YCBCR_RANGE_BEGIN_RANGE = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
-    VK_SAMPLER_YCBCR_RANGE_END_RANGE = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
-    VK_SAMPLER_YCBCR_RANGE_RANGE_SIZE = (VK_SAMPLER_YCBCR_RANGE_ITU_NARROW - VK_SAMPLER_YCBCR_RANGE_ITU_FULL + 1),
     VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF
 } VkSamplerYcbcrRange;
 
@@ -4087,9 +4063,6 @@
     VK_CHROMA_LOCATION_MIDPOINT = 1,
     VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN,
     VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT,
-    VK_CHROMA_LOCATION_BEGIN_RANGE = VK_CHROMA_LOCATION_COSITED_EVEN,
-    VK_CHROMA_LOCATION_END_RANGE = VK_CHROMA_LOCATION_MIDPOINT,
-    VK_CHROMA_LOCATION_RANGE_SIZE = (VK_CHROMA_LOCATION_MIDPOINT - VK_CHROMA_LOCATION_COSITED_EVEN + 1),
     VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF
 } VkChromaLocation;
 
@@ -4097,9 +4070,6 @@
     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
-    VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
-    VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_END_RANGE = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
-    VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET - VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET + 1),
     VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkDescriptorUpdateTemplateType;
 
@@ -4378,8 +4348,6 @@
     VkMemoryRequirements    memoryRequirements;
 } VkMemoryRequirements2;
 
-typedef VkMemoryRequirements2 VkMemoryRequirements2KHR;
-
 typedef struct VkSparseImageMemoryRequirements2 {
     VkStructureType                    sType;
     void*                              pNext;
@@ -4907,7 +4875,6 @@
 // Vulkan 1.2 version number
 #define VK_API_VERSION_1_2 VK_MAKE_VERSION(1, 2, 0)// Patch version should always be set to 0
 
-typedef uint64_t VkDeviceAddress;
 #define VK_MAX_DRIVER_NAME_SIZE           256
 #define VK_MAX_DRIVER_INFO_SIZE           256
 
@@ -4924,6 +4891,7 @@
     VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10,
     VK_DRIVER_ID_GGP_PROPRIETARY = 11,
     VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12,
+    VK_DRIVER_ID_MESA_LLVMPIPE = 13,
     VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY,
     VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE,
     VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV,
@@ -4936,9 +4904,6 @@
     VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
     VK_DRIVER_ID_GGP_PROPRIETARY_KHR = VK_DRIVER_ID_GGP_PROPRIETARY,
     VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
-    VK_DRIVER_ID_BEGIN_RANGE = VK_DRIVER_ID_AMD_PROPRIETARY,
-    VK_DRIVER_ID_END_RANGE = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
-    VK_DRIVER_ID_RANGE_SIZE = (VK_DRIVER_ID_BROADCOM_PROPRIETARY - VK_DRIVER_ID_AMD_PROPRIETARY + 1),
     VK_DRIVER_ID_MAX_ENUM = 0x7FFFFFFF
 } VkDriverId;
 
@@ -4949,9 +4914,6 @@
     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE,
-    VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_BEGIN_RANGE = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
-    VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_END_RANGE = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE,
-    VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_RANGE_SIZE = (VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE - VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY + 1),
     VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM = 0x7FFFFFFF
 } VkShaderFloatControlsIndependence;
 
@@ -4962,9 +4924,6 @@
     VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
     VK_SAMPLER_REDUCTION_MODE_MIN_EXT = VK_SAMPLER_REDUCTION_MODE_MIN,
     VK_SAMPLER_REDUCTION_MODE_MAX_EXT = VK_SAMPLER_REDUCTION_MODE_MAX,
-    VK_SAMPLER_REDUCTION_MODE_BEGIN_RANGE = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
-    VK_SAMPLER_REDUCTION_MODE_END_RANGE = VK_SAMPLER_REDUCTION_MODE_MAX,
-    VK_SAMPLER_REDUCTION_MODE_RANGE_SIZE = (VK_SAMPLER_REDUCTION_MODE_MAX - VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE + 1),
     VK_SAMPLER_REDUCTION_MODE_MAX_ENUM = 0x7FFFFFFF
 } VkSamplerReductionMode;
 
@@ -4973,9 +4932,6 @@
     VK_SEMAPHORE_TYPE_TIMELINE = 1,
     VK_SEMAPHORE_TYPE_BINARY_KHR = VK_SEMAPHORE_TYPE_BINARY,
     VK_SEMAPHORE_TYPE_TIMELINE_KHR = VK_SEMAPHORE_TYPE_TIMELINE,
-    VK_SEMAPHORE_TYPE_BEGIN_RANGE = VK_SEMAPHORE_TYPE_BINARY,
-    VK_SEMAPHORE_TYPE_END_RANGE = VK_SEMAPHORE_TYPE_TIMELINE,
-    VK_SEMAPHORE_TYPE_RANGE_SIZE = (VK_SEMAPHORE_TYPE_TIMELINE - VK_SEMAPHORE_TYPE_BINARY + 1),
     VK_SEMAPHORE_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkSemaphoreType;
 
@@ -5662,6 +5618,16 @@
 #define VK_KHR_SURFACE_SPEC_VERSION       25
 #define VK_KHR_SURFACE_EXTENSION_NAME     "VK_KHR_surface"
 
+typedef enum VkPresentModeKHR {
+    VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
+    VK_PRESENT_MODE_MAILBOX_KHR = 1,
+    VK_PRESENT_MODE_FIFO_KHR = 2,
+    VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
+    VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
+    VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
+    VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkPresentModeKHR;
+
 typedef enum VkColorSpaceKHR {
     VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
     VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
@@ -5681,25 +5647,9 @@
     VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000,
     VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
     VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
-    VK_COLOR_SPACE_BEGIN_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
-    VK_COLOR_SPACE_END_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
-    VK_COLOR_SPACE_RANGE_SIZE_KHR = (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR + 1),
     VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
 } VkColorSpaceKHR;
 
-typedef enum VkPresentModeKHR {
-    VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
-    VK_PRESENT_MODE_MAILBOX_KHR = 1,
-    VK_PRESENT_MODE_FIFO_KHR = 2,
-    VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
-    VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
-    VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
-    VK_PRESENT_MODE_BEGIN_RANGE_KHR = VK_PRESENT_MODE_IMMEDIATE_KHR,
-    VK_PRESENT_MODE_END_RANGE_KHR = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
-    VK_PRESENT_MODE_RANGE_SIZE_KHR = (VK_PRESENT_MODE_FIFO_RELAXED_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1),
-    VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
-} VkPresentModeKHR;
-
 typedef enum VkSurfaceTransformFlagBitsKHR {
     VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
     VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
@@ -5712,7 +5662,6 @@
     VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
     VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
 } VkSurfaceTransformFlagBitsKHR;
-typedef VkFlags VkSurfaceTransformFlagsKHR;
 
 typedef enum VkCompositeAlphaFlagBitsKHR {
     VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
@@ -5722,6 +5671,7 @@
     VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
 } VkCompositeAlphaFlagBitsKHR;
 typedef VkFlags VkCompositeAlphaFlagsKHR;
+typedef VkFlags VkSurfaceTransformFlagsKHR;
 typedef struct VkSurfaceCapabilitiesKHR {
     uint32_t                         minImageCount;
     uint32_t                         maxImageCount;
@@ -5941,6 +5891,7 @@
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
 #define VK_KHR_DISPLAY_SPEC_VERSION       23
 #define VK_KHR_DISPLAY_EXTENSION_NAME     "VK_KHR_display"
+typedef VkFlags VkDisplayModeCreateFlagsKHR;
 
 typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
     VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
@@ -5950,28 +5901,12 @@
     VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
 } VkDisplayPlaneAlphaFlagBitsKHR;
 typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
-typedef VkFlags VkDisplayModeCreateFlagsKHR;
 typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
-typedef struct VkDisplayPropertiesKHR {
-    VkDisplayKHR                  display;
-    const char*                   displayName;
-    VkExtent2D                    physicalDimensions;
-    VkExtent2D                    physicalResolution;
-    VkSurfaceTransformFlagsKHR    supportedTransforms;
-    VkBool32                      planeReorderPossible;
-    VkBool32                      persistentContent;
-} VkDisplayPropertiesKHR;
-
 typedef struct VkDisplayModeParametersKHR {
     VkExtent2D    visibleRegion;
     uint32_t      refreshRate;
 } VkDisplayModeParametersKHR;
 
-typedef struct VkDisplayModePropertiesKHR {
-    VkDisplayModeKHR              displayMode;
-    VkDisplayModeParametersKHR    parameters;
-} VkDisplayModePropertiesKHR;
-
 typedef struct VkDisplayModeCreateInfoKHR {
     VkStructureType                sType;
     const void*                    pNext;
@@ -5979,6 +5914,11 @@
     VkDisplayModeParametersKHR     parameters;
 } VkDisplayModeCreateInfoKHR;
 
+typedef struct VkDisplayModePropertiesKHR {
+    VkDisplayModeKHR              displayMode;
+    VkDisplayModeParametersKHR    parameters;
+} VkDisplayModePropertiesKHR;
+
 typedef struct VkDisplayPlaneCapabilitiesKHR {
     VkDisplayPlaneAlphaFlagsKHR    supportedAlpha;
     VkOffset2D                     minSrcPosition;
@@ -5996,6 +5936,16 @@
     uint32_t        currentStackIndex;
 } VkDisplayPlanePropertiesKHR;
 
+typedef struct VkDisplayPropertiesKHR {
+    VkDisplayKHR                  display;
+    const char*                   displayName;
+    VkExtent2D                    physicalDimensions;
+    VkExtent2D                    physicalResolution;
+    VkSurfaceTransformFlagsKHR    supportedTransforms;
+    VkBool32                      planeReorderPossible;
+    VkBool32                      persistentContent;
+} VkDisplayPropertiesKHR;
+
 typedef struct VkDisplaySurfaceCreateInfoKHR {
     VkStructureType                   sType;
     const void*                       pNext;
@@ -6679,9 +6629,6 @@
     VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8,
     VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9,
     VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10,
-    VK_PERFORMANCE_COUNTER_UNIT_BEGIN_RANGE_KHR = VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR,
-    VK_PERFORMANCE_COUNTER_UNIT_END_RANGE_KHR = VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR,
-    VK_PERFORMANCE_COUNTER_UNIT_RANGE_SIZE_KHR = (VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR - VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR + 1),
     VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 0x7FFFFFFF
 } VkPerformanceCounterUnitKHR;
 
@@ -6692,9 +6639,6 @@
     VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
     VK_QUERY_SCOPE_RENDER_PASS_KHR = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
     VK_QUERY_SCOPE_COMMAND_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
-    VK_PERFORMANCE_COUNTER_SCOPE_BEGIN_RANGE_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
-    VK_PERFORMANCE_COUNTER_SCOPE_END_RANGE_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
-    VK_PERFORMANCE_COUNTER_SCOPE_RANGE_SIZE_KHR = (VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR + 1),
     VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
 } VkPerformanceCounterScopeKHR;
 
@@ -6705,9 +6649,6 @@
     VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3,
     VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4,
     VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5,
-    VK_PERFORMANCE_COUNTER_STORAGE_BEGIN_RANGE_KHR = VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR,
-    VK_PERFORMANCE_COUNTER_STORAGE_END_RANGE_KHR = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR,
-    VK_PERFORMANCE_COUNTER_STORAGE_RANGE_SIZE_KHR = (VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR - VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR + 1),
     VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 0x7FFFFFFF
 } VkPerformanceCounterStorageKHR;
 
@@ -6967,6 +6908,8 @@
 
 typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR;
 
+typedef VkMemoryRequirements2 VkMemoryRequirements2KHR;
+
 typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR;
 
 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
@@ -7303,9 +7246,6 @@
     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1,
     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2,
     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3,
-    VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BEGIN_RANGE_KHR = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR,
-    VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_END_RANGE_KHR = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR,
-    VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_RANGE_SIZE_KHR = (VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR + 1),
     VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 0x7FFFFFFF
 } VkPipelineExecutableStatisticFormatKHR;
 typedef struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
@@ -7387,6 +7327,11 @@
 #endif
 
 
+#define VK_KHR_shader_non_semantic_info 1
+#define VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION 1
+#define VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME "VK_KHR_shader_non_semantic_info"
+
+
 #define VK_EXT_debug_report 1
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
 #define VK_EXT_DEBUG_REPORT_SPEC_VERSION  9
@@ -7424,19 +7369,15 @@
     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
     VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
-    VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
-    VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000,
     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000,
-    VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000,
+    VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000165000,
     VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
     VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
     VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
     VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
-    VK_DEBUG_REPORT_OBJECT_TYPE_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
-    VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
-    VK_DEBUG_REPORT_OBJECT_TYPE_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT + 1),
+    VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT,
     VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkDebugReportObjectTypeEXT;
 
@@ -7517,9 +7458,6 @@
 typedef enum VkRasterizationOrderAMD {
     VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
     VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
-    VK_RASTERIZATION_ORDER_BEGIN_RANGE_AMD = VK_RASTERIZATION_ORDER_STRICT_AMD,
-    VK_RASTERIZATION_ORDER_END_RANGE_AMD = VK_RASTERIZATION_ORDER_RELAXED_AMD,
-    VK_RASTERIZATION_ORDER_RANGE_SIZE_AMD = (VK_RASTERIZATION_ORDER_RELAXED_AMD - VK_RASTERIZATION_ORDER_STRICT_AMD + 1),
     VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
 } VkRasterizationOrderAMD;
 typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
@@ -7713,7 +7651,7 @@
 
 
 #define VK_NVX_image_view_handle 1
-#define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 1
+#define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 2
 #define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle"
 typedef struct VkImageViewHandleInfoNVX {
     VkStructureType     sType;
@@ -7723,12 +7661,25 @@
     VkSampler           sampler;
 } VkImageViewHandleInfoNVX;
 
+typedef struct VkImageViewAddressPropertiesNVX {
+    VkStructureType    sType;
+    void*              pNext;
+    VkDeviceAddress    deviceAddress;
+    VkDeviceSize       size;
+} VkImageViewAddressPropertiesNVX;
+
 typedef uint32_t (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
+typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewAddressNVX)(VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties);
 
 #ifndef VK_NO_PROTOTYPES
 VKAPI_ATTR uint32_t VKAPI_CALL vkGetImageViewHandleNVX(
     VkDevice                                    device,
     const VkImageViewHandleInfoNVX*             pInfo);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewAddressNVX(
+    VkDevice                                    device,
+    VkImageView                                 imageView,
+    VkImageViewAddressPropertiesNVX*            pProperties);
 #endif
 
 
@@ -7793,9 +7744,6 @@
     VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
     VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
     VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
-    VK_SHADER_INFO_TYPE_BEGIN_RANGE_AMD = VK_SHADER_INFO_TYPE_STATISTICS_AMD,
-    VK_SHADER_INFO_TYPE_END_RANGE_AMD = VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD,
-    VK_SHADER_INFO_TYPE_RANGE_SIZE_AMD = (VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD - VK_SHADER_INFO_TYPE_STATISTICS_AMD + 1),
     VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF
 } VkShaderInfoTypeAMD;
 typedef struct VkShaderResourceUsageAMD {
@@ -7916,9 +7864,6 @@
 typedef enum VkValidationCheckEXT {
     VK_VALIDATION_CHECK_ALL_EXT = 0,
     VK_VALIDATION_CHECK_SHADERS_EXT = 1,
-    VK_VALIDATION_CHECK_BEGIN_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT,
-    VK_VALIDATION_CHECK_END_RANGE_EXT = VK_VALIDATION_CHECK_SHADERS_EXT,
-    VK_VALIDATION_CHECK_RANGE_SIZE_EXT = (VK_VALIDATION_CHECK_SHADERS_EXT - VK_VALIDATION_CHECK_ALL_EXT + 1),
     VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkValidationCheckEXT;
 typedef struct VkValidationFlagsEXT {
@@ -8011,229 +7956,6 @@
 #endif
 
 
-#define VK_NVX_device_generated_commands 1
-VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkObjectTableNVX)
-VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNVX)
-#define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
-#define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands"
-
-typedef enum VkIndirectCommandsTokenTypeNVX {
-    VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0,
-    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1,
-    VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = 2,
-    VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = 3,
-    VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = 4,
-    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = 5,
-    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = 6,
-    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = 7,
-    VK_INDIRECT_COMMANDS_TOKEN_TYPE_BEGIN_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX,
-    VK_INDIRECT_COMMANDS_TOKEN_TYPE_END_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX,
-    VK_INDIRECT_COMMANDS_TOKEN_TYPE_RANGE_SIZE_NVX = (VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX + 1),
-    VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF
-} VkIndirectCommandsTokenTypeNVX;
-
-typedef enum VkObjectEntryTypeNVX {
-    VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = 0,
-    VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = 1,
-    VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = 2,
-    VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = 3,
-    VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = 4,
-    VK_OBJECT_ENTRY_TYPE_BEGIN_RANGE_NVX = VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX,
-    VK_OBJECT_ENTRY_TYPE_END_RANGE_NVX = VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX,
-    VK_OBJECT_ENTRY_TYPE_RANGE_SIZE_NVX = (VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX - VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX + 1),
-    VK_OBJECT_ENTRY_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF
-} VkObjectEntryTypeNVX;
-
-typedef enum VkIndirectCommandsLayoutUsageFlagBitsNVX {
-    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001,
-    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002,
-    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004,
-    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008,
-    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF
-} VkIndirectCommandsLayoutUsageFlagBitsNVX;
-typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNVX;
-
-typedef enum VkObjectEntryUsageFlagBitsNVX {
-    VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001,
-    VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002,
-    VK_OBJECT_ENTRY_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF
-} VkObjectEntryUsageFlagBitsNVX;
-typedef VkFlags VkObjectEntryUsageFlagsNVX;
-typedef struct VkDeviceGeneratedCommandsFeaturesNVX {
-    VkStructureType    sType;
-    const void*        pNext;
-    VkBool32           computeBindingPointSupport;
-} VkDeviceGeneratedCommandsFeaturesNVX;
-
-typedef struct VkDeviceGeneratedCommandsLimitsNVX {
-    VkStructureType    sType;
-    const void*        pNext;
-    uint32_t           maxIndirectCommandsLayoutTokenCount;
-    uint32_t           maxObjectEntryCounts;
-    uint32_t           minSequenceCountBufferOffsetAlignment;
-    uint32_t           minSequenceIndexBufferOffsetAlignment;
-    uint32_t           minCommandsTokenBufferOffsetAlignment;
-} VkDeviceGeneratedCommandsLimitsNVX;
-
-typedef struct VkIndirectCommandsTokenNVX {
-    VkIndirectCommandsTokenTypeNVX    tokenType;
-    VkBuffer                          buffer;
-    VkDeviceSize                      offset;
-} VkIndirectCommandsTokenNVX;
-
-typedef struct VkIndirectCommandsLayoutTokenNVX {
-    VkIndirectCommandsTokenTypeNVX    tokenType;
-    uint32_t                          bindingUnit;
-    uint32_t                          dynamicCount;
-    uint32_t                          divisor;
-} VkIndirectCommandsLayoutTokenNVX;
-
-typedef struct VkIndirectCommandsLayoutCreateInfoNVX {
-    VkStructureType                            sType;
-    const void*                                pNext;
-    VkPipelineBindPoint                        pipelineBindPoint;
-    VkIndirectCommandsLayoutUsageFlagsNVX      flags;
-    uint32_t                                   tokenCount;
-    const VkIndirectCommandsLayoutTokenNVX*    pTokens;
-} VkIndirectCommandsLayoutCreateInfoNVX;
-
-typedef struct VkCmdProcessCommandsInfoNVX {
-    VkStructureType                      sType;
-    const void*                          pNext;
-    VkObjectTableNVX                     objectTable;
-    VkIndirectCommandsLayoutNVX          indirectCommandsLayout;
-    uint32_t                             indirectCommandsTokenCount;
-    const VkIndirectCommandsTokenNVX*    pIndirectCommandsTokens;
-    uint32_t                             maxSequencesCount;
-    VkCommandBuffer                      targetCommandBuffer;
-    VkBuffer                             sequencesCountBuffer;
-    VkDeviceSize                         sequencesCountOffset;
-    VkBuffer                             sequencesIndexBuffer;
-    VkDeviceSize                         sequencesIndexOffset;
-} VkCmdProcessCommandsInfoNVX;
-
-typedef struct VkCmdReserveSpaceForCommandsInfoNVX {
-    VkStructureType                sType;
-    const void*                    pNext;
-    VkObjectTableNVX               objectTable;
-    VkIndirectCommandsLayoutNVX    indirectCommandsLayout;
-    uint32_t                       maxSequencesCount;
-} VkCmdReserveSpaceForCommandsInfoNVX;
-
-typedef struct VkObjectTableCreateInfoNVX {
-    VkStructureType                      sType;
-    const void*                          pNext;
-    uint32_t                             objectCount;
-    const VkObjectEntryTypeNVX*          pObjectEntryTypes;
-    const uint32_t*                      pObjectEntryCounts;
-    const VkObjectEntryUsageFlagsNVX*    pObjectEntryUsageFlags;
-    uint32_t                             maxUniformBuffersPerDescriptor;
-    uint32_t                             maxStorageBuffersPerDescriptor;
-    uint32_t                             maxStorageImagesPerDescriptor;
-    uint32_t                             maxSampledImagesPerDescriptor;
-    uint32_t                             maxPipelineLayouts;
-} VkObjectTableCreateInfoNVX;
-
-typedef struct VkObjectTableEntryNVX {
-    VkObjectEntryTypeNVX          type;
-    VkObjectEntryUsageFlagsNVX    flags;
-} VkObjectTableEntryNVX;
-
-typedef struct VkObjectTablePipelineEntryNVX {
-    VkObjectEntryTypeNVX          type;
-    VkObjectEntryUsageFlagsNVX    flags;
-    VkPipeline                    pipeline;
-} VkObjectTablePipelineEntryNVX;
-
-typedef struct VkObjectTableDescriptorSetEntryNVX {
-    VkObjectEntryTypeNVX          type;
-    VkObjectEntryUsageFlagsNVX    flags;
-    VkPipelineLayout              pipelineLayout;
-    VkDescriptorSet               descriptorSet;
-} VkObjectTableDescriptorSetEntryNVX;
-
-typedef struct VkObjectTableVertexBufferEntryNVX {
-    VkObjectEntryTypeNVX          type;
-    VkObjectEntryUsageFlagsNVX    flags;
-    VkBuffer                      buffer;
-} VkObjectTableVertexBufferEntryNVX;
-
-typedef struct VkObjectTableIndexBufferEntryNVX {
-    VkObjectEntryTypeNVX          type;
-    VkObjectEntryUsageFlagsNVX    flags;
-    VkBuffer                      buffer;
-    VkIndexType                   indexType;
-} VkObjectTableIndexBufferEntryNVX;
-
-typedef struct VkObjectTablePushConstantEntryNVX {
-    VkObjectEntryTypeNVX          type;
-    VkObjectEntryUsageFlagsNVX    flags;
-    VkPipelineLayout              pipelineLayout;
-    VkShaderStageFlags            stageFlags;
-} VkObjectTablePushConstantEntryNVX;
-
-typedef void (VKAPI_PTR *PFN_vkCmdProcessCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo);
-typedef void (VKAPI_PTR *PFN_vkCmdReserveSpaceForCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo);
-typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNVX)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout);
-typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNVX)(VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
-typedef VkResult (VKAPI_PTR *PFN_vkCreateObjectTableNVX)(VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable);
-typedef void (VKAPI_PTR *PFN_vkDestroyObjectTableNVX)(VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator);
-typedef VkResult (VKAPI_PTR *PFN_vkRegisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectTableEntryNVX* const*    ppObjectTableEntries, const uint32_t* pObjectIndices);
-typedef VkResult (VKAPI_PTR *PFN_vkUnregisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const uint32_t* pObjectIndices);
-typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX)(VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits);
-
-#ifndef VK_NO_PROTOTYPES
-VKAPI_ATTR void VKAPI_CALL vkCmdProcessCommandsNVX(
-    VkCommandBuffer                             commandBuffer,
-    const VkCmdProcessCommandsInfoNVX*          pProcessCommandsInfo);
-
-VKAPI_ATTR void VKAPI_CALL vkCmdReserveSpaceForCommandsNVX(
-    VkCommandBuffer                             commandBuffer,
-    const VkCmdReserveSpaceForCommandsInfoNVX*  pReserveSpaceInfo);
-
-VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNVX(
-    VkDevice                                    device,
-    const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
-    const VkAllocationCallbacks*                pAllocator,
-    VkIndirectCommandsLayoutNVX*                pIndirectCommandsLayout);
-
-VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNVX(
-    VkDevice                                    device,
-    VkIndirectCommandsLayoutNVX                 indirectCommandsLayout,
-    const VkAllocationCallbacks*                pAllocator);
-
-VKAPI_ATTR VkResult VKAPI_CALL vkCreateObjectTableNVX(
-    VkDevice                                    device,
-    const VkObjectTableCreateInfoNVX*           pCreateInfo,
-    const VkAllocationCallbacks*                pAllocator,
-    VkObjectTableNVX*                           pObjectTable);
-
-VKAPI_ATTR void VKAPI_CALL vkDestroyObjectTableNVX(
-    VkDevice                                    device,
-    VkObjectTableNVX                            objectTable,
-    const VkAllocationCallbacks*                pAllocator);
-
-VKAPI_ATTR VkResult VKAPI_CALL vkRegisterObjectsNVX(
-    VkDevice                                    device,
-    VkObjectTableNVX                            objectTable,
-    uint32_t                                    objectCount,
-    const VkObjectTableEntryNVX* const*         ppObjectTableEntries,
-    const uint32_t*                             pObjectIndices);
-
-VKAPI_ATTR VkResult VKAPI_CALL vkUnregisterObjectsNVX(
-    VkDevice                                    device,
-    VkObjectTableNVX                            objectTable,
-    uint32_t                                    objectCount,
-    const VkObjectEntryTypeNVX*                 pObjectEntryTypes,
-    const uint32_t*                             pObjectIndices);
-
-VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
-    VkPhysicalDevice                            physicalDevice,
-    VkDeviceGeneratedCommandsFeaturesNVX*       pFeatures,
-    VkDeviceGeneratedCommandsLimitsNVX*         pLimits);
-#endif
-
-
 #define VK_NV_clip_space_w_scaling 1
 #define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
 #define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
@@ -8316,25 +8038,16 @@
     VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
     VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
     VK_DISPLAY_POWER_STATE_ON_EXT = 2,
-    VK_DISPLAY_POWER_STATE_BEGIN_RANGE_EXT = VK_DISPLAY_POWER_STATE_OFF_EXT,
-    VK_DISPLAY_POWER_STATE_END_RANGE_EXT = VK_DISPLAY_POWER_STATE_ON_EXT,
-    VK_DISPLAY_POWER_STATE_RANGE_SIZE_EXT = (VK_DISPLAY_POWER_STATE_ON_EXT - VK_DISPLAY_POWER_STATE_OFF_EXT + 1),
     VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkDisplayPowerStateEXT;
 
 typedef enum VkDeviceEventTypeEXT {
     VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
-    VK_DEVICE_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT,
-    VK_DEVICE_EVENT_TYPE_END_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT,
-    VK_DEVICE_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT + 1),
     VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkDeviceEventTypeEXT;
 
 typedef enum VkDisplayEventTypeEXT {
     VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
-    VK_DISPLAY_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT,
-    VK_DISPLAY_EVENT_TYPE_END_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT,
-    VK_DISPLAY_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT + 1),
     VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkDisplayEventTypeEXT;
 typedef struct VkDisplayPowerInfoEXT {
@@ -8476,9 +8189,6 @@
     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
     VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
     VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
-    VK_VIEWPORT_COORDINATE_SWIZZLE_BEGIN_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV,
-    VK_VIEWPORT_COORDINATE_SWIZZLE_END_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV,
-    VK_VIEWPORT_COORDINATE_SWIZZLE_RANGE_SIZE_NV = (VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV + 1),
     VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF
 } VkViewportCoordinateSwizzleNV;
 typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV;
@@ -8506,9 +8216,6 @@
 typedef enum VkDiscardRectangleModeEXT {
     VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
     VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
-    VK_DISCARD_RECTANGLE_MODE_BEGIN_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT,
-    VK_DISCARD_RECTANGLE_MODE_END_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT,
-    VK_DISCARD_RECTANGLE_MODE_RANGE_SIZE_EXT = (VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT + 1),
     VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkDiscardRectangleModeEXT;
 typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
@@ -8546,9 +8253,6 @@
     VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
     VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
     VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
-    VK_CONSERVATIVE_RASTERIZATION_MODE_BEGIN_RANGE_EXT = VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT,
-    VK_CONSERVATIVE_RASTERIZATION_MODE_END_RANGE_EXT = VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT,
-    VK_CONSERVATIVE_RASTERIZATION_MODE_RANGE_SIZE_EXT = (VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT - VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT + 1),
     VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkConservativeRasterizationModeEXT;
 typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT;
@@ -8645,10 +8349,9 @@
 
 #define VK_EXT_debug_utils 1
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT)
-#define VK_EXT_DEBUG_UTILS_SPEC_VERSION   1
+#define VK_EXT_DEBUG_UTILS_SPEC_VERSION   2
 #define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
 typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT;
-typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT;
 
 typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT {
     VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
@@ -8657,7 +8360,6 @@
     VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
     VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkDebugUtilsMessageSeverityFlagBitsEXT;
-typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT;
 
 typedef enum VkDebugUtilsMessageTypeFlagBitsEXT {
     VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
@@ -8666,6 +8368,15 @@
     VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkDebugUtilsMessageTypeFlagBitsEXT;
 typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT;
+typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT;
+typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT;
+typedef struct VkDebugUtilsLabelEXT {
+    VkStructureType    sType;
+    const void*        pNext;
+    const char*        pLabelName;
+    float              color[4];
+} VkDebugUtilsLabelEXT;
+
 typedef struct VkDebugUtilsObjectNameInfoEXT {
     VkStructureType    sType;
     const void*        pNext;
@@ -8674,23 +8385,6 @@
     const char*        pObjectName;
 } VkDebugUtilsObjectNameInfoEXT;
 
-typedef struct VkDebugUtilsObjectTagInfoEXT {
-    VkStructureType    sType;
-    const void*        pNext;
-    VkObjectType       objectType;
-    uint64_t           objectHandle;
-    uint64_t           tagName;
-    size_t             tagSize;
-    const void*        pTag;
-} VkDebugUtilsObjectTagInfoEXT;
-
-typedef struct VkDebugUtilsLabelEXT {
-    VkStructureType    sType;
-    const void*        pNext;
-    const char*        pLabelName;
-    float              color[4];
-} VkDebugUtilsLabelEXT;
-
 typedef struct VkDebugUtilsMessengerCallbackDataEXT {
     VkStructureType                              sType;
     const void*                                  pNext;
@@ -8722,6 +8416,16 @@
     void*                                   pUserData;
 } VkDebugUtilsMessengerCreateInfoEXT;
 
+typedef struct VkDebugUtilsObjectTagInfoEXT {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkObjectType       objectType;
+    uint64_t           objectHandle;
+    uint64_t           tagName;
+    size_t             tagSize;
+    const void*        pTag;
+} VkDebugUtilsObjectTagInfoEXT;
+
 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
 typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
@@ -8932,9 +8636,6 @@
     VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
     VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
     VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
-    VK_BLEND_OVERLAP_BEGIN_RANGE_EXT = VK_BLEND_OVERLAP_UNCORRELATED_EXT,
-    VK_BLEND_OVERLAP_END_RANGE_EXT = VK_BLEND_OVERLAP_CONJOINT_EXT,
-    VK_BLEND_OVERLAP_RANGE_SIZE_EXT = (VK_BLEND_OVERLAP_CONJOINT_EXT - VK_BLEND_OVERLAP_UNCORRELATED_EXT + 1),
     VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkBlendOverlapEXT;
 typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
@@ -8987,9 +8688,6 @@
     VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
     VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
     VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
-    VK_COVERAGE_MODULATION_MODE_BEGIN_RANGE_NV = VK_COVERAGE_MODULATION_MODE_NONE_NV,
-    VK_COVERAGE_MODULATION_MODE_END_RANGE_NV = VK_COVERAGE_MODULATION_MODE_RGBA_NV,
-    VK_COVERAGE_MODULATION_MODE_RANGE_SIZE_NV = (VK_COVERAGE_MODULATION_MODE_RGBA_NV - VK_COVERAGE_MODULATION_MODE_NONE_NV + 1),
     VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
 } VkCoverageModulationModeNV;
 typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV;
@@ -9096,9 +8794,6 @@
 
 typedef enum VkValidationCacheHeaderVersionEXT {
     VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
-    VK_VALIDATION_CACHE_HEADER_VERSION_BEGIN_RANGE_EXT = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT,
-    VK_VALIDATION_CACHE_HEADER_VERSION_END_RANGE_EXT = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT,
-    VK_VALIDATION_CACHE_HEADER_VERSION_RANGE_SIZE_EXT = (VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT + 1),
     VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkValidationCacheHeaderVersionEXT;
 typedef VkFlags VkValidationCacheCreateFlagsEXT;
@@ -9188,9 +8883,6 @@
     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
     VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
-    VK_SHADING_RATE_PALETTE_ENTRY_BEGIN_RANGE_NV = VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV,
-    VK_SHADING_RATE_PALETTE_ENTRY_END_RANGE_NV = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV,
-    VK_SHADING_RATE_PALETTE_ENTRY_RANGE_SIZE_NV = (VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV - VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV + 1),
     VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF
 } VkShadingRatePaletteEntryNV;
 
@@ -9199,9 +8891,6 @@
     VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
     VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
     VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
-    VK_COARSE_SAMPLE_ORDER_TYPE_BEGIN_RANGE_NV = VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV,
-    VK_COARSE_SAMPLE_ORDER_TYPE_END_RANGE_NV = VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV,
-    VK_COARSE_SAMPLE_ORDER_TYPE_RANGE_SIZE_NV = (VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV - VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV + 1),
     VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
 } VkCoarseSampleOrderTypeNV;
 typedef struct VkShadingRatePaletteNV {
@@ -9278,91 +8967,127 @@
 
 
 #define VK_NV_ray_tracing 1
-VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV)
+VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR)
+typedef VkAccelerationStructureKHR VkAccelerationStructureNV;
+
 #define VK_NV_RAY_TRACING_SPEC_VERSION    3
 #define VK_NV_RAY_TRACING_EXTENSION_NAME  "VK_NV_ray_tracing"
-#define VK_SHADER_UNUSED_NV               (~0U)
+#define VK_SHADER_UNUSED_KHR              (~0U)
+#define VK_SHADER_UNUSED_NV               VK_SHADER_UNUSED_KHR
 
-typedef enum VkAccelerationStructureTypeNV {
-    VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0,
-    VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1,
-    VK_ACCELERATION_STRUCTURE_TYPE_BEGIN_RANGE_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV,
-    VK_ACCELERATION_STRUCTURE_TYPE_END_RANGE_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV,
-    VK_ACCELERATION_STRUCTURE_TYPE_RANGE_SIZE_NV = (VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV + 1),
-    VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
-} VkAccelerationStructureTypeNV;
+typedef enum VkRayTracingShaderGroupTypeKHR {
+    VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0,
+    VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1,
+    VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2,
+    VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
+    VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
+    VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR,
+    VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkRayTracingShaderGroupTypeKHR;
+typedef VkRayTracingShaderGroupTypeKHR VkRayTracingShaderGroupTypeNV;
 
-typedef enum VkRayTracingShaderGroupTypeNV {
-    VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0,
-    VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1,
-    VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2,
-    VK_RAY_TRACING_SHADER_GROUP_TYPE_BEGIN_RANGE_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV,
-    VK_RAY_TRACING_SHADER_GROUP_TYPE_END_RANGE_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV,
-    VK_RAY_TRACING_SHADER_GROUP_TYPE_RANGE_SIZE_NV = (VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV + 1),
-    VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
-} VkRayTracingShaderGroupTypeNV;
 
-typedef enum VkGeometryTypeNV {
-    VK_GEOMETRY_TYPE_TRIANGLES_NV = 0,
-    VK_GEOMETRY_TYPE_AABBS_NV = 1,
-    VK_GEOMETRY_TYPE_BEGIN_RANGE_NV = VK_GEOMETRY_TYPE_TRIANGLES_NV,
-    VK_GEOMETRY_TYPE_END_RANGE_NV = VK_GEOMETRY_TYPE_AABBS_NV,
-    VK_GEOMETRY_TYPE_RANGE_SIZE_NV = (VK_GEOMETRY_TYPE_AABBS_NV - VK_GEOMETRY_TYPE_TRIANGLES_NV + 1),
-    VK_GEOMETRY_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
-} VkGeometryTypeNV;
+typedef enum VkGeometryTypeKHR {
+    VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0,
+    VK_GEOMETRY_TYPE_AABBS_KHR = 1,
+    VK_GEOMETRY_TYPE_INSTANCES_KHR = 1000150000,
+    VK_GEOMETRY_TYPE_TRIANGLES_NV = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
+    VK_GEOMETRY_TYPE_AABBS_NV = VK_GEOMETRY_TYPE_AABBS_KHR,
+    VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkGeometryTypeKHR;
+typedef VkGeometryTypeKHR VkGeometryTypeNV;
 
-typedef enum VkCopyAccelerationStructureModeNV {
-    VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0,
-    VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1,
-    VK_COPY_ACCELERATION_STRUCTURE_MODE_BEGIN_RANGE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV,
-    VK_COPY_ACCELERATION_STRUCTURE_MODE_END_RANGE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV,
-    VK_COPY_ACCELERATION_STRUCTURE_MODE_RANGE_SIZE_NV = (VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV + 1),
-    VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_NV = 0x7FFFFFFF
-} VkCopyAccelerationStructureModeNV;
 
-typedef enum VkAccelerationStructureMemoryRequirementsTypeNV {
-    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0,
-    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1,
-    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2,
-    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BEGIN_RANGE_NV = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV,
-    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_END_RANGE_NV = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV,
-    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_RANGE_SIZE_NV = (VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV + 1),
-    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
-} VkAccelerationStructureMemoryRequirementsTypeNV;
+typedef enum VkAccelerationStructureTypeKHR {
+    VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0,
+    VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1,
+    VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
+    VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
+    VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkAccelerationStructureTypeKHR;
+typedef VkAccelerationStructureTypeKHR VkAccelerationStructureTypeNV;
 
-typedef enum VkGeometryFlagBitsNV {
-    VK_GEOMETRY_OPAQUE_BIT_NV = 0x00000001,
-    VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 0x00000002,
-    VK_GEOMETRY_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
-} VkGeometryFlagBitsNV;
-typedef VkFlags VkGeometryFlagsNV;
 
-typedef enum VkGeometryInstanceFlagBitsNV {
-    VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 0x00000001,
-    VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 0x00000002,
-    VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 0x00000004,
-    VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 0x00000008,
-    VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
-} VkGeometryInstanceFlagBitsNV;
-typedef VkFlags VkGeometryInstanceFlagsNV;
+typedef enum VkCopyAccelerationStructureModeKHR {
+    VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0,
+    VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1,
+    VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2,
+    VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3,
+    VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
+    VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
+    VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkCopyAccelerationStructureModeKHR;
+typedef VkCopyAccelerationStructureModeKHR VkCopyAccelerationStructureModeNV;
 
-typedef enum VkBuildAccelerationStructureFlagBitsNV {
-    VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 0x00000001,
-    VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 0x00000002,
-    VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 0x00000004,
-    VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 0x00000008,
-    VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 0x00000010,
-    VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
-} VkBuildAccelerationStructureFlagBitsNV;
-typedef VkFlags VkBuildAccelerationStructureFlagsNV;
+
+typedef enum VkAccelerationStructureMemoryRequirementsTypeKHR {
+    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR = 0,
+    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_KHR = 1,
+    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_KHR = 2,
+    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR,
+    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_KHR,
+    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_KHR,
+    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkAccelerationStructureMemoryRequirementsTypeKHR;
+typedef VkAccelerationStructureMemoryRequirementsTypeKHR VkAccelerationStructureMemoryRequirementsTypeNV;
+
+
+typedef enum VkGeometryFlagBitsKHR {
+    VK_GEOMETRY_OPAQUE_BIT_KHR = 0x00000001,
+    VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 0x00000002,
+    VK_GEOMETRY_OPAQUE_BIT_NV = VK_GEOMETRY_OPAQUE_BIT_KHR,
+    VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,
+    VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkGeometryFlagBitsKHR;
+typedef VkFlags VkGeometryFlagsKHR;
+typedef VkGeometryFlagsKHR VkGeometryFlagsNV;
+
+typedef VkGeometryFlagBitsKHR VkGeometryFlagBitsNV;
+
+
+typedef enum VkGeometryInstanceFlagBitsKHR {
+    VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 0x00000001,
+    VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 0x00000002,
+    VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0x00000004,
+    VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0x00000008,
+    VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
+    VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
+    VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
+    VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
+    VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkGeometryInstanceFlagBitsKHR;
+typedef VkFlags VkGeometryInstanceFlagsKHR;
+typedef VkGeometryInstanceFlagsKHR VkGeometryInstanceFlagsNV;
+
+typedef VkGeometryInstanceFlagBitsKHR VkGeometryInstanceFlagBitsNV;
+
+
+typedef enum VkBuildAccelerationStructureFlagBitsKHR {
+    VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 0x00000001,
+    VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 0x00000002,
+    VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 0x00000004,
+    VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 0x00000008,
+    VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 0x00000010,
+    VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
+    VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
+    VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
+    VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
+    VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,
+    VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
+} VkBuildAccelerationStructureFlagBitsKHR;
+typedef VkFlags VkBuildAccelerationStructureFlagsKHR;
+typedef VkBuildAccelerationStructureFlagsKHR VkBuildAccelerationStructureFlagsNV;
+
+typedef VkBuildAccelerationStructureFlagBitsKHR VkBuildAccelerationStructureFlagBitsNV;
+
 typedef struct VkRayTracingShaderGroupCreateInfoNV {
-    VkStructureType                  sType;
-    const void*                      pNext;
-    VkRayTracingShaderGroupTypeNV    type;
-    uint32_t                         generalShader;
-    uint32_t                         closestHitShader;
-    uint32_t                         anyHitShader;
-    uint32_t                         intersectionShader;
+    VkStructureType                   sType;
+    const void*                       pNext;
+    VkRayTracingShaderGroupTypeKHR    type;
+    uint32_t                          generalShader;
+    uint32_t                          closestHitShader;
+    uint32_t                          anyHitShader;
+    uint32_t                          intersectionShader;
 } VkRayTracingShaderGroupCreateInfoNV;
 
 typedef struct VkRayTracingPipelineCreateInfoNV {
@@ -9410,11 +9135,11 @@
 } VkGeometryDataNV;
 
 typedef struct VkGeometryNV {
-    VkStructureType      sType;
-    const void*          pNext;
-    VkGeometryTypeNV     geometryType;
-    VkGeometryDataNV     geometry;
-    VkGeometryFlagsNV    flags;
+    VkStructureType       sType;
+    const void*           pNext;
+    VkGeometryTypeKHR     geometryType;
+    VkGeometryDataNV      geometry;
+    VkGeometryFlagsKHR    flags;
 } VkGeometryNV;
 
 typedef struct VkAccelerationStructureInfoNV {
@@ -9434,22 +9159,26 @@
     VkAccelerationStructureInfoNV    info;
 } VkAccelerationStructureCreateInfoNV;
 
-typedef struct VkBindAccelerationStructureMemoryInfoNV {
-    VkStructureType              sType;
-    const void*                  pNext;
-    VkAccelerationStructureNV    accelerationStructure;
-    VkDeviceMemory               memory;
-    VkDeviceSize                 memoryOffset;
-    uint32_t                     deviceIndexCount;
-    const uint32_t*              pDeviceIndices;
-} VkBindAccelerationStructureMemoryInfoNV;
+typedef struct VkBindAccelerationStructureMemoryInfoKHR {
+    VkStructureType               sType;
+    const void*                   pNext;
+    VkAccelerationStructureKHR    accelerationStructure;
+    VkDeviceMemory                memory;
+    VkDeviceSize                  memoryOffset;
+    uint32_t                      deviceIndexCount;
+    const uint32_t*               pDeviceIndices;
+} VkBindAccelerationStructureMemoryInfoKHR;
 
-typedef struct VkWriteDescriptorSetAccelerationStructureNV {
-    VkStructureType                     sType;
-    const void*                         pNext;
-    uint32_t                            accelerationStructureCount;
-    const VkAccelerationStructureNV*    pAccelerationStructures;
-} VkWriteDescriptorSetAccelerationStructureNV;
+typedef VkBindAccelerationStructureMemoryInfoKHR VkBindAccelerationStructureMemoryInfoNV;
+
+typedef struct VkWriteDescriptorSetAccelerationStructureKHR {
+    VkStructureType                      sType;
+    const void*                          pNext;
+    uint32_t                             accelerationStructureCount;
+    const VkAccelerationStructureKHR*    pAccelerationStructures;
+} VkWriteDescriptorSetAccelerationStructureKHR;
+
+typedef VkWriteDescriptorSetAccelerationStructureKHR VkWriteDescriptorSetAccelerationStructureNV;
 
 typedef struct VkAccelerationStructureMemoryRequirementsInfoNV {
     VkStructureType                                    sType;
@@ -9471,17 +9200,49 @@
     uint32_t           maxDescriptorSetAccelerationStructures;
 } VkPhysicalDeviceRayTracingPropertiesNV;
 
+typedef struct VkTransformMatrixKHR {
+    float    matrix[3][4];
+} VkTransformMatrixKHR;
+
+typedef VkTransformMatrixKHR VkTransformMatrixNV;
+
+typedef struct VkAabbPositionsKHR {
+    float    minX;
+    float    minY;
+    float    minZ;
+    float    maxX;
+    float    maxY;
+    float    maxZ;
+} VkAabbPositionsKHR;
+
+typedef VkAabbPositionsKHR VkAabbPositionsNV;
+
+typedef struct VkAccelerationStructureInstanceKHR {
+    VkTransformMatrixKHR          transform;
+    uint32_t                      instanceCustomIndex:24;
+    uint32_t                      mask:8;
+    uint32_t                      instanceShaderBindingTableRecordOffset:24;
+    VkGeometryInstanceFlagsKHR    flags:8;
+    uint64_t                      accelerationStructureReference;
+} VkAccelerationStructureInstanceKHR;
+
+typedef VkAccelerationStructureInstanceKHR VkAccelerationStructureInstanceNV;
+
 typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure);
-typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator);
+typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureKHR)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator);
+typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator);
 typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements);
-typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
-typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureNV)(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset);
-typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeNV mode);
+typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryKHR)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos);
+typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos);
+typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureNV)(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureKHR dst, VkAccelerationStructureKHR src, VkBuffer scratch, VkDeviceSize scratchOffset);
+typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureKHR dst, VkAccelerationStructureKHR src, VkCopyAccelerationStructureModeKHR mode);
 typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysNV)(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth);
 typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesNV)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
+typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesNV)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
-typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData);
-typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
+typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, size_t dataSize, void* pData);
+typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
+typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
 typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNV)(VkDevice device, VkPipeline pipeline, uint32_t shader);
 
 #ifndef VK_NO_PROTOTYPES
@@ -9491,9 +9252,14 @@
     const VkAllocationCallbacks*                pAllocator,
     VkAccelerationStructureNV*                  pAccelerationStructure);
 
+VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureKHR(
+    VkDevice                                    device,
+    VkAccelerationStructureKHR                  accelerationStructure,
+    const VkAllocationCallbacks*                pAllocator);
+
 VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNV(
     VkDevice                                    device,
-    VkAccelerationStructureNV                   accelerationStructure,
+    VkAccelerationStructureKHR                  accelerationStructure,
     const VkAllocationCallbacks*                pAllocator);
 
 VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNV(
@@ -9501,10 +9267,15 @@
     const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
     VkMemoryRequirements2KHR*                   pMemoryRequirements);
 
+VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryKHR(
+    VkDevice                                    device,
+    uint32_t                                    bindInfoCount,
+    const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos);
+
 VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNV(
     VkDevice                                    device,
     uint32_t                                    bindInfoCount,
-    const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
+    const VkBindAccelerationStructureMemoryInfoKHR* pBindInfos);
 
 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNV(
     VkCommandBuffer                             commandBuffer,
@@ -9512,16 +9283,16 @@
     VkBuffer                                    instanceData,
     VkDeviceSize                                instanceOffset,
     VkBool32                                    update,
-    VkAccelerationStructureNV                   dst,
-    VkAccelerationStructureNV                   src,
+    VkAccelerationStructureKHR                  dst,
+    VkAccelerationStructureKHR                  src,
     VkBuffer                                    scratch,
     VkDeviceSize                                scratchOffset);
 
 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNV(
     VkCommandBuffer                             commandBuffer,
-    VkAccelerationStructureNV                   dst,
-    VkAccelerationStructureNV                   src,
-    VkCopyAccelerationStructureModeNV           mode);
+    VkAccelerationStructureKHR                  dst,
+    VkAccelerationStructureKHR                  src,
+    VkCopyAccelerationStructureModeKHR          mode);
 
 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNV(
     VkCommandBuffer                             commandBuffer,
@@ -9548,6 +9319,14 @@
     const VkAllocationCallbacks*                pAllocator,
     VkPipeline*                                 pPipelines);
 
+VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesKHR(
+    VkDevice                                    device,
+    VkPipeline                                  pipeline,
+    uint32_t                                    firstGroup,
+    uint32_t                                    groupCount,
+    size_t                                      dataSize,
+    void*                                       pData);
+
 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesNV(
     VkDevice                                    device,
     VkPipeline                                  pipeline,
@@ -9558,14 +9337,22 @@
 
 VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNV(
     VkDevice                                    device,
-    VkAccelerationStructureNV                   accelerationStructure,
+    VkAccelerationStructureKHR                  accelerationStructure,
     size_t                                      dataSize,
     void*                                       pData);
 
+VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesKHR(
+    VkCommandBuffer                             commandBuffer,
+    uint32_t                                    accelerationStructureCount,
+    const VkAccelerationStructureKHR*           pAccelerationStructures,
+    VkQueryType                                 queryType,
+    VkQueryPool                                 queryPool,
+    uint32_t                                    firstQuery);
+
 VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesNV(
     VkCommandBuffer                             commandBuffer,
     uint32_t                                    accelerationStructureCount,
-    const VkAccelerationStructureNV*            pAccelerationStructures,
+    const VkAccelerationStructureKHR*           pAccelerationStructures,
     VkQueryType                                 queryType,
     VkQueryPool                                 queryPool,
     uint32_t                                    firstQuery);
@@ -9612,6 +9399,11 @@
 
 
 
+#define VK_QCOM_render_pass_shader_resolve 1
+#define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION 4
+#define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME "VK_QCOM_render_pass_shader_resolve"
+
+
 #define VK_EXT_global_priority 1
 #define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2
 #define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
@@ -9621,9 +9413,6 @@
     VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256,
     VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512,
     VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024,
-    VK_QUEUE_GLOBAL_PRIORITY_BEGIN_RANGE_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT,
-    VK_QUEUE_GLOBAL_PRIORITY_END_RANGE_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT,
-    VK_QUEUE_GLOBAL_PRIORITY_RANGE_SIZE_EXT = (VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT - VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT + 1),
     VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkQueueGlobalPriorityEXT;
 typedef struct VkDeviceQueueGlobalPriorityCreateInfoEXT {
@@ -9707,9 +9496,6 @@
     VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1,
     VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2,
     VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3,
-    VK_TIME_DOMAIN_BEGIN_RANGE_EXT = VK_TIME_DOMAIN_DEVICE_EXT,
-    VK_TIME_DOMAIN_END_RANGE_EXT = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT,
-    VK_TIME_DOMAIN_RANGE_SIZE_EXT = (VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT - VK_TIME_DOMAIN_DEVICE_EXT + 1),
     VK_TIME_DOMAIN_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkTimeDomainEXT;
 typedef struct VkCalibratedTimestampInfoEXT {
@@ -9768,9 +9554,6 @@
     VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0,
     VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1,
     VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2,
-    VK_MEMORY_OVERALLOCATION_BEHAVIOR_BEGIN_RANGE_AMD = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD,
-    VK_MEMORY_OVERALLOCATION_BEHAVIOR_END_RANGE_AMD = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD,
-    VK_MEMORY_OVERALLOCATION_BEHAVIOR_RANGE_SIZE_AMD = (VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD + 1),
     VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 0x7FFFFFFF
 } VkMemoryOverallocationBehaviorAMD;
 typedef struct VkDeviceMemoryOverallocationCreateInfoAMD {
@@ -10008,40 +9791,28 @@
 
 #define VK_INTEL_performance_query 1
 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL)
-#define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 1
+#define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 2
 #define VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME "VK_INTEL_performance_query"
 
 typedef enum VkPerformanceConfigurationTypeINTEL {
     VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0,
-    VK_PERFORMANCE_CONFIGURATION_TYPE_BEGIN_RANGE_INTEL = VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL,
-    VK_PERFORMANCE_CONFIGURATION_TYPE_END_RANGE_INTEL = VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL,
-    VK_PERFORMANCE_CONFIGURATION_TYPE_RANGE_SIZE_INTEL = (VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL - VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL + 1),
     VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
 } VkPerformanceConfigurationTypeINTEL;
 
 typedef enum VkQueryPoolSamplingModeINTEL {
     VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0,
-    VK_QUERY_POOL_SAMPLING_MODE_BEGIN_RANGE_INTEL = VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL,
-    VK_QUERY_POOL_SAMPLING_MODE_END_RANGE_INTEL = VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL,
-    VK_QUERY_POOL_SAMPLING_MODE_RANGE_SIZE_INTEL = (VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL - VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL + 1),
     VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 0x7FFFFFFF
 } VkQueryPoolSamplingModeINTEL;
 
 typedef enum VkPerformanceOverrideTypeINTEL {
     VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0,
     VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1,
-    VK_PERFORMANCE_OVERRIDE_TYPE_BEGIN_RANGE_INTEL = VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL,
-    VK_PERFORMANCE_OVERRIDE_TYPE_END_RANGE_INTEL = VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL,
-    VK_PERFORMANCE_OVERRIDE_TYPE_RANGE_SIZE_INTEL = (VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL - VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL + 1),
     VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
 } VkPerformanceOverrideTypeINTEL;
 
 typedef enum VkPerformanceParameterTypeINTEL {
     VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0,
     VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1,
-    VK_PERFORMANCE_PARAMETER_TYPE_BEGIN_RANGE_INTEL = VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL,
-    VK_PERFORMANCE_PARAMETER_TYPE_END_RANGE_INTEL = VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL,
-    VK_PERFORMANCE_PARAMETER_TYPE_RANGE_SIZE_INTEL = (VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL - VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL + 1),
     VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
 } VkPerformanceParameterTypeINTEL;
 
@@ -10051,9 +9822,6 @@
     VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2,
     VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3,
     VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4,
-    VK_PERFORMANCE_VALUE_TYPE_BEGIN_RANGE_INTEL = VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL,
-    VK_PERFORMANCE_VALUE_TYPE_END_RANGE_INTEL = VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL,
-    VK_PERFORMANCE_VALUE_TYPE_RANGE_SIZE_INTEL = (VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL - VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL + 1),
     VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
 } VkPerformanceValueTypeINTEL;
 typedef union VkPerformanceValueDataINTEL {
@@ -10075,11 +9843,13 @@
     void*              pUserData;
 } VkInitializePerformanceApiInfoINTEL;
 
-typedef struct VkQueryPoolCreateInfoINTEL {
+typedef struct VkQueryPoolPerformanceQueryCreateInfoINTEL {
     VkStructureType                 sType;
     const void*                     pNext;
     VkQueryPoolSamplingModeINTEL    performanceCountersSampling;
-} VkQueryPoolCreateInfoINTEL;
+} VkQueryPoolPerformanceQueryCreateInfoINTEL;
+
+typedef VkQueryPoolPerformanceQueryCreateInfoINTEL VkQueryPoolCreateInfoINTEL;
 
 typedef struct VkPerformanceMarkerInfoINTEL {
     VkStructureType    sType;
@@ -10408,16 +10178,14 @@
 
 
 #define VK_EXT_validation_features 1
-#define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 2
+#define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 3
 #define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features"
 
 typedef enum VkValidationFeatureEnableEXT {
     VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0,
     VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1,
     VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2,
-    VK_VALIDATION_FEATURE_ENABLE_BEGIN_RANGE_EXT = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT,
-    VK_VALIDATION_FEATURE_ENABLE_END_RANGE_EXT = VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT,
-    VK_VALIDATION_FEATURE_ENABLE_RANGE_SIZE_EXT = (VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT + 1),
+    VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3,
     VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkValidationFeatureEnableEXT;
 
@@ -10429,9 +10197,6 @@
     VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4,
     VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5,
     VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6,
-    VK_VALIDATION_FEATURE_DISABLE_BEGIN_RANGE_EXT = VK_VALIDATION_FEATURE_DISABLE_ALL_EXT,
-    VK_VALIDATION_FEATURE_DISABLE_END_RANGE_EXT = VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT,
-    VK_VALIDATION_FEATURE_DISABLE_RANGE_SIZE_EXT = (VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT - VK_VALIDATION_FEATURE_DISABLE_ALL_EXT + 1),
     VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkValidationFeatureDisableEXT;
 typedef struct VkValidationFeaturesEXT {
@@ -10461,9 +10226,6 @@
     VK_COMPONENT_TYPE_UINT16_NV = 8,
     VK_COMPONENT_TYPE_UINT32_NV = 9,
     VK_COMPONENT_TYPE_UINT64_NV = 10,
-    VK_COMPONENT_TYPE_BEGIN_RANGE_NV = VK_COMPONENT_TYPE_FLOAT16_NV,
-    VK_COMPONENT_TYPE_END_RANGE_NV = VK_COMPONENT_TYPE_UINT64_NV,
-    VK_COMPONENT_TYPE_RANGE_SIZE_NV = (VK_COMPONENT_TYPE_UINT64_NV - VK_COMPONENT_TYPE_FLOAT16_NV + 1),
     VK_COMPONENT_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
 } VkComponentTypeNV;
 
@@ -10472,9 +10234,6 @@
     VK_SCOPE_WORKGROUP_NV = 2,
     VK_SCOPE_SUBGROUP_NV = 3,
     VK_SCOPE_QUEUE_FAMILY_NV = 5,
-    VK_SCOPE_BEGIN_RANGE_NV = VK_SCOPE_DEVICE_NV,
-    VK_SCOPE_END_RANGE_NV = VK_SCOPE_QUEUE_FAMILY_NV,
-    VK_SCOPE_RANGE_SIZE_NV = (VK_SCOPE_QUEUE_FAMILY_NV - VK_SCOPE_DEVICE_NV + 1),
     VK_SCOPE_MAX_ENUM_NV = 0x7FFFFFFF
 } VkScopeNV;
 typedef struct VkCooperativeMatrixPropertiesNV {
@@ -10520,9 +10279,6 @@
 typedef enum VkCoverageReductionModeNV {
     VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0,
     VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1,
-    VK_COVERAGE_REDUCTION_MODE_BEGIN_RANGE_NV = VK_COVERAGE_REDUCTION_MODE_MERGE_NV,
-    VK_COVERAGE_REDUCTION_MODE_END_RANGE_NV = VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV,
-    VK_COVERAGE_REDUCTION_MODE_RANGE_SIZE_NV = (VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV - VK_COVERAGE_REDUCTION_MODE_MERGE_NV + 1),
     VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
 } VkCoverageReductionModeNV;
 typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV;
@@ -10612,9 +10368,6 @@
     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1,
     VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2,
     VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3,
-    VK_LINE_RASTERIZATION_MODE_BEGIN_RANGE_EXT = VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT,
-    VK_LINE_RASTERIZATION_MODE_END_RANGE_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT,
-    VK_LINE_RASTERIZATION_MODE_RANGE_SIZE_EXT = (VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT - VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT + 1),
     VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkLineRasterizationModeEXT;
 typedef struct VkPhysicalDeviceLineRasterizationFeaturesEXT {
@@ -10680,6 +10433,90 @@
 
 
 
+#define VK_EXT_extended_dynamic_state 1
+#define VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION 1
+#define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state"
+typedef struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           extendedDynamicState;
+} VkPhysicalDeviceExtendedDynamicStateFeaturesEXT;
+
+typedef void (VKAPI_PTR *PFN_vkCmdSetCullModeEXT)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
+typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFaceEXT)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
+typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopologyEXT)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
+typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
+typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
+typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers2EXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides);
+typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
+typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
+typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOpEXT)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
+typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
+typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
+typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOpEXT)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR void VKAPI_CALL vkCmdSetCullModeEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkCullModeFlags                             cullMode);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFaceEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkFrontFace                                 frontFace);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopologyEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkPrimitiveTopology                         primitiveTopology);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCountEXT(
+    VkCommandBuffer                             commandBuffer,
+    uint32_t                                    viewportCount,
+    const VkViewport*                           pViewports);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCountEXT(
+    VkCommandBuffer                             commandBuffer,
+    uint32_t                                    scissorCount,
+    const VkRect2D*                             pScissors);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2EXT(
+    VkCommandBuffer                             commandBuffer,
+    uint32_t                                    firstBinding,
+    uint32_t                                    bindingCount,
+    const VkBuffer*                             pBuffers,
+    const VkDeviceSize*                         pOffsets,
+    const VkDeviceSize*                         pSizes,
+    const VkDeviceSize*                         pStrides);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnableEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkBool32                                    depthTestEnable);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnableEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkBool32                                    depthWriteEnable);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOpEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkCompareOp                                 depthCompareOp);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnableEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkBool32                                    depthBoundsTestEnable);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnableEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkBool32                                    stencilTestEnable);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOpEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkStencilFaceFlags                          faceMask,
+    VkStencilOp                                 failOp,
+    VkStencilOp                                 passOp,
+    VkStencilOp                                 depthFailOp,
+    VkCompareOp                                 compareOp);
+#endif
+
+
 #define VK_EXT_shader_demote_to_helper_invocation 1
 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1
 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation"
@@ -10691,6 +10528,196 @@
 
 
 
+#define VK_NV_device_generated_commands 1
+VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNV)
+#define VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
+#define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands"
+
+typedef enum VkIndirectCommandsTokenTypeNV {
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
+} VkIndirectCommandsTokenTypeNV;
+
+typedef enum VkIndirectStateFlagBitsNV {
+    VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 0x00000001,
+    VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
+} VkIndirectStateFlagBitsNV;
+typedef VkFlags VkIndirectStateFlagsNV;
+
+typedef enum VkIndirectCommandsLayoutUsageFlagBitsNV {
+    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 0x00000001,
+    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 0x00000002,
+    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 0x00000004,
+    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
+} VkIndirectCommandsLayoutUsageFlagBitsNV;
+typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNV;
+typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
+    VkStructureType    sType;
+    void*              pNext;
+    uint32_t           maxGraphicsShaderGroupCount;
+    uint32_t           maxIndirectSequenceCount;
+    uint32_t           maxIndirectCommandsTokenCount;
+    uint32_t           maxIndirectCommandsStreamCount;
+    uint32_t           maxIndirectCommandsTokenOffset;
+    uint32_t           maxIndirectCommandsStreamStride;
+    uint32_t           minSequencesCountBufferOffsetAlignment;
+    uint32_t           minSequencesIndexBufferOffsetAlignment;
+    uint32_t           minIndirectCommandsBufferOffsetAlignment;
+} VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
+
+typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           deviceGeneratedCommands;
+} VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
+
+typedef struct VkGraphicsShaderGroupCreateInfoNV {
+    VkStructureType                                 sType;
+    const void*                                     pNext;
+    uint32_t                                        stageCount;
+    const VkPipelineShaderStageCreateInfo*          pStages;
+    const VkPipelineVertexInputStateCreateInfo*     pVertexInputState;
+    const VkPipelineTessellationStateCreateInfo*    pTessellationState;
+} VkGraphicsShaderGroupCreateInfoNV;
+
+typedef struct VkGraphicsPipelineShaderGroupsCreateInfoNV {
+    VkStructureType                             sType;
+    const void*                                 pNext;
+    uint32_t                                    groupCount;
+    const VkGraphicsShaderGroupCreateInfoNV*    pGroups;
+    uint32_t                                    pipelineCount;
+    const VkPipeline*                           pPipelines;
+} VkGraphicsPipelineShaderGroupsCreateInfoNV;
+
+typedef struct VkBindShaderGroupIndirectCommandNV {
+    uint32_t    groupIndex;
+} VkBindShaderGroupIndirectCommandNV;
+
+typedef struct VkBindIndexBufferIndirectCommandNV {
+    VkDeviceAddress    bufferAddress;
+    uint32_t           size;
+    VkIndexType        indexType;
+} VkBindIndexBufferIndirectCommandNV;
+
+typedef struct VkBindVertexBufferIndirectCommandNV {
+    VkDeviceAddress    bufferAddress;
+    uint32_t           size;
+    uint32_t           stride;
+} VkBindVertexBufferIndirectCommandNV;
+
+typedef struct VkSetStateFlagsIndirectCommandNV {
+    uint32_t    data;
+} VkSetStateFlagsIndirectCommandNV;
+
+typedef struct VkIndirectCommandsStreamNV {
+    VkBuffer        buffer;
+    VkDeviceSize    offset;
+} VkIndirectCommandsStreamNV;
+
+typedef struct VkIndirectCommandsLayoutTokenNV {
+    VkStructureType                  sType;
+    const void*                      pNext;
+    VkIndirectCommandsTokenTypeNV    tokenType;
+    uint32_t                         stream;
+    uint32_t                         offset;
+    uint32_t                         vertexBindingUnit;
+    VkBool32                         vertexDynamicStride;
+    VkPipelineLayout                 pushconstantPipelineLayout;
+    VkShaderStageFlags               pushconstantShaderStageFlags;
+    uint32_t                         pushconstantOffset;
+    uint32_t                         pushconstantSize;
+    VkIndirectStateFlagsNV           indirectStateFlags;
+    uint32_t                         indexTypeCount;
+    const VkIndexType*               pIndexTypes;
+    const uint32_t*                  pIndexTypeValues;
+} VkIndirectCommandsLayoutTokenNV;
+
+typedef struct VkIndirectCommandsLayoutCreateInfoNV {
+    VkStructureType                           sType;
+    const void*                               pNext;
+    VkIndirectCommandsLayoutUsageFlagsNV      flags;
+    VkPipelineBindPoint                       pipelineBindPoint;
+    uint32_t                                  tokenCount;
+    const VkIndirectCommandsLayoutTokenNV*    pTokens;
+    uint32_t                                  streamCount;
+    const uint32_t*                           pStreamStrides;
+} VkIndirectCommandsLayoutCreateInfoNV;
+
+typedef struct VkGeneratedCommandsInfoNV {
+    VkStructureType                      sType;
+    const void*                          pNext;
+    VkPipelineBindPoint                  pipelineBindPoint;
+    VkPipeline                           pipeline;
+    VkIndirectCommandsLayoutNV           indirectCommandsLayout;
+    uint32_t                             streamCount;
+    const VkIndirectCommandsStreamNV*    pStreams;
+    uint32_t                             sequencesCount;
+    VkBuffer                             preprocessBuffer;
+    VkDeviceSize                         preprocessOffset;
+    VkDeviceSize                         preprocessSize;
+    VkBuffer                             sequencesCountBuffer;
+    VkDeviceSize                         sequencesCountOffset;
+    VkBuffer                             sequencesIndexBuffer;
+    VkDeviceSize                         sequencesIndexOffset;
+} VkGeneratedCommandsInfoNV;
+
+typedef struct VkGeneratedCommandsMemoryRequirementsInfoNV {
+    VkStructureType               sType;
+    const void*                   pNext;
+    VkPipelineBindPoint           pipelineBindPoint;
+    VkPipeline                    pipeline;
+    VkIndirectCommandsLayoutNV    indirectCommandsLayout;
+    uint32_t                      maxSequencesCount;
+} VkGeneratedCommandsMemoryRequirementsInfoNV;
+
+typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsNV)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements);
+typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsNV)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
+typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsNV)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
+typedef void (VKAPI_PTR *PFN_vkCmdBindPipelineShaderGroupNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex);
+typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNV)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout);
+typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNV)(VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsNV(
+    VkDevice                                    device,
+    const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo,
+    VkMemoryRequirements2*                      pMemoryRequirements);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsNV(
+    VkCommandBuffer                             commandBuffer,
+    const VkGeneratedCommandsInfoNV*            pGeneratedCommandsInfo);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsNV(
+    VkCommandBuffer                             commandBuffer,
+    VkBool32                                    isPreprocessed,
+    const VkGeneratedCommandsInfoNV*            pGeneratedCommandsInfo);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdBindPipelineShaderGroupNV(
+    VkCommandBuffer                             commandBuffer,
+    VkPipelineBindPoint                         pipelineBindPoint,
+    VkPipeline                                  pipeline,
+    uint32_t                                    groupIndex);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNV(
+    VkDevice                                    device,
+    const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
+    const VkAllocationCallbacks*                pAllocator,
+    VkIndirectCommandsLayoutNV*                 pIndirectCommandsLayout);
+
+VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNV(
+    VkDevice                                    device,
+    VkIndirectCommandsLayoutNV                  indirectCommandsLayout,
+    const VkAllocationCallbacks*                pAllocator);
+#endif
+
+
 #define VK_EXT_texel_buffer_alignment 1
 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1
 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
@@ -10711,10 +10738,194 @@
 
 
 
+#define VK_QCOM_render_pass_transform 1
+#define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 1
+#define VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME "VK_QCOM_render_pass_transform"
+typedef struct VkRenderPassTransformBeginInfoQCOM {
+    VkStructureType                  sType;
+    void*                            pNext;
+    VkSurfaceTransformFlagBitsKHR    transform;
+} VkRenderPassTransformBeginInfoQCOM;
+
+typedef struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM {
+    VkStructureType                  sType;
+    void*                            pNext;
+    VkSurfaceTransformFlagBitsKHR    transform;
+    VkRect2D                         renderArea;
+} VkCommandBufferInheritanceRenderPassTransformInfoQCOM;
+
+
+
+#define VK_EXT_robustness2 1
+#define VK_EXT_ROBUSTNESS_2_SPEC_VERSION  1
+#define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2"
+typedef struct VkPhysicalDeviceRobustness2FeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           robustBufferAccess2;
+    VkBool32           robustImageAccess2;
+    VkBool32           nullDescriptor;
+} VkPhysicalDeviceRobustness2FeaturesEXT;
+
+typedef struct VkPhysicalDeviceRobustness2PropertiesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkDeviceSize       robustStorageBufferAccessSizeAlignment;
+    VkDeviceSize       robustUniformBufferAccessSizeAlignment;
+} VkPhysicalDeviceRobustness2PropertiesEXT;
+
+
+
+#define VK_EXT_custom_border_color 1
+#define VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION 12
+#define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color"
+typedef struct VkSamplerCustomBorderColorCreateInfoEXT {
+    VkStructureType      sType;
+    const void*          pNext;
+    VkClearColorValue    customBorderColor;
+    VkFormat             format;
+} VkSamplerCustomBorderColorCreateInfoEXT;
+
+typedef struct VkPhysicalDeviceCustomBorderColorPropertiesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    uint32_t           maxCustomBorderColorSamplers;
+} VkPhysicalDeviceCustomBorderColorPropertiesEXT;
+
+typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           customBorderColors;
+    VkBool32           customBorderColorWithoutFormat;
+} VkPhysicalDeviceCustomBorderColorFeaturesEXT;
+
+
+
 #define VK_GOOGLE_user_type 1
 #define VK_GOOGLE_USER_TYPE_SPEC_VERSION  1
 #define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type"
 
+
+#define VK_EXT_private_data 1
+VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlotEXT)
+#define VK_EXT_PRIVATE_DATA_SPEC_VERSION  1
+#define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data"
+
+typedef enum VkPrivateDataSlotCreateFlagBitsEXT {
+    VK_PRIVATE_DATA_SLOT_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
+} VkPrivateDataSlotCreateFlagBitsEXT;
+typedef VkFlags VkPrivateDataSlotCreateFlagsEXT;
+typedef struct VkPhysicalDevicePrivateDataFeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           privateData;
+} VkPhysicalDevicePrivateDataFeaturesEXT;
+
+typedef struct VkDevicePrivateDataCreateInfoEXT {
+    VkStructureType    sType;
+    const void*        pNext;
+    uint32_t           privateDataSlotRequestCount;
+} VkDevicePrivateDataCreateInfoEXT;
+
+typedef struct VkPrivateDataSlotCreateInfoEXT {
+    VkStructureType                    sType;
+    const void*                        pNext;
+    VkPrivateDataSlotCreateFlagsEXT    flags;
+} VkPrivateDataSlotCreateInfoEXT;
+
+typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlotEXT)(VkDevice device, const VkPrivateDataSlotCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlotEXT* pPrivateDataSlot);
+typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlotEXT)(VkDevice device, VkPrivateDataSlotEXT privateDataSlot, const VkAllocationCallbacks* pAllocator);
+typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlotEXT privateDataSlot, uint64_t data);
+typedef void (VKAPI_PTR *PFN_vkGetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlotEXT privateDataSlot, uint64_t* pData);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlotEXT(
+    VkDevice                                    device,
+    const VkPrivateDataSlotCreateInfoEXT*       pCreateInfo,
+    const VkAllocationCallbacks*                pAllocator,
+    VkPrivateDataSlotEXT*                       pPrivateDataSlot);
+
+VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlotEXT(
+    VkDevice                                    device,
+    VkPrivateDataSlotEXT                        privateDataSlot,
+    const VkAllocationCallbacks*                pAllocator);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateDataEXT(
+    VkDevice                                    device,
+    VkObjectType                                objectType,
+    uint64_t                                    objectHandle,
+    VkPrivateDataSlotEXT                        privateDataSlot,
+    uint64_t                                    data);
+
+VKAPI_ATTR void VKAPI_CALL vkGetPrivateDataEXT(
+    VkDevice                                    device,
+    VkObjectType                                objectType,
+    uint64_t                                    objectHandle,
+    VkPrivateDataSlotEXT                        privateDataSlot,
+    uint64_t*                                   pData);
+#endif
+
+
+#define VK_EXT_pipeline_creation_cache_control 1
+#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3
+#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control"
+typedef struct VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           pipelineCreationCacheControl;
+} VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT;
+
+
+
+#define VK_NV_device_diagnostics_config 1
+#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 1
+#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME "VK_NV_device_diagnostics_config"
+
+typedef enum VkDeviceDiagnosticsConfigFlagBitsNV {
+    VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 0x00000001,
+    VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 0x00000002,
+    VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 0x00000004,
+    VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
+} VkDeviceDiagnosticsConfigFlagBitsNV;
+typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV;
+typedef struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           diagnosticsConfig;
+} VkPhysicalDeviceDiagnosticsConfigFeaturesNV;
+
+typedef struct VkDeviceDiagnosticsConfigCreateInfoNV {
+    VkStructureType                     sType;
+    const void*                         pNext;
+    VkDeviceDiagnosticsConfigFlagsNV    flags;
+} VkDeviceDiagnosticsConfigCreateInfoNV;
+
+
+
+#define VK_QCOM_render_pass_store_ops 1
+#define VK_QCOM_render_pass_store_ops_SPEC_VERSION 2
+#define VK_QCOM_render_pass_store_ops_EXTENSION_NAME "VK_QCOM_render_pass_store_ops"
+
+
+#define VK_EXT_fragment_density_map2 1
+#define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1
+#define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
+typedef struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           fragmentDensityMapDeferred;
+} VkPhysicalDeviceFragmentDensityMap2FeaturesEXT;
+
+typedef struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           subsampledLoads;
+    VkBool32           subsampledCoarseReconstructionEarlyAccess;
+    uint32_t           maxSubsampledArrayLayers;
+    uint32_t           maxDescriptorSetSubsampledSamplers;
+} VkPhysicalDeviceFragmentDensityMap2PropertiesEXT;
+
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/external/vulkancts/scripts/src/vulkan_fuchsia.h b/external/vulkancts/scripts/src/vulkan_fuchsia.h
index 81ebe55..03e27cb 100644
--- a/external/vulkancts/scripts/src/vulkan_fuchsia.h
+++ b/external/vulkancts/scripts/src/vulkan_fuchsia.h
@@ -2,19 +2,9 @@
 #define VULKAN_FUCHSIA_H_ 1
 
 /*
-** Copyright (c) 2015-2019 The Khronos Group Inc.
+** Copyright (c) 2015-2020 The Khronos Group Inc.
 **
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
+** SPDX-License-Identifier: Apache-2.0
 */
 
 /*
diff --git a/external/vulkancts/scripts/src/vulkan_ggp.h b/external/vulkancts/scripts/src/vulkan_ggp.h
index fd30613..273c880 100644
--- a/external/vulkancts/scripts/src/vulkan_ggp.h
+++ b/external/vulkancts/scripts/src/vulkan_ggp.h
@@ -2,19 +2,9 @@
 #define VULKAN_GGP_H_ 1
 
 /*
-** Copyright (c) 2015-2019 The Khronos Group Inc.
+** Copyright (c) 2015-2020 The Khronos Group Inc.
 **
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
+** SPDX-License-Identifier: Apache-2.0
 */
 
 /*
diff --git a/external/vulkancts/scripts/src/vulkan_ios.h b/external/vulkancts/scripts/src/vulkan_ios.h
index 72ef1a8..651945c 100644
--- a/external/vulkancts/scripts/src/vulkan_ios.h
+++ b/external/vulkancts/scripts/src/vulkan_ios.h
@@ -2,19 +2,9 @@
 #define VULKAN_IOS_H_ 1
 
 /*
-** Copyright (c) 2015-2019 The Khronos Group Inc.
+** Copyright (c) 2015-2020 The Khronos Group Inc.
 **
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
+** SPDX-License-Identifier: Apache-2.0
 */
 
 /*
diff --git a/external/vulkancts/scripts/src/vulkan_macos.h b/external/vulkancts/scripts/src/vulkan_macos.h
index e6e5dea..3208b72 100644
--- a/external/vulkancts/scripts/src/vulkan_macos.h
+++ b/external/vulkancts/scripts/src/vulkan_macos.h
@@ -2,19 +2,9 @@
 #define VULKAN_MACOS_H_ 1
 
 /*
-** Copyright (c) 2015-2019 The Khronos Group Inc.
+** Copyright (c) 2015-2020 The Khronos Group Inc.
 **
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
+** SPDX-License-Identifier: Apache-2.0
 */
 
 /*
diff --git a/external/vulkancts/scripts/src/vulkan_metal.h b/external/vulkancts/scripts/src/vulkan_metal.h
index 3dec68c..99f097d 100644
--- a/external/vulkancts/scripts/src/vulkan_metal.h
+++ b/external/vulkancts/scripts/src/vulkan_metal.h
@@ -2,19 +2,9 @@
 #define VULKAN_METAL_H_ 1
 
 /*
-** Copyright (c) 2015-2019 The Khronos Group Inc.
+** Copyright (c) 2015-2020 The Khronos Group Inc.
 **
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
+** SPDX-License-Identifier: Apache-2.0
 */
 
 /*
diff --git a/external/vulkancts/scripts/src/vulkan_vi.h b/external/vulkancts/scripts/src/vulkan_vi.h
index 6fb66f9..2e62d7d 100644
--- a/external/vulkancts/scripts/src/vulkan_vi.h
+++ b/external/vulkancts/scripts/src/vulkan_vi.h
@@ -2,19 +2,9 @@
 #define VULKAN_VI_H_ 1
 
 /*
-** Copyright (c) 2015-2019 The Khronos Group Inc.
+** Copyright (c) 2015-2020 The Khronos Group Inc.
 **
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
+** SPDX-License-Identifier: Apache-2.0
 */
 
 /*
diff --git a/external/vulkancts/scripts/src/vulkan_wayland.h b/external/vulkancts/scripts/src/vulkan_wayland.h
index 599d05b..f7b307e 100644
--- a/external/vulkancts/scripts/src/vulkan_wayland.h
+++ b/external/vulkancts/scripts/src/vulkan_wayland.h
@@ -2,19 +2,9 @@
 #define VULKAN_WAYLAND_H_ 1
 
 /*
-** Copyright (c) 2015-2019 The Khronos Group Inc.
+** Copyright (c) 2015-2020 The Khronos Group Inc.
 **
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
+** SPDX-License-Identifier: Apache-2.0
 */
 
 /*
diff --git a/external/vulkancts/scripts/src/vulkan_win32.h b/external/vulkancts/scripts/src/vulkan_win32.h
index 20a1dc0..4b561ea 100644
--- a/external/vulkancts/scripts/src/vulkan_win32.h
+++ b/external/vulkancts/scripts/src/vulkan_win32.h
@@ -2,19 +2,9 @@
 #define VULKAN_WIN32_H_ 1
 
 /*
-** Copyright (c) 2015-2019 The Khronos Group Inc.
+** Copyright (c) 2015-2020 The Khronos Group Inc.
 **
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
+** SPDX-License-Identifier: Apache-2.0
 */
 
 /*
@@ -272,9 +262,6 @@
     VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT = 1,
     VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT = 2,
     VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT = 3,
-    VK_FULL_SCREEN_EXCLUSIVE_BEGIN_RANGE_EXT = VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT,
-    VK_FULL_SCREEN_EXCLUSIVE_END_RANGE_EXT = VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT,
-    VK_FULL_SCREEN_EXCLUSIVE_RANGE_SIZE_EXT = (VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT - VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT + 1),
     VK_FULL_SCREEN_EXCLUSIVE_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkFullScreenExclusiveEXT;
 typedef struct VkSurfaceFullScreenExclusiveInfoEXT {
diff --git a/external/vulkancts/scripts/src/vulkan_xcb.h b/external/vulkancts/scripts/src/vulkan_xcb.h
index 4cc0bc0..c5441b2 100644
--- a/external/vulkancts/scripts/src/vulkan_xcb.h
+++ b/external/vulkancts/scripts/src/vulkan_xcb.h
@@ -2,19 +2,9 @@
 #define VULKAN_XCB_H_ 1
 
 /*
-** Copyright (c) 2015-2019 The Khronos Group Inc.
+** Copyright (c) 2015-2020 The Khronos Group Inc.
 **
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
+** SPDX-License-Identifier: Apache-2.0
 */
 
 /*
diff --git a/external/vulkancts/scripts/src/vulkan_xlib.h b/external/vulkancts/scripts/src/vulkan_xlib.h
index ee2b48a..c54628a 100644
--- a/external/vulkancts/scripts/src/vulkan_xlib.h
+++ b/external/vulkancts/scripts/src/vulkan_xlib.h
@@ -2,19 +2,9 @@
 #define VULKAN_XLIB_H_ 1
 
 /*
-** Copyright (c) 2015-2019 The Khronos Group Inc.
+** Copyright (c) 2015-2020 The Khronos Group Inc.
 **
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
+** SPDX-License-Identifier: Apache-2.0
 */
 
 /*
diff --git a/external/vulkancts/scripts/src/vulkan_xlib_xrandr.h b/external/vulkancts/scripts/src/vulkan_xlib_xrandr.h
index 08c4fd7..436432f 100644
--- a/external/vulkancts/scripts/src/vulkan_xlib_xrandr.h
+++ b/external/vulkancts/scripts/src/vulkan_xlib_xrandr.h
@@ -2,19 +2,9 @@
 #define VULKAN_XLIB_XRANDR_H_ 1
 
 /*
-** Copyright (c) 2015-2019 The Khronos Group Inc.
+** Copyright (c) 2015-2020 The Khronos Group Inc.
 **
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
+** SPDX-License-Identifier: Apache-2.0
 */
 
 /*
diff --git a/framework/CMakeLists.txt b/framework/CMakeLists.txt
index f2ac7d3..c639fdd 100644
--- a/framework/CMakeLists.txt
+++ b/framework/CMakeLists.txt
@@ -12,6 +12,9 @@
 # EGL utilities
 add_subdirectory(egl)
 
+# XE xml util
+add_subdirectory(xexml)
+
 if (IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/randomshaders)
 	add_subdirectory(randomshaders)
 endif ()
diff --git a/framework/common/CMakeLists.txt b/framework/common/CMakeLists.txt
index 36d9b9d..dfd8fad 100644
--- a/framework/common/CMakeLists.txt
+++ b/framework/common/CMakeLists.txt
@@ -93,12 +93,15 @@
 	tcuAstcUtil.hpp
 	tcuRasterizationVerifier.cpp
 	tcuRasterizationVerifier.hpp
+	tcuWaiverUtil.cpp
+	tcuWaiverUtil.hpp
 	)
 
 set(TCUTIL_LIBS
 	decpp
 	qphelper
 	dethread
+	xexml
 	${PNG_LIBRARY}
 	)
 
diff --git a/framework/common/tcuApp.cpp b/framework/common/tcuApp.cpp
index 9015b00..cf4f97c 100644
--- a/framework/common/tcuApp.cpp
+++ b/framework/common/tcuApp.cpp
@@ -196,6 +196,7 @@
 			print("  Failed:        %d/%d (%.1f%%)\n", result.numFailed,		result.numExecuted, (result.numExecuted > 0 ? (100.0f * (float)result.numFailed			/ (float)result.numExecuted) : 0.0f));
 			print("  Not supported: %d/%d (%.1f%%)\n", result.numNotSupported,	result.numExecuted, (result.numExecuted > 0 ? (100.0f * (float)result.numNotSupported	/ (float)result.numExecuted) : 0.0f));
 			print("  Warnings:      %d/%d (%.1f%%)\n", result.numWarnings,		result.numExecuted, (result.numExecuted > 0 ? (100.0f * (float)result.numWarnings		/ (float)result.numExecuted) : 0.0f));
+			print("  Waived:        %d/%d (%.1f%%)\n", result.numWaived,		result.numExecuted, (result.numExecuted > 0 ? (100.0f * (float)result.numWaived			/ (float)result.numExecuted) : 0.0f));
 			if (!result.isComplete)
 				print("Test run was ABORTED!\n");
 		}
diff --git a/framework/common/tcuCommandLine.cpp b/framework/common/tcuCommandLine.cpp
index de9c337..4e0cbc6 100644
--- a/framework/common/tcuCommandLine.cpp
+++ b/framework/common/tcuCommandLine.cpp
@@ -91,6 +91,7 @@
 DE_DECLARE_COMMAND_LINE_OPT(VKDeviceGroupID,			int);
 DE_DECLARE_COMMAND_LINE_OPT(LogFlush,					bool);
 DE_DECLARE_COMMAND_LINE_OPT(Validation,					bool);
+DE_DECLARE_COMMAND_LINE_OPT(PrintValidationErrors,		bool);
 DE_DECLARE_COMMAND_LINE_OPT(ShaderCache,				bool);
 DE_DECLARE_COMMAND_LINE_OPT(ShaderCacheFilename,		std::string);
 DE_DECLARE_COMMAND_LINE_OPT(Optimization,				int);
@@ -99,6 +100,7 @@
 DE_DECLARE_COMMAND_LINE_OPT(RenderDoc,					bool);
 DE_DECLARE_COMMAND_LINE_OPT(CaseFraction,				std::vector<int>);
 DE_DECLARE_COMMAND_LINE_OPT(CaseFractionMandatoryTests,	std::string);
+DE_DECLARE_COMMAND_LINE_OPT(WaiverFile,					std::string);
 
 static void parseIntList (const char* src, std::vector<int>* dst)
 {
@@ -189,6 +191,7 @@
 		<< Option<ArchiveDir>					(DE_NULL,	"deqp-archive-dir",							"Path to test resource files",											".")
 		<< Option<LogFlush>						(DE_NULL,	"deqp-log-flush",							"Enable or disable log file fflush",				s_enableNames,		"enable")
 		<< Option<Validation>					(DE_NULL,	"deqp-validation",							"Enable or disable test case validation",			s_enableNames,		"disable")
+		<< Option<PrintValidationErrors>		(DE_NULL,	"deqp-print-validation-errors",				"Print validation errors to standard error")
 		<< Option<Optimization>					(DE_NULL,	"deqp-optimization-recipe",					"Shader optimization recipe (0=disabled, 1=performance, 2=size)",		"0")
 		<< Option<OptimizeSpirv>				(DE_NULL,	"deqp-optimize-spirv",						"Apply optimization to spir-v shaders as well",		s_enableNames,		"disable")
 		<< Option<ShaderCache>					(DE_NULL,	"deqp-shadercache",							"Enable or disable shader cache",					s_enableNames,		"enable")
@@ -196,7 +199,8 @@
 		<< Option<ShaderCacheTruncate>			(DE_NULL,	"deqp-shadercache-truncate",				"Truncate shader cache before running tests",		s_enableNames,		"enable")
 		<< Option<RenderDoc>					(DE_NULL,	"deqp-renderdoc",							"Enable RenderDoc frame markers",					s_enableNames,		"disable")
 		<< Option<CaseFraction>					(DE_NULL,	"deqp-fraction",							"Run a fraction of the test cases (e.g. N,M means run group%M==N)",	parseIntList,	"")
-		<< Option<CaseFractionMandatoryTests>	(DE_NULL,	"deqp-fraction-mandatory-caselist-file",	"Case list file that must be run for each fraction",					"");
+		<< Option<CaseFractionMandatoryTests>	(DE_NULL,	"deqp-fraction-mandatory-caselist-file",	"Case list file that must be run for each fraction",					"")
+		<< Option<WaiverFile>					(DE_NULL,	"deqp-waiver-file",							"Read waived tests from given file",									"");
 }
 
 void registerLegacyOptions (de::cmdline::Parser& parser)
@@ -554,9 +558,9 @@
 class CasePaths
 {
 public:
-							CasePaths	(const string& pathList);
-							CasePaths	(const vector<string>& pathList);
-	bool					matches		(const string& caseName, bool allowPrefix=false) const;
+	CasePaths(const string& pathList);
+	CasePaths(const vector<string>& pathList);
+	bool					matches(const string& caseName, bool allowPrefix = false) const;
 
 private:
 	const vector<string>	m_casePatterns;
@@ -573,11 +577,11 @@
 }
 
 // Match a single path component against a pattern component that may contain *-wildcards.
-static bool matchWildcards(string::const_iterator	patternStart,
-						   string::const_iterator	patternEnd,
-						   string::const_iterator	pathStart,
-						   string::const_iterator	pathEnd,
-						   bool						allowPrefix)
+bool matchWildcards(string::const_iterator	patternStart,
+					string::const_iterator	patternEnd,
+					string::const_iterator	pathStart,
+					string::const_iterator	pathEnd,
+					bool					allowPrefix)
 {
 	string::const_iterator	pattern	= patternStart;
 	string::const_iterator	path	= pathStart;
@@ -685,6 +689,18 @@
 CommandLine::CommandLine (int argc, const char* const* argv)
 	: m_logFlags	(0)
 {
+	if (argc > 1)
+	{
+		int loop = 1;		// skip application name
+		while (true)
+		{
+			m_initialCmdLine += std::string(argv[loop++]);
+			if (loop >= argc)
+				break;
+			m_initialCmdLine += " ";
+		}
+	}
+
 	if (!parse(argc, argv))
 		throw Exception("Failed to parse command line");
 }
@@ -697,6 +713,7 @@
  * \param cmdLine Full command line string.
  *//*--------------------------------------------------------------------*/
 CommandLine::CommandLine (const std::string& cmdLine)
+	: m_initialCmdLine	(cmdLine)
 {
 	if (!parse(cmdLine))
 		throw Exception("Failed to parse command line");
@@ -717,6 +734,11 @@
 	return m_cmdLine;
 }
 
+const std::string& CommandLine::getInitialCmdLine(void) const
+{
+	return m_initialCmdLine;
+}
+
 void CommandLine::registerExtendedOptions (de::cmdline::Parser& parser)
 {
 	DE_UNREF(parser);
@@ -817,6 +839,7 @@
 int						CommandLine::getVKDeviceId					(void) const	{ return m_cmdLine.getOption<opt::VKDeviceID>();							}
 int						CommandLine::getVKDeviceGroupId				(void) const	{ return m_cmdLine.getOption<opt::VKDeviceGroupID>();						}
 bool					CommandLine::isValidationEnabled			(void) const	{ return m_cmdLine.getOption<opt::Validation>();							}
+bool					CommandLine::printValidationErrors			(void) const	{ return m_cmdLine.getOption<opt::PrintValidationErrors>();					}
 bool					CommandLine::isOutOfMemoryTestEnabled		(void) const	{ return m_cmdLine.getOption<opt::TestOOM>();								}
 bool					CommandLine::isShadercacheEnabled			(void) const	{ return m_cmdLine.getOption<opt::ShaderCache>();							}
 const char*				CommandLine::getShaderCacheFilename			(void) const	{ return m_cmdLine.getOption<opt::ShaderCacheFilename>().c_str();			}
@@ -824,6 +847,7 @@
 int						CommandLine::getOptimizationRecipe			(void) const	{ return m_cmdLine.getOption<opt::Optimization>();							}
 bool					CommandLine::isSpirvOptimizationEnabled		(void) const	{ return m_cmdLine.getOption<opt::OptimizeSpirv>();							}
 bool					CommandLine::isRenderDocEnabled				(void) const	{ return m_cmdLine.getOption<opt::RenderDoc>();								}
+const char*				CommandLine::getWaiverFileName				(void) const	{ return m_cmdLine.getOption<opt::WaiverFile>().c_str();					}
 const std::vector<int>&	CommandLine::getCaseFraction				(void) const	{ return m_cmdLine.getOption<opt::CaseFraction>();							}
 const char*				CommandLine::getCaseFractionMandatoryTests	(void) const	{ return m_cmdLine.getOption<opt::CaseFractionMandatoryTests>().c_str();	}
 const char*				CommandLine::getArchiveDir					(void) const	{ return m_cmdLine.getOption<opt::ArchiveDir>().c_str();					}
diff --git a/framework/common/tcuCommandLine.hpp b/framework/common/tcuCommandLine.hpp
index 88527f2..22ea2e0 100644
--- a/framework/common/tcuCommandLine.hpp
+++ b/framework/common/tcuCommandLine.hpp
@@ -91,6 +91,13 @@
 class CasePaths;
 class Archive;
 
+// Match a single path component against a pattern component that may contain *-wildcards.
+bool matchWildcards(std::string::const_iterator		patternStart,
+					std::string::const_iterator		patternEnd,
+					std::string::const_iterator		pathStart,
+					std::string::const_iterator		pathEnd,
+					bool							allowPrefix);
+
 class CaseListFilter
 {
 public:
@@ -134,6 +141,8 @@
 	bool							parse							(int argc, const char* const* argv);
 	bool							parse							(const std::string& cmdLine);
 
+	const std::string&				getInitialCmdLine				(void) const;
+
 	//! Get log file name (--deqp-log-filename)
 	const char*						getLogFileName					(void) const;
 
@@ -213,6 +222,9 @@
 	//! Enable development-time test case validation checks
 	bool							isValidationEnabled				(void) const;
 
+	//! Print validation errors to standard error or keep them in the log only.
+	bool							printValidationErrors			(void) const;
+
 	//! Should we run tests that exhaust memory (--deqp-test-oom)
 	bool							isOutOfMemoryTestEnabled		(void) const;
 
@@ -234,6 +246,9 @@
 	//! Enable RenderDoc frame markers (--deqp-renderdoc)
 	bool							isRenderDocEnabled			(void) const;
 
+	//! Get waiver file name (--deqp-waiver-file)
+	const char*						getWaiverFileName			(void) const;
+
 	//! Get case list fraction
 	const std::vector<int>&			getCaseFraction				(void) const;
 
@@ -272,6 +287,8 @@
 
 	de::cmdline::CommandLine		m_cmdLine;
 	deUint32						m_logFlags;
+
+	std::string						m_initialCmdLine;
 };
 
 } // tcu
diff --git a/framework/common/tcuDefs.cpp b/framework/common/tcuDefs.cpp
index c31ae49..5885f60 100644
--- a/framework/common/tcuDefs.cpp
+++ b/framework/common/tcuDefs.cpp
@@ -47,6 +47,14 @@
 	va_end(args);
 }
 
+void printError (const char* format, ...)
+{
+	va_list args;
+	va_start(args, format);
+	qpPrintErrorv(format, args);
+	va_end(args);
+}
+
 static std::string formatError (const char* message, const char* expr, const char* file, int line)
 {
 	std::ostringstream msg;
diff --git a/framework/common/tcuDefs.hpp b/framework/common/tcuDefs.hpp
index 18a6b3b..c73312b 100644
--- a/framework/common/tcuDefs.hpp
+++ b/framework/common/tcuDefs.hpp
@@ -39,10 +39,13 @@
 {
 
 //! Kill program. Called when a fatal error occurs.
-void	die		(const char* format, ...) DE_PRINTF_FUNC_ATTR(1, 2);
+void	die			(const char* format, ...) DE_PRINTF_FUNC_ATTR(1, 2);
 
 //! Print to debug console.
-void	print	(const char* format, ...) DE_PRINTF_FUNC_ATTR(1, 2);
+void	print		(const char* format, ...) DE_PRINTF_FUNC_ATTR(1, 2);
+
+//! Print nonfatal error.
+void	printError	(const char* format, ...) DE_PRINTF_FUNC_ATTR(1, 2);
 
 //! Base exception class for dEQP test framework.
 class Exception : public std::runtime_error
diff --git a/framework/common/tcuFloat.hpp b/framework/common/tcuFloat.hpp
index 1b46e17..a21ad25 100644
--- a/framework/common/tcuFloat.hpp
+++ b/framework/common/tcuFloat.hpp
@@ -126,6 +126,8 @@
 	inline bool				isZero			(void) const	{ return exponentBits() == 0						&& mantissaBits() == 0;	}
 	inline bool				isDenorm		(void) const	{ return exponentBits() == 0						&& mantissaBits() != 0;	}
 
+	inline bool				operator<		(const Float<StorageType, ExponentBits, MantissaBits, ExponentBias, Flags>& other) const { return this->asDouble() < other.asDouble(); }
+
 	static Float			zero			(int sign);
 	static Float			inf				(int sign);
 	static Float			nan				(void);
diff --git a/framework/common/tcuResultCollector.cpp b/framework/common/tcuResultCollector.cpp
index 939f4d8..b12357a 100644
--- a/framework/common/tcuResultCollector.cpp
+++ b/framework/common/tcuResultCollector.cpp
@@ -39,6 +39,7 @@
 		case QP_TEST_RESULT_QUALITY_WARNING:		return 30;
 		case QP_TEST_RESULT_COMPATIBILITY_WARNING:	return 40;
 		case QP_TEST_RESULT_TIMEOUT:				return 50;
+		case QP_TEST_RESULT_WAIVER:					return 60;
 		case QP_TEST_RESULT_FAIL:					return 100;
 		case QP_TEST_RESULT_RESOURCE_ERROR:			return 110;
 		case QP_TEST_RESULT_INTERNAL_ERROR:			return 120;
diff --git a/framework/common/tcuTestContext.cpp b/framework/common/tcuTestContext.cpp
index 965d918..94f4f79 100644
--- a/framework/common/tcuTestContext.cpp
+++ b/framework/common/tcuTestContext.cpp
@@ -22,7 +22,7 @@
  *//*--------------------------------------------------------------------*/
 
 #include "tcuTestContext.hpp"
-
+#include "tcuCommandLine.hpp"
 #include "tcuTestLog.hpp"
 
 namespace tcu
@@ -46,6 +46,12 @@
 	setCurrentArchive(m_rootArchive);
 }
 
+void TestContext::writeSessionInfo(void)
+{
+	const std::string sessionInfo = "#sessionInfo commandLineParameters \"";
+	m_log.writeSessionInfo(sessionInfo + m_cmdLine.getInitialCmdLine() + "\"\n");
+}
+
 void TestContext::touchWatchdog (void)
 {
 	if (m_watchDog)
diff --git a/framework/common/tcuTestContext.hpp b/framework/common/tcuTestContext.hpp
index 0a8bddc..060a261 100644
--- a/framework/common/tcuTestContext.hpp
+++ b/framework/common/tcuTestContext.hpp
@@ -51,6 +51,8 @@
 							TestContext			(Platform& platform, Archive& rootArchive, TestLog& log, const CommandLine& cmdLine, qpWatchDog* watchDog);
 							~TestContext		(void) {}
 
+	void					writeSessionInfo	(void);
+
 	// API for test cases
 	TestLog&				getLog				(void)			{ return m_log;			}
 	Archive&				getArchive			(void)			{ return *m_curArchive;	} //!< \note Do not access in TestNode constructors.
diff --git a/framework/common/tcuTestHierarchyIterator.cpp b/framework/common/tcuTestHierarchyIterator.cpp
index 1fbb662..5c4ba63 100644
--- a/framework/common/tcuTestHierarchyIterator.cpp
+++ b/framework/common/tcuTestHierarchyIterator.cpp
@@ -64,6 +64,9 @@
 
 	testPackage->init();
 	testPackage->getChildren(children);
+
+	// write default session info if it was not done by package
+	m_testCtx.writeSessionInfo();
 }
 
 void DefaultHierarchyInflater::leaveTestPackage (TestPackage* testPackage)
diff --git a/framework/common/tcuTestLog.cpp b/framework/common/tcuTestLog.cpp
index 3c84ebb..16e2d2d 100644
--- a/framework/common/tcuTestLog.cpp
+++ b/framework/common/tcuTestLog.cpp
@@ -181,25 +181,16 @@
 
 // TestLog
 
-TestLog::TestLog (const char* fileName, int argc, char** argv, deUint32 flags)
-	: m_log(qpTestLog_createFileLog(fileName, argc, argv, flags))
+TestLog::TestLog (const char* fileName, deUint32 flags)
+	: m_log(qpTestLog_createFileLog(fileName, flags))
 {
 	if (!m_log)
 		throw ResourceError(std::string("Failed to open test log file '") + fileName + "'");
 }
 
-TestLog::TestLog (const char* fileName, const std::string& cmdLine, deUint32 flags)
+void TestLog::writeSessionInfo(std::string additionalInfo)
 {
-
-	deCommandLine* parsedCmdLine = deCommandLine_parse(cmdLine.c_str());
-	if (!parsedCmdLine)
-		throw std::bad_alloc();
-
-	m_log = qpTestLog_createFileLog(fileName, parsedCmdLine->numArgs, parsedCmdLine->args, flags);
-	deCommandLine_destroy(parsedCmdLine);
-
-	if (!m_log)
-		throw ResourceError(std::string("Failed to open test log file '") + fileName + "'");
+	qpTestLog_beginSession(m_log, additionalInfo.c_str());
 }
 
 TestLog::~TestLog (void)
diff --git a/framework/common/tcuTestLog.hpp b/framework/common/tcuTestLog.hpp
index 8323a8b..ab08573 100644
--- a/framework/common/tcuTestLog.hpp
+++ b/framework/common/tcuTestLog.hpp
@@ -102,10 +102,11 @@
 	typedef LogNumber<float>		Float;
 	typedef LogNumber<deInt64>		Integer;
 
-	explicit			TestLog					(const char* fileName, int argc = 0, char** argv = DE_NULL, deUint32 flags = 0);
-	explicit			TestLog					(const char* fileName, const std::string& cmdLine, deUint32 flags = 0);
+	explicit			TestLog					(const char* fileName, deUint32 flags = 0);
 						~TestLog				(void);
 
+	void				writeSessionInfo		(std::string additionalInfo = "");
+
 	MessageBuilder		operator<<				(const BeginMessageToken&);
 	MessageBuilder		message					(void);
 
diff --git a/framework/common/tcuTestSessionExecutor.cpp b/framework/common/tcuTestSessionExecutor.cpp
index bf7eb24..c7524f8 100644
--- a/framework/common/tcuTestSessionExecutor.cpp
+++ b/framework/common/tcuTestSessionExecutor.cpp
@@ -275,6 +275,7 @@
 			case QP_TEST_RESULT_NOT_SUPPORTED:			m_status.numNotSupported	+= 1;	break;
 			case QP_TEST_RESULT_QUALITY_WARNING:		m_status.numWarnings		+= 1;	break;
 			case QP_TEST_RESULT_COMPATIBILITY_WARNING:	m_status.numWarnings		+= 1;	break;
+			case QP_TEST_RESULT_WAIVER:					m_status.numWaived			+= 1;	break;
 			default:									m_status.numFailed			+= 1;	break;
 		}
 
diff --git a/framework/common/tcuTestSessionExecutor.hpp b/framework/common/tcuTestSessionExecutor.hpp
index b793ea7..0edd99b 100644
--- a/framework/common/tcuTestSessionExecutor.hpp
+++ b/framework/common/tcuTestSessionExecutor.hpp
@@ -47,6 +47,7 @@
 		numFailed		= 0;
 		numNotSupported	= 0;
 		numWarnings		= 0;
+		numWaived		= 0;
 		isComplete		= false;
 	}
 
@@ -55,6 +56,7 @@
 	int		numFailed;			//!< Number of cases failed.
 	int		numNotSupported;	//!< Number of cases not supported.
 	int		numWarnings;		//!< Number of QualityWarning / CompatibilityWarning results.
+	int		numWaived;			//!< Number of waived tests.
 	bool	isComplete;			//!< Is run complete.
 };
 
diff --git a/framework/common/tcuTexVerifierUtil.hpp b/framework/common/tcuTexVerifierUtil.hpp
index 839942c..cb9051d 100644
--- a/framework/common/tcuTexVerifierUtil.hpp
+++ b/framework/common/tcuTexVerifierUtil.hpp
@@ -56,34 +56,43 @@
 
 // Sampler introspection
 
-inline bool isNearestMipmapFilter (const Sampler::FilterMode mode)
+inline bool isNearestMipmapFilter(const Sampler::FilterMode mode)
 {
-	return mode == Sampler::NEAREST_MIPMAP_NEAREST || mode == Sampler::LINEAR_MIPMAP_NEAREST;
+	return mode == Sampler::NEAREST_MIPMAP_NEAREST || mode == Sampler::LINEAR_MIPMAP_NEAREST || mode == Sampler::CUBIC_MIPMAP_NEAREST;
 }
 
-inline bool isLinearMipmapFilter (const Sampler::FilterMode mode)
+inline bool isLinearMipmapFilter(const Sampler::FilterMode mode)
 {
-	return mode == Sampler::NEAREST_MIPMAP_LINEAR || mode == Sampler::LINEAR_MIPMAP_LINEAR;
+	return mode == Sampler::NEAREST_MIPMAP_LINEAR || mode == Sampler::LINEAR_MIPMAP_LINEAR || mode == Sampler::CUBIC_MIPMAP_LINEAR;
 }
 
-inline bool isMipmapFilter (const Sampler::FilterMode mode)
+inline bool isMipmapFilter(const Sampler::FilterMode mode)
 {
 	return isNearestMipmapFilter(mode) || isLinearMipmapFilter(mode);
 }
 
-inline bool isLinearFilter (const Sampler::FilterMode mode)
+inline bool isNearestFilter(const Sampler::FilterMode mode)
+{
+	return mode == Sampler::NEAREST || mode == Sampler::NEAREST_MIPMAP_NEAREST || mode == Sampler::NEAREST_MIPMAP_LINEAR;
+}
+
+inline bool isLinearFilter(const Sampler::FilterMode mode)
 {
 	return mode == Sampler::LINEAR || mode == Sampler::LINEAR_MIPMAP_NEAREST || mode == Sampler::LINEAR_MIPMAP_LINEAR;
 }
 
-inline bool isNearestFilter (const Sampler::FilterMode mode)
+inline bool isCubicFilter(const Sampler::FilterMode mode)
 {
-	return !isLinearFilter(mode);
+	return mode == Sampler::CUBIC || mode == Sampler::CUBIC_MIPMAP_NEAREST || mode == Sampler::CUBIC_MIPMAP_LINEAR;
 }
 
-inline Sampler::FilterMode getLevelFilter (const Sampler::FilterMode mode)
+inline Sampler::FilterMode getLevelFilter(const Sampler::FilterMode mode)
 {
-	return isLinearFilter(mode) ? Sampler::LINEAR : Sampler::NEAREST;
+	if (isNearestFilter(mode))
+		return Sampler::NEAREST;
+	if (isLinearFilter(mode))
+		return Sampler::LINEAR;
+	return Sampler::CUBIC;
 }
 
 inline bool isWrapModeSupported (const Sampler::WrapMode mode)
diff --git a/framework/common/tcuTexture.cpp b/framework/common/tcuTexture.cpp
index 087e342..5dc7aa3 100644
--- a/framework/common/tcuTexture.cpp
+++ b/framework/common/tcuTexture.cpp
@@ -32,6 +32,7 @@
 #include "tcuTextureUtil.hpp"
 #include "deStringUtil.hpp"
 #include "deArrayUtil.hpp"
+#include "tcuMatrix.hpp"
 
 #include <limits>
 
@@ -1880,6 +1881,44 @@
 	return p0 * (1.0f - a) + p1 * a;
 }
 
+static Vec4 sampleCubic1D(const ConstPixelBufferAccess& access, const Sampler& sampler, float u, const IVec2& offset)
+{
+	int width = access.getWidth();
+
+	tcu::IVec4 x, i;
+
+	x[0] = deFloorFloatToInt32(u - 1.5f) + offset.x();
+	x[1] = x[0] + 1;
+	x[2] = x[1] + 1;
+	x[3] = x[2] + 1;
+
+	for (deUint32 m = 0; m < 4; ++m)
+		i[m] = wrap(sampler.wrapS, x[m], width);
+
+	bool iUseBorder[4];
+	for (deUint32 m = 0; m < 4; ++m)
+		iUseBorder[m] = sampler.wrapS == Sampler::CLAMP_TO_BORDER && !de::inBounds(i[m], 0, width);
+
+	// Catmull-Rom basis matrix
+	static const float crValues[16] = { 0.0f,	1.0f,	0.0f,	0.0f,
+										-0.5f,	0.0f,	0.5f,	0.0f,
+										1.0f,	-2.5f,	2.0f,	-0.5f,
+										-0.5f,	1.5f,	-1.5f,	0.5f };
+	static const tcu::Mat4 crBasis(crValues);
+
+	float		a = deFloatFrac(u - 0.5f);
+	tcu::Vec4	alpha(1, a, a*a, a*a*a);
+	tcu::Vec4	wi = alpha * crBasis;
+
+	tcu::Vec4 result(0.0f, 0.0f, 0.0f, 0.0f);
+	for (deUint32 m = 0; m < 4; ++m)
+	{
+		tcu::Vec4 p = (iUseBorder[m]) ? lookupBorder(access.getFormat(), sampler) : lookup(access, i[m], offset.y(), 0);
+		result += wi[m] * p;
+	}
+	return result;
+}
+
 static Vec4 sampleLinear2D (const ConstPixelBufferAccess& access, const Sampler& sampler, float u, float v, const IVec3& offset)
 {
 	int w = access.getWidth();
@@ -1916,6 +1955,57 @@
 		   (p11*(     a)*(     b));
 }
 
+static Vec4 sampleCubic2D(const ConstPixelBufferAccess& access, const Sampler& sampler, float u, float v, const IVec3& offset)
+{
+	int width	= access.getWidth();
+	int height	= access.getHeight();
+
+	tcu::IVec4 x, y, i, j;
+
+	x[0] = deFloorFloatToInt32(u - 1.5f) + offset.x();
+	x[1] = x[0] + 1;
+	x[2] = x[1] + 1;
+	x[3] = x[2] + 1;
+	y[0] = deFloorFloatToInt32(v - 1.5f) + offset.y();
+	y[1] = y[0] + 1;
+	y[2] = y[1] + 1;
+	y[3] = y[2] + 1;
+
+	for (deUint32 m = 0; m < 4; ++m)
+		i[m] = wrap(sampler.wrapS, x[m], width);
+	for (deUint32 n = 0; n < 4; ++n)
+		j[n] = wrap(sampler.wrapT, y[n], height);
+
+	bool iUseBorder[4], jUseBorder[4];
+	for (deUint32 m = 0; m < 4; ++m)
+		iUseBorder[m] = sampler.wrapS == Sampler::CLAMP_TO_BORDER && !de::inBounds(i[m], 0, width);
+	for (deUint32 n = 0; n < 4; ++n)
+		jUseBorder[n] = sampler.wrapT == Sampler::CLAMP_TO_BORDER && !de::inBounds(j[n], 0, height);
+
+	// Catmull-Rom basis matrix
+	static const float crValues[16] = {	0.0f,	1.0f,	0.0f,	0.0f,
+										-0.5f,	0.0f,	0.5f,	0.0f,
+										1.0f,	-2.5f,	2.0f,	-0.5f,
+										-0.5f,	1.5f,	-1.5f,	0.5f };
+	static const tcu::Mat4 crBasis(crValues);
+
+	float		a		= deFloatFrac(u - 0.5f);
+	float		b		= deFloatFrac(v - 0.5f);
+	tcu::Vec4	alpha	(1, a, a*a, a*a*a);
+	tcu::Vec4	beta	(1, b, b*b, b*b*b);
+	tcu::Vec4	wi		= alpha * crBasis;
+	tcu::Vec4	wj		= beta  * crBasis;
+
+	tcu::Vec4 result(0.0f, 0.0f, 0.0f, 0.0f);
+	for (deUint32 n = 0; n < 4; ++n)
+		for (deUint32 m = 0; m < 4; ++m)
+		{
+			tcu::Vec4 p = (iUseBorder[m] || jUseBorder[n]) ? lookupBorder(access.getFormat(), sampler) : lookup(access, i[m], j[n], offset.z());
+			result += wi[m] * wj[n] * p;
+		}
+	return result;
+}
+
 static float sampleLinear1DCompare (const ConstPixelBufferAccess& access, const Sampler& sampler, float ref, float u, const IVec2& offset, bool isFixedPointDepthFormat)
 {
 	int w = access.getWidth();
@@ -2037,6 +2127,70 @@
 		   (p111*(     a)*(     b)*(     c));
 }
 
+static Vec4 sampleCubic3D(const ConstPixelBufferAccess& access, const Sampler& sampler, float u, float v, float w, const IVec3& offset)
+{
+	int width	= access.getWidth();
+	int height	= access.getHeight();
+	int depth	= access.getDepth();
+
+	tcu::IVec4 x, y, z, i, j, k;
+
+	x[0] = deFloorFloatToInt32(u - 1.5f) + offset.x();
+	x[1] = x[0] + 1;
+	x[2] = x[1] + 1;
+	x[3] = x[2] + 1;
+	y[0] = deFloorFloatToInt32(v - 1.5f) + offset.y();
+	y[1] = y[0] + 1;
+	y[2] = y[1] + 1;
+	y[3] = y[2] + 1;
+	z[0] = deFloorFloatToInt32(w - 1.5f) + offset.z();
+	z[1] = z[0] + 1;
+	z[2] = z[1] + 1;
+	z[3] = z[2] + 1;
+
+	for (deUint32 m = 0; m < 4; ++m)
+		i[m] = wrap(sampler.wrapS, x[m], width);
+	for (deUint32 n = 0; n < 4; ++n)
+		j[n] = wrap(sampler.wrapT, y[n], height);
+	for (deUint32 o = 0; o < 4; ++o)
+		k[o] = wrap(sampler.wrapR, k[o], depth);
+
+	bool iUseBorder[4], jUseBorder[4], kUseBorder[4];
+	for (deUint32 m = 0; m < 4; ++m)
+		iUseBorder[m] = sampler.wrapS == Sampler::CLAMP_TO_BORDER && !de::inBounds(i[m], 0, width);
+	for (deUint32 n = 0; n < 4; ++n)
+		jUseBorder[n] = sampler.wrapT == Sampler::CLAMP_TO_BORDER && !de::inBounds(j[n], 0, height);
+	for (deUint32 o = 0; o < 4; ++o)
+		kUseBorder[o] = sampler.wrapR == Sampler::CLAMP_TO_BORDER && !de::inBounds(k[o], 0, depth);
+
+	// Catmull-Rom basis matrix
+	static const float crValues[16] = {	0.0f,	1.0f,	0.0f,	0.0f,
+										-0.5f,	0.0f,	0.5f,	0.0f,
+										1.0f,	-2.5f,	2.0f,	-0.5f,
+										-0.5f,	1.5f,	-1.5f,	0.5f };
+	static const tcu::Mat4 crBasis(crValues);
+
+	float		a		= deFloatFrac(u - 0.5f);
+	float		b		= deFloatFrac(v - 0.5f);
+	float		c		= deFloatFrac(w - 0.5f);
+	tcu::Vec4	alpha	(1, a, a*a, a*a*a);
+	tcu::Vec4	beta	(1, b, b*b, b*b*b);
+	tcu::Vec4	gamma	(1, c, c*c, c*c*c);
+	tcu::Vec4	wi		= alpha * crBasis;
+	tcu::Vec4	wj		= beta  * crBasis;
+	tcu::Vec4	wk		= gamma * crBasis;
+
+	tcu::Vec4 result(0.0f, 0.0f, 0.0f, 0.0f);
+	for (deUint32 o = 0; o < 4; ++o)
+		for (deUint32 n = 0; n < 4; ++n)
+			for (deUint32 m = 0; m < 4; ++m)
+			{
+				tcu::Vec4 p = (iUseBorder[m] || jUseBorder[n] || kUseBorder[o]) ? lookupBorder(access.getFormat(), sampler) : lookup(access, i[m], j[n], k[o]);
+				result += wi[m] * wj[n] * wk[o] * p;
+			}
+	return result;
+}
+
 Vec4 ConstPixelBufferAccess::sample1D (const Sampler& sampler, Sampler::FilterMode filter, float s, int level) const
 {
 	// check selected layer exists
@@ -2074,6 +2228,7 @@
 	{
 		case Sampler::NEAREST:	return sampleNearest1D	(*this, sampler, u, offset);
 		case Sampler::LINEAR:	return sampleLinear1D	(*this, sampler, u, offset);
+		case Sampler::CUBIC:	return sampleCubic1D	(*this, sampler, u, offset);
 		default:
 			DE_ASSERT(DE_FALSE);
 			return Vec4(0.0f);
@@ -2100,6 +2255,7 @@
 	{
 		case Sampler::NEAREST:	return sampleNearest2D	(*this, sampler, u, v, offset);
 		case Sampler::LINEAR:	return sampleLinear2D	(*this, sampler, u, v, offset);
+		case Sampler::CUBIC:	return sampleCubic2D	(*this, sampler, u, v, offset);
 		default:
 			DE_ASSERT(DE_FALSE);
 			return Vec4(0.0f);
@@ -2124,6 +2280,7 @@
 	{
 		case Sampler::NEAREST:	return sampleNearest3D	(*this, sampler, u, v, w, offset);
 		case Sampler::LINEAR:	return sampleLinear3D	(*this, sampler, u, v, w, offset);
+		case Sampler::CUBIC:	return sampleCubic3D	(*this, sampler, u, v, w, offset);
 		default:
 			DE_ASSERT(DE_FALSE);
 			return Vec4(0.0f);
@@ -2227,9 +2384,9 @@
 	return sampleLevelArray1DOffset(levels, numLevels, sampler, s, lod, IVec2(0, depth)); // y-offset in 1D textures is layer selector
 }
 
-Vec4 sampleLevelArray2D (const ConstPixelBufferAccess* levels, int numLevels, const Sampler& sampler, float s, float t, int depth, float lod)
+Vec4 sampleLevelArray2D (const ConstPixelBufferAccess* levels, int numLevels, const Sampler& sampler, float s, float t, int depth, float lod, bool es2)
 {
-	return sampleLevelArray2DOffset(levels, numLevels, sampler, s, t, lod, IVec3(0, 0, depth)); // z-offset in 2D textures is layer selector
+	return sampleLevelArray2DOffset(levels, numLevels, sampler, s, t, lod, IVec3(0, 0, depth), es2); // z-offset in 2D textures is layer selector
 }
 
 Vec4 sampleLevelArray3D (const ConstPixelBufferAccess* levels, int numLevels, const Sampler& sampler, float s, float t, float r, float lod)
@@ -2277,33 +2434,61 @@
 	}
 }
 
-Vec4 sampleLevelArray2DOffset (const ConstPixelBufferAccess* levels, int numLevels, const Sampler& sampler, float s, float t, float lod, const IVec3& offset)
+Vec4 sampleLevelArray2DOffset (const ConstPixelBufferAccess* levels, int numLevels, const Sampler& sampler, float s, float t, float lod, const IVec3& offset, bool es2)
 {
-	bool					magnified	= lod <= sampler.lodThreshold;
+	bool					magnified;
+
+	if (es2 && sampler.magFilter == Sampler::LINEAR &&
+		(sampler.minFilter == Sampler::NEAREST_MIPMAP_NEAREST || sampler.minFilter == Sampler::NEAREST_MIPMAP_LINEAR))
+		magnified = lod <= 0.5;
+	else
+		magnified = lod <= sampler.lodThreshold;
 	Sampler::FilterMode		filterMode	= magnified ? sampler.magFilter : sampler.minFilter;
 
 	switch (filterMode)
 	{
-		case Sampler::NEAREST:	return levels[0].sample2DOffset(sampler, filterMode, s, t, offset);
-		case Sampler::LINEAR:	return levels[0].sample2DOffset(sampler, filterMode, s, t, offset);
+		case Sampler::NEAREST:
+		case Sampler::LINEAR:
+		case Sampler::CUBIC:
+			return levels[0].sample2DOffset(sampler, filterMode, s, t, offset);
 
 		case Sampler::NEAREST_MIPMAP_NEAREST:
 		case Sampler::LINEAR_MIPMAP_NEAREST:
+		case Sampler::CUBIC_MIPMAP_NEAREST:
 		{
 			int					maxLevel	= (int)numLevels-1;
 			int					level		= deClamp32((int)deFloatCeil(lod + 0.5f) - 1, 0, maxLevel);
-			Sampler::FilterMode	levelFilter	= (filterMode == Sampler::LINEAR_MIPMAP_NEAREST) ? Sampler::LINEAR : Sampler::NEAREST;
+			Sampler::FilterMode	levelFilter;
+			switch (filterMode)
+			{
+			case Sampler::NEAREST_MIPMAP_NEAREST:	levelFilter = Sampler::NEAREST; break;
+			case Sampler::LINEAR_MIPMAP_NEAREST:	levelFilter = Sampler::LINEAR; break;
+			case Sampler::CUBIC_MIPMAP_NEAREST:		levelFilter = Sampler::CUBIC; break;
+			default:
+				DE_ASSERT(DE_FALSE);
+				return Vec4(0.0f);
+			}
 
 			return levels[level].sample2DOffset(sampler, levelFilter, s, t, offset);
 		}
 
 		case Sampler::NEAREST_MIPMAP_LINEAR:
 		case Sampler::LINEAR_MIPMAP_LINEAR:
+		case Sampler::CUBIC_MIPMAP_LINEAR:
 		{
 			int					maxLevel	= (int)numLevels-1;
 			int					level0		= deClamp32((int)deFloatFloor(lod), 0, maxLevel);
 			int					level1		= de::min(maxLevel, level0 + 1);
-			Sampler::FilterMode	levelFilter	= (filterMode == Sampler::LINEAR_MIPMAP_LINEAR) ? Sampler::LINEAR : Sampler::NEAREST;
+			Sampler::FilterMode	levelFilter;
+			switch (filterMode)
+			{
+			case Sampler::NEAREST_MIPMAP_LINEAR:	levelFilter = Sampler::NEAREST; break;
+			case Sampler::LINEAR_MIPMAP_LINEAR:		levelFilter = Sampler::LINEAR; break;
+			case Sampler::CUBIC_MIPMAP_LINEAR:		levelFilter = Sampler::CUBIC; break;
+			default:
+				DE_ASSERT(DE_FALSE);
+				return Vec4(0.0f);
+			}
 			float				f			= deFloatFrac(lod);
 			tcu::Vec4			t0			= levels[level0].sample2DOffset(sampler, levelFilter, s, t, offset);
 			tcu::Vec4			t1			= levels[level1].sample2DOffset(sampler, levelFilter, s, t, offset);
@@ -3285,11 +3470,11 @@
 
 // Texture2D
 
-Texture2D::Texture2D (const TextureFormat& format, int width, int height)
+Texture2D::Texture2D (const TextureFormat& format, int width, int height, bool es2)
 	: TextureLevelPyramid	(format, computeMipPyramidLevels(width, height))
 	, m_width				(width)
 	, m_height				(height)
-	, m_view				(getNumLevels(), getLevels())
+	, m_view				(getNumLevels(), getLevels(), es2)
 {
 }
 
@@ -3305,7 +3490,7 @@
 	: TextureLevelPyramid	(other)
 	, m_width				(other.m_width)
 	, m_height				(other.m_height)
-	, m_view				(getNumLevels(), getLevels())
+	, m_view				(getNumLevels(), getLevels(), other.getView().isES2())
 {
 }
 
@@ -3318,7 +3503,7 @@
 
 	m_width		= other.m_width;
 	m_height	= other.m_height;
-	m_view		= Texture2DView(getNumLevels(), getLevels());
+	m_view		= Texture2DView(getNumLevels(), getLevels(), other.getView().isES2());
 
 	return *this;
 }
@@ -3346,8 +3531,9 @@
 		m_levels[ndx] = DE_NULL;
 }
 
-TextureCubeView::TextureCubeView (int numLevels, const ConstPixelBufferAccess* const (&levels) [CUBEFACE_LAST])
+TextureCubeView::TextureCubeView (int numLevels, const ConstPixelBufferAccess* const (&levels) [CUBEFACE_LAST], bool es2)
 	: m_numLevels(numLevels)
+	, m_es2(es2)
 {
 	for (int ndx = 0; ndx < CUBEFACE_LAST; ndx++)
 		m_levels[ndx] = levels[ndx];
@@ -3362,7 +3548,7 @@
 	if (sampler.seamlessCubeMap)
 		return sampleLevelArrayCubeSeamless(m_levels, m_numLevels, coords.face, sampler, coords.s, coords.t, 0 /* depth */, lod);
 	else
-		return sampleLevelArray2D(m_levels[coords.face], m_numLevels, sampler, coords.s, coords.t, 0 /* depth */, lod);
+		return sampleLevelArray2D(m_levels[coords.face], m_numLevels, sampler, coords.s, coords.t, 0 /* depth */, lod, m_es2);
 }
 
 float TextureCubeView::sampleCompare (const Sampler& sampler, float ref, float s, float t, float r, float lod) const
@@ -3428,7 +3614,7 @@
 
 // TextureCube
 
-TextureCube::TextureCube (const TextureFormat& format, int size)
+TextureCube::TextureCube (const TextureFormat& format, int size, bool es2)
 	: m_format	(format)
 	, m_size	(size)
 {
@@ -3442,7 +3628,7 @@
 		levels[face] = &m_access[face][0];
 	}
 
-	m_view = TextureCubeView(numLevels, levels);
+	m_view = TextureCubeView(numLevels, levels, es2);
 }
 
 TextureCube::TextureCube (const TextureCube& other)
@@ -3459,7 +3645,7 @@
 		levels[face] = &m_access[face][0];
 	}
 
-	m_view = TextureCubeView(numLevels, levels);
+	m_view = TextureCubeView(numLevels, levels, other.getView().isES2());
 
 	for (int levelNdx = 0; levelNdx < numLevels; levelNdx++)
 	{
@@ -3492,7 +3678,7 @@
 
 	m_format	= other.m_format;
 	m_size		= other.m_size;
-	m_view		= TextureCubeView(numLevels, levels);
+	m_view		= TextureCubeView(numLevels, levels, other.getView().isES2());
 
 	for (int levelNdx = 0; levelNdx < numLevels; levelNdx++)
 	{
@@ -3536,7 +3722,7 @@
 
 // Texture1DArrayView
 
-Texture1DArrayView::Texture1DArrayView (int numLevels, const ConstPixelBufferAccess* levels)
+Texture1DArrayView::Texture1DArrayView (int numLevels, const ConstPixelBufferAccess* levels, bool es2 DE_UNUSED_ATTR)
 	: m_numLevels	(numLevels)
 	, m_levels		(levels)
 {
@@ -3570,7 +3756,7 @@
 
 // Texture2DArrayView
 
-Texture2DArrayView::Texture2DArrayView (int numLevels, const ConstPixelBufferAccess* levels)
+Texture2DArrayView::Texture2DArrayView (int numLevels, const ConstPixelBufferAccess* levels, bool es2 DE_UNUSED_ATTR)
 	: m_numLevels	(numLevels)
 	, m_levels		(levels)
 {
@@ -3708,7 +3894,7 @@
 
 // Texture3DView
 
-Texture3DView::Texture3DView (int numLevels, const ConstPixelBufferAccess* levels)
+Texture3DView::Texture3DView (int numLevels, const ConstPixelBufferAccess* levels, bool es2 DE_UNUSED_ATTR)
 	: m_numLevels	(numLevels)
 	, m_levels		(levels)
 {
@@ -3766,7 +3952,7 @@
 
 // TextureCubeArrayView
 
-TextureCubeArrayView::TextureCubeArrayView (int numLevels, const ConstPixelBufferAccess* levels)
+TextureCubeArrayView::TextureCubeArrayView (int numLevels, const ConstPixelBufferAccess* levels, bool es2 DE_UNUSED_ATTR)
 	: m_numLevels	(numLevels)
 	, m_levels		(levels)
 {
diff --git a/framework/common/tcuTexture.hpp b/framework/common/tcuTexture.hpp
index 52c6685..d06e67a 100644
--- a/framework/common/tcuTexture.hpp
+++ b/framework/common/tcuTexture.hpp
@@ -205,11 +205,14 @@
 	{
 		NEAREST = 0,
 		LINEAR,
+		CUBIC,
 
 		NEAREST_MIPMAP_NEAREST,
 		NEAREST_MIPMAP_LINEAR,
 		LINEAR_MIPMAP_NEAREST,
 		LINEAR_MIPMAP_LINEAR,
+		CUBIC_MIPMAP_NEAREST,
+		CUBIC_MIPMAP_LINEAR,
 
 		FILTERMODE_LAST
 	};
@@ -467,11 +470,11 @@
 } DE_WARN_UNUSED_TYPE;
 
 Vec4	sampleLevelArray1D				(const ConstPixelBufferAccess* levels, int numLevels, const Sampler& sampler, float s, int level, float lod);
-Vec4	sampleLevelArray2D				(const ConstPixelBufferAccess* levels, int numLevels, const Sampler& sampler, float s, float t, int depth, float lod);
+Vec4	sampleLevelArray2D				(const ConstPixelBufferAccess* levels, int numLevels, const Sampler& sampler, float s, float t, int depth, float lod, bool es2 = false);
 Vec4	sampleLevelArray3D				(const ConstPixelBufferAccess* levels, int numLevels, const Sampler& sampler, float s, float t, float r, float lod);
 
 Vec4	sampleLevelArray1DOffset		(const ConstPixelBufferAccess* levels, int numLevels, const Sampler& sampler, float s, float lod, const IVec2& offset);
-Vec4	sampleLevelArray2DOffset		(const ConstPixelBufferAccess* levels, int numLevels, const Sampler& sampler, float s, float t, float lod, const IVec3& offset);
+Vec4	sampleLevelArray2DOffset		(const ConstPixelBufferAccess* levels, int numLevels, const Sampler& sampler, float s, float t, float lod, const IVec3& offset, bool es2 = false);
 Vec4	sampleLevelArray3DOffset		(const ConstPixelBufferAccess* levels, int numLevels, const Sampler& sampler, float s, float t, float r, float lod, const IVec3& offset);
 
 float	sampleLevelArray1DCompare		(const ConstPixelBufferAccess* levels, int numLevels, const Sampler& sampler, float ref, float s, float lod, const IVec2& offset);
@@ -520,12 +523,13 @@
 class Texture1DView
 {
 public:
-									Texture1DView		(int numLevels, const ConstPixelBufferAccess* levels);
+									Texture1DView		(int numLevels, const ConstPixelBufferAccess* levels, bool es2);
 
 	int								getNumLevels		(void) const	{ return m_numLevels;										}
 	int								getWidth			(void) const	{ return m_numLevels > 0 ? m_levels[0].getWidth()	: 0;	}
 	const ConstPixelBufferAccess&	getLevel			(int ndx) const	{ DE_ASSERT(de::inBounds(ndx, 0, m_numLevels)); return m_levels[ndx];	}
 	const ConstPixelBufferAccess*	getLevels			(void) const	{ return m_levels;											}
+	bool								isES2					(void) const	{ return false;												}
 
 	Vec4							sample				(const Sampler& sampler, float s, float lod) const;
 	Vec4							sampleOffset		(const Sampler& sampler, float s, float lod, deInt32 offset) const;
@@ -537,7 +541,7 @@
 	const ConstPixelBufferAccess*	m_levels;
 } DE_WARN_UNUSED_TYPE;
 
-inline Texture1DView::Texture1DView (int numLevels, const ConstPixelBufferAccess* levels)
+inline Texture1DView::Texture1DView (int numLevels, const ConstPixelBufferAccess* levels, bool es2 DE_UNUSED_ATTR = false)
 	: m_numLevels	(numLevels)
 	, m_levels		(levels)
 {
@@ -570,13 +574,14 @@
 class Texture2DView
 {
 public:
-									Texture2DView		(int numLevels, const ConstPixelBufferAccess* levels);
+									Texture2DView		(int numLevels, const ConstPixelBufferAccess* levels, bool es2 = false);
 
 	int								getNumLevels		(void) const	{ return m_numLevels;										}
 	int								getWidth			(void) const	{ return m_numLevels > 0 ? m_levels[0].getWidth()	: 0;	}
 	int								getHeight			(void) const	{ return m_numLevels > 0 ? m_levels[0].getHeight()	: 0;	}
 	const ConstPixelBufferAccess&	getLevel			(int ndx) const	{ DE_ASSERT(de::inBounds(ndx, 0, m_numLevels)); return m_levels[ndx];	}
 	const ConstPixelBufferAccess*	getLevels			(void) const	{ return m_levels;											}
+	bool								isES2					(void) const	{ return m_es2;												}
 
 	Vec4							sample				(const Sampler& sampler, float s, float t, float lod) const;
 	Vec4							sampleOffset		(const Sampler& sampler, float s, float t, float lod, const IVec2& offset) const;
@@ -589,18 +594,20 @@
 protected:
 	int								m_numLevels;
 	const ConstPixelBufferAccess*	m_levels;
+	bool								m_es2;
 } DE_WARN_UNUSED_TYPE;
 
-inline Texture2DView::Texture2DView (int numLevels, const ConstPixelBufferAccess* levels)
+inline Texture2DView::Texture2DView (int numLevels, const ConstPixelBufferAccess* levels, bool es2)
 	: m_numLevels	(numLevels)
 	, m_levels		(levels)
+	, m_es2			(es2)
 {
 	DE_ASSERT(m_numLevels >= 0 && ((m_numLevels == 0) == !m_levels));
 }
 
 inline Vec4 Texture2DView::sample (const Sampler& sampler, float s, float t, float lod) const
 {
-	return sampleLevelArray2D(m_levels, m_numLevels, sampler, s, t, 0 /* depth */, lod);
+	return sampleLevelArray2D(m_levels, m_numLevels, sampler, s, t, 0 /* depth */, lod, m_es2);
 }
 
 inline Vec4 Texture2DView::sampleOffset (const Sampler& sampler, float s, float t, float lod, const IVec2& offset) const
@@ -723,7 +730,7 @@
 class Texture2D : private TextureLevelPyramid
 {
 public:
-									Texture2D			(const TextureFormat& format, int width, int height);
+									Texture2D			(const TextureFormat& format, int width, int height, bool es2 = false);
 									Texture2D			(const TextureFormat& format, int width, int height, int mipmaps);
 									Texture2D			(const Texture2D& other);
 									~Texture2D			(void);
@@ -796,9 +803,10 @@
 {
 public:
 									TextureCubeView		(void);
-									TextureCubeView		(int numLevels, const ConstPixelBufferAccess* const (&levels)[CUBEFACE_LAST]);
+									TextureCubeView		(int numLevels, const ConstPixelBufferAccess* const (&levels)[CUBEFACE_LAST], bool es2 = false);
 
 	int								getNumLevels		(void) const	{ return m_numLevels;										}
+	bool								isES2					(void) const	{ return m_es2;												}
 	int								getSize				(void) const	{ return m_numLevels > 0 ? m_levels[0][0].getWidth() : 0;	}
 	const ConstPixelBufferAccess&	getLevelFace		(int ndx, CubeFace face) const	{ DE_ASSERT(de::inBounds(ndx, 0, m_numLevels)); return m_levels[face][ndx];	}
 	const ConstPixelBufferAccess*	getFaceLevels		(CubeFace face) const			{ return m_levels[face];					}
@@ -812,6 +820,7 @@
 protected:
 	int								m_numLevels;
 	const ConstPixelBufferAccess*	m_levels[CUBEFACE_LAST];
+	bool								m_es2;
 } DE_WARN_UNUSED_TYPE;
 
 /*--------------------------------------------------------------------*//*!
@@ -820,12 +829,13 @@
 class TextureCube
 {
 public:
-									TextureCube			(const TextureFormat& format, int size);
+									TextureCube			(const TextureFormat& format, int size, bool es2 = false);
 									TextureCube			(const TextureCube& other);
 									~TextureCube		(void);
 
 	const TextureFormat&			getFormat			(void) const	{ return m_format;	}
 	int								getSize				(void) const	{ return m_size;	}
+	const TextureCubeView&		getView				(void) const	{ return m_view;	}
 
 	int								getNumLevels		(void) const					{ return (int)m_access[0].size();	}
 	const ConstPixelBufferAccess&	getLevelFace		(int ndx, CubeFace face) const	{ DE_ASSERT(de::inBounds(ndx, 0, getNumLevels())); return m_access[face][(size_t)ndx];	}
@@ -881,13 +891,14 @@
 class Texture1DArrayView
 {
 public:
-									Texture1DArrayView	(int numLevels, const ConstPixelBufferAccess* levels);
+									Texture1DArrayView	(int numLevels, const ConstPixelBufferAccess* levels, bool es2 = false);
 
 	int								getWidth			(void) const	{ return m_numLevels > 0 ? m_levels[0].getWidth()	: 0;	}
 	int								getNumLayers		(void) const	{ return m_numLevels > 0 ? m_levels[0].getHeight()	: 0;	}
 	int								getNumLevels		(void) const	{ return m_numLevels;										}
 	const ConstPixelBufferAccess&	getLevel			(int ndx) const	{ DE_ASSERT(de::inBounds(ndx, 0, m_numLevels)); return m_levels[ndx];	}
 	const ConstPixelBufferAccess*	getLevels			(void) const	{ return m_levels;											}
+	bool								isES2						(void) const	{ return false;												}
 
 	Vec4							sample				(const Sampler& sampler, float s, float t, float lod) const;
 	Vec4							sampleOffset		(const Sampler& sampler, float s, float t, float lod, deInt32 offset) const;
@@ -907,7 +918,7 @@
 class Texture2DArrayView
 {
 public:
-									Texture2DArrayView	(int numLevels, const ConstPixelBufferAccess* levels);
+									Texture2DArrayView	(int numLevels, const ConstPixelBufferAccess* levels, bool es2 = false);
 
 	int								getWidth			(void) const	{ return m_numLevels > 0 ? m_levels[0].getWidth()	: 0;	}
 	int								getHeight			(void) const	{ return m_numLevels > 0 ? m_levels[0].getHeight()	: 0;	}
@@ -915,6 +926,7 @@
 	int								getNumLevels		(void) const	{ return m_numLevels;										}
 	const ConstPixelBufferAccess&	getLevel			(int ndx) const	{ DE_ASSERT(de::inBounds(ndx, 0, m_numLevels)); return m_levels[ndx];	}
 	const ConstPixelBufferAccess*	getLevels			(void) const	{ return m_levels;											}
+	bool								isES2						(void) const	{ return false;												}
 
 	Vec4							sample				(const Sampler& sampler, float s, float t, float r, float lod) const;
 	Vec4							sampleOffset		(const Sampler& sampler, float s, float t, float r, float lod, const IVec2& offset) const;
@@ -1064,7 +1076,7 @@
 class Texture3DView
 {
 public:
-									Texture3DView		(int numLevels, const ConstPixelBufferAccess* levels);
+									Texture3DView		(int numLevels, const ConstPixelBufferAccess* levels, bool es2 = false);
 
 	int								getWidth			(void) const	{ return m_numLevels > 0 ? m_levels[0].getWidth()	: 0;	}
 	int								getHeight			(void) const	{ return m_numLevels > 0 ? m_levels[0].getHeight()	: 0;	}
@@ -1072,6 +1084,7 @@
 	int								getNumLevels		(void) const	{ return m_numLevels;										}
 	const ConstPixelBufferAccess&	getLevel			(int ndx) const	{ DE_ASSERT(de::inBounds(ndx, 0, m_numLevels)); return m_levels[ndx];	}
 	const ConstPixelBufferAccess*	getLevels			(void) const	{ return m_levels;											}
+	bool								isES2						(void) const	{ return false;												}
 
 	Vec4							sample				(const Sampler& sampler, float s, float t, float r, float lod) const;
 	Vec4							sampleOffset		(const Sampler& sampler, float s, float t, float r, float lod, const IVec3& offset) const;
@@ -1143,7 +1156,7 @@
 class TextureCubeArrayView
 {
 public:
-									TextureCubeArrayView	(int numLevels, const ConstPixelBufferAccess* levels);
+									TextureCubeArrayView	(int numLevels, const ConstPixelBufferAccess* levels, bool es2 = false);
 
 	int								getSize					(void) const	{ return m_numLevels > 0 ? m_levels[0].getWidth()	: 0;	}
 	int								getDepth				(void) const	{ return m_numLevels > 0 ? m_levels[0].getDepth()	: 0;	}
@@ -1151,6 +1164,7 @@
 	int								getNumLevels			(void) const	{ return m_numLevels;										}
 	const ConstPixelBufferAccess&	getLevel				(int ndx) const	{ DE_ASSERT(de::inBounds(ndx, 0, m_numLevels)); return m_levels[ndx];	}
 	const ConstPixelBufferAccess*	getLevels				(void) const	{ return m_levels;											}
+	bool									isES2						(void) const	{ return false;												}
 
 	Vec4							sample					(const Sampler& sampler, float s, float t, float r, float q, float lod) const;
 	Vec4							sampleOffset			(const Sampler& sampler, float s, float t, float r, float q, float lod, const IVec2& offset) const;
diff --git a/framework/common/tcuTextureUtil.cpp b/framework/common/tcuTextureUtil.cpp
index 865af8e..93b1dc3 100644
--- a/framework/common/tcuTextureUtil.cpp
+++ b/framework/common/tcuTextureUtil.cpp
@@ -158,7 +158,7 @@
 	}
 }
 
-//! Get texture channel class for format
+//! Get texture channel class for format - how the values are stored (not how they are sampled)
 TextureChannelClass getTextureChannelClass (TextureFormat::ChannelType channelType)
 {
 	// make sure this table is updated if format table is updated
@@ -1467,7 +1467,7 @@
 {
 	storage.resize(src.getNumLevels());
 
-	ViewType view = ViewType(src.getNumLevels(), &storage[0]);
+	ViewType view = ViewType(src.getNumLevels(), &storage[0], src.isES2());
 
 	for (int levelNdx = 0; levelNdx < src.getNumLevels(); ++levelNdx)
 		storage[levelNdx] = tcu::getEffectiveDepthStencilAccess(src.getLevel(levelNdx), sampler.depthStencilMode);
@@ -1489,7 +1489,7 @@
 		&storage[5 * src.getNumLevels()],
 	};
 
-	tcu::TextureCubeView view = tcu::TextureCubeView(src.getNumLevels(), storagePtrs);
+	tcu::TextureCubeView view = tcu::TextureCubeView(src.getNumLevels(), storagePtrs, false);
 
 	for (int faceNdx = 0; faceNdx < tcu::CUBEFACE_LAST; ++faceNdx)
 	for (int levelNdx = 0; levelNdx < src.getNumLevels(); ++levelNdx)
diff --git a/framework/common/tcuWaiverUtil.cpp b/framework/common/tcuWaiverUtil.cpp
new file mode 100644
index 0000000..facaffe
--- /dev/null
+++ b/framework/common/tcuWaiverUtil.cpp
@@ -0,0 +1,560 @@
+/*-------------------------------------------------------------------------
+ * Vulkan CTS Framework
+ * --------------------
+ *
+ * Copyright (c) 2020 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Waiver mechanism implementation.
+ *//*--------------------------------------------------------------------*/
+
+#include "tcuWaiverUtil.hpp"
+#include <fstream>
+#include <iostream>
+#include <sstream>
+#include <iomanip>
+#include "deString.h"
+#include "deStringUtil.hpp"
+#include "xeXMLParser.hpp"
+#include "tcuCommandLine.hpp"
+
+namespace tcu
+{
+
+SessionInfo::SessionInfo(deUint32				vendorId,
+						 deUint32				deviceId,
+						 const std::string&		cmdLine)
+	: m_cmdLine	(cmdLine)
+{
+	m_info << std::hex
+		   << "#sessionInfo vendorID 0x" << vendorId << "\n"
+		   << "#sessionInfo deviceID 0x" << deviceId << "\n";
+}
+
+SessionInfo::SessionInfo(std::string			vendor,
+						 std::string			renderer,
+						 const std::string&		cmdLine)
+	: m_cmdLine	(cmdLine)
+{
+	m_info << "#sessionInfo vendor \"" << vendor << "\"\n"
+		   << "#sessionInfo renderer \"" << renderer << "\"\n";
+}
+
+std::string SessionInfo::get()
+{
+	if (!m_waiverUrls.empty())
+	{
+		m_info << "#sessionInfo waiverUrls \"" << m_waiverUrls << "\"\n";
+		m_waiverUrls.clear();
+	}
+	if (!m_cmdLine.empty())
+	{
+		m_info << "#sessionInfo commandLineParameters \"" << m_cmdLine << "\"\n";
+		m_cmdLine.clear();
+	}
+	return m_info.str();
+}
+
+// Base class for GL and VK waiver tree builders
+class WaiverTreeBuilder
+{
+public:
+
+	typedef WaiverUtil::WaiverComponent WaiverComponent;
+
+public:
+										WaiverTreeBuilder		(const std::string&				waiverFile,
+																 const std::string&				packageName,
+																 const char*					vendorTag,
+																 const char*					deviceTag,
+																 SessionInfo&					sessionInfo,
+																 std::vector<WaiverComponent>&	waiverTree);
+
+	virtual								~WaiverTreeBuilder();
+
+	void								build					(void);
+
+protected:
+
+	// structure representing component during tree construction
+	struct BuilComponent
+	{
+		std::string				name;
+		deUint32				parentIndex;	// index in allComponents vector
+		std::vector<deUint32>	childrenIndex;	// index in allComponents vector
+
+		BuilComponent(std::string n, deUint32 p)
+			: name(std::move(n))
+			, parentIndex(p)
+		{}
+	};
+
+	// parse waiver.xml and read list of waived tests defined
+	// specificly for current device id and current vendor id
+	void				readWaivedTestsFromXML	(void);
+
+	// use list of paths to build a temporary tree which
+	// consists of BuilComponents that help with tree construction
+	void				buildTreeFromPathList	(void);
+
+	// use temporary tree to create final tree containing
+	// only things that are needed during searches
+	void				constructFinalTree		(void);
+
+	// helper methods used to identify if proper waiver for vendor was found
+	virtual bool		matchVendor				(const std::string& vendor) const = 0;
+
+	// helper methods used after waiver for current vendor was found to check
+	// if it is defined also for currend deviceId/renderer
+	virtual bool		matchDevice				(const std::string& device) const = 0;
+
+	// helper method used in buildTreeFromPathList; returns index
+	// of component having same ancestors as the component specified
+	// in the argument or 0 when build tree does not include this component
+	deUint32			findComponentInBuildTree(const std::vector<std::string>& pathComponents, deUint32 index) const;
+
+private:
+	const std::string&				m_waiverFile;
+	const std::string&				m_packageName;
+
+	const char*						m_vendorTag;
+	const char*						m_deviceTag;
+
+	// helper attributes used during construction
+	std::vector<std::string>		m_testList;
+	std::vector<BuilComponent>		m_buildTree;
+
+	// reference to object containing information about used waivers
+	SessionInfo&					m_sessionInfo;
+
+	// reference to vector containing final tree
+	std::vector<WaiverComponent>&	m_finalTree;
+};
+
+WaiverTreeBuilder::WaiverTreeBuilder(const std::string&				waiverFile,
+									 const std::string&				packageName,
+									 const char*					vendorTag,
+									 const char*					deviceTag,
+									 SessionInfo&					sessionInfo,
+									 std::vector<WaiverComponent>&	waiverTree)
+	: m_waiverFile		(waiverFile)
+	, m_packageName		(packageName)
+	, m_vendorTag		(vendorTag)
+	, m_deviceTag		(deviceTag)
+	, m_sessionInfo		(sessionInfo)
+	, m_finalTree		(waiverTree)
+{
+}
+
+WaiverTreeBuilder::~WaiverTreeBuilder()
+{
+}
+
+void WaiverTreeBuilder::build(void)
+{
+	readWaivedTestsFromXML();
+	buildTreeFromPathList();
+	constructFinalTree();
+}
+
+void WaiverTreeBuilder::readWaivedTestsFromXML()
+{
+	std::ifstream iStream(m_waiverFile);
+	if (!iStream.is_open())
+		return;
+
+	// get whole waiver file content
+	std::stringstream buffer;
+	buffer << iStream.rdbuf();
+	std::string wholeContent = buffer.str();
+
+	// feed parser with xml content
+	xe::xml::Parser xmlParser;
+	xmlParser.feed(reinterpret_cast<const deUint8*>(wholeContent.c_str()), static_cast<int>(wholeContent.size()));
+	xmlParser.advance();
+
+	// first we find matching vendor, then search for matching device/renderer and then memorize cases
+	bool						vendorFound		= false;
+	bool						deviceFound		= false;
+	bool						scanDevice		= false;
+	bool						memorizeCase	= false;
+	std::string					waiverUrl;
+	std::vector<std::string>	waiverTestList;
+
+	while (true)
+	{
+		// we are grabing elements one by one - depth-first traversal in pre-order
+		xe::xml::Element currElement = xmlParser.getElement();
+
+		// stop if there is parsing error or we didnt found
+		// waiver for current vendor id and device id/renderer
+		if (currElement == xe::xml::ELEMENT_INCOMPLETE ||
+			currElement == xe::xml::ELEMENT_END_OF_STRING)
+			break;
+
+		const char* elemName = xmlParser.getElementName();
+		switch (currElement)
+		{
+		case xe::xml::ELEMENT_START:
+			if (vendorFound)
+			{
+				if (!deviceFound)
+				{
+					// if we found proper vendor and are reading deviceIds/rendererers list then allow it
+					scanDevice = deStringEqual(elemName, m_deviceTag); // e.g. "d"
+					if (scanDevice)
+						break;
+				}
+
+				// if we found waiver for current vendor and are reading test case names then allow it
+				memorizeCase = deStringEqual(elemName, "t");
+				break;
+			}
+
+			// we are searching for waiver definition for current vendor, till we find
+			// it we skip everythingh; we also skip tags that we don't need eg. description
+			if (!deStringEqual(elemName, "waiver"))
+				break;
+
+			// we found waiver tag, check if it is deffined for current vendor
+			waiverTestList.clear();
+			if (xmlParser.hasAttribute(m_vendorTag))
+			{
+				vendorFound = matchVendor(xmlParser.getAttribute(m_vendorTag));
+				// if waiver vendor matches current one then memorize waiver url
+				// it will be needed when deviceId/renderer will match current one
+				if (vendorFound)
+					waiverUrl = xmlParser.getAttribute("url");
+			}
+			break;
+
+		case xe::xml::ELEMENT_DATA:
+			if (scanDevice)
+			{
+				// check if device read from xml matches current device/renderer
+				std::string waivedDevice;
+				xmlParser.getDataStr(waivedDevice);
+				deviceFound = matchDevice(waivedDevice);
+			}
+			else if (memorizeCase)
+			{
+				// memorize whats betwean <t></t> tags when case name starts with current package name
+				// note: waiver tree is constructed per package
+				std::string waivedCaseName;
+				xmlParser.getDataStr(waivedCaseName);
+				if (waivedCaseName.find(m_packageName) == 0)
+					waiverTestList.push_back(waivedCaseName);
+			}
+			break;
+
+		case xe::xml::ELEMENT_END:
+			memorizeCase	= false;
+			scanDevice		= false;
+			if (deStringEqual(elemName, "waiver"))
+			{
+				// when we found proper waiver we can copy memorized cases and update waiver info
+				if (vendorFound && deviceFound)
+				{
+					DE_ASSERT(m_testList.empty() || waiverUrl.empty());
+
+					std::string& urls = m_sessionInfo.m_waiverUrls;
+					m_testList.insert(m_testList.end(), waiverTestList.begin(), waiverTestList.end());
+
+					// if m_waiverUrls is not empty then we found another waiver
+					// definition that should be applyed for this device; we need to
+					// add space to urls attribute to separate new url from previous one
+					if (!urls.empty())
+						urls.append(" ");
+					urls.append(waiverUrl);
+				}
+				vendorFound = false;
+				deviceFound = false;
+			}
+			break;
+
+		default:
+			DE_ASSERT(false);
+		}
+
+		xmlParser.advance();
+	}
+}
+
+deUint32 WaiverTreeBuilder::findComponentInBuildTree(const std::vector<std::string>& pathComponents, deUint32 index) const
+{
+	const std::string& checkedName = pathComponents[index];
+
+	// check if same component is already in the build tree; we start from 1 - skiping root
+	for (deUint32 componentIndex = 1 ; componentIndex < m_buildTree.size() ; ++componentIndex)
+	{
+		const BuilComponent& componentInTree = m_buildTree[componentIndex];
+		if (componentInTree.name != checkedName)
+			continue;
+
+		// names match so we need to make sure that all their ancestors match too;
+		deUint32 reverseLevel			= index;
+		deUint32 ancestorInTreeIndex	= componentInTree.parentIndex;
+
+		// if this component is the next after root then there is no ancestors to check
+		if (reverseLevel == 1)
+			return componentIndex;
+
+		while (--reverseLevel > 0)
+		{
+			// names dont match - we can move to searching other build tree items
+			if (pathComponents[reverseLevel] != m_buildTree[ancestorInTreeIndex].name)
+				break;
+
+			// when previous path component matches ancestor name then we need do check earlier path component
+			ancestorInTreeIndex = m_buildTree[ancestorInTreeIndex].parentIndex;
+
+			// we reached root
+			if (ancestorInTreeIndex == 0)
+			{
+				// if next level would be root then ancestors match
+				if (reverseLevel == 1)
+					return componentIndex;
+				// if next level is not root then ancestors dont match
+				break;
+			}
+		}
+	}
+
+	// searched path component is not in the tree
+	return 0;
+}
+
+void WaiverTreeBuilder::buildTreeFromPathList(void)
+{
+	if (m_testList.empty())
+		return;
+
+	deUint32 parentIndex = 0;
+
+	// construct root node
+	m_buildTree.emplace_back("root", DE_NULL);
+
+	for (const auto& path : m_testList)
+	{
+		const std::vector<std::string> pathComponents = de::splitString(path, '.');
+
+		// first component is parented to root
+		parentIndex = 0;
+
+		// iterate over all components of current path, but skip first one (e.g. "dEQP-VK", "KHR-GLES31")
+		for (deUint32 level = 1 ; level < pathComponents.size() ; ++level)
+		{
+			// check if same component is already in the tree and we dont need to add it
+			deUint32 componentIndex = findComponentInBuildTree(pathComponents, level);
+			if (componentIndex)
+			{
+				parentIndex = componentIndex;
+				continue;
+			}
+
+			// component is not in the tree, add it
+			const std::string componentName = pathComponents[level];
+			m_buildTree.emplace_back(componentName, parentIndex);
+
+			// add current component as a child to its parent and assume
+			// that this component will be parent of next component
+			componentIndex = static_cast<deUint32>(m_buildTree.size() - 1);
+			m_buildTree[parentIndex].childrenIndex.push_back(componentIndex);
+			parentIndex = componentIndex;
+		}
+	}
+}
+
+void WaiverTreeBuilder::constructFinalTree(void)
+{
+	if (m_buildTree.empty())
+		return;
+
+	// translate vector of BuilComponents to vector of WaiverComponents
+	m_finalTree.resize(m_buildTree.size());
+	for (deUint32 i = 0; i < m_finalTree.size(); ++i)
+	{
+		BuilComponent&		buildCmponent	= m_buildTree[i];
+		WaiverComponent&	waiverComponent = m_finalTree[i];
+
+		waiverComponent.name = std::move(buildCmponent.name);
+		waiverComponent.children.resize(buildCmponent.childrenIndex.size());
+
+		// set pointers for children
+		for (deUint32 j = 0; j < buildCmponent.childrenIndex.size(); ++j)
+		{
+			deUint32 childIndexInTree = buildCmponent.childrenIndex[j];
+			waiverComponent.children[j] = &m_finalTree[childIndexInTree];
+		}
+	}
+}
+
+// Class that builds a tree out of waiver definitions for OpenGL tests.
+// Most of functionalities are shared betwean VK and GL builders and they
+// were extracted to WaiverTreeBuilder base class.
+class GLWaiverTreeBuilder : public WaiverTreeBuilder
+{
+public:
+						GLWaiverTreeBuilder		(const std::string&				waiverFile,
+												 const std::string&				packageName,
+												 const std::string&				currentVendor,
+												 const std::string&				currentRenderer,
+												 SessionInfo&					sessionInfo,
+												 std::vector<WaiverComponent>&	waiverTree);
+
+	bool				matchVendor				(const std::string& vendor) const override;
+	bool				matchDevice				(const std::string& device) const override;
+
+private:
+
+	const std::string	m_currentVendor;
+	const std::string	m_currentRenderer;
+};
+
+GLWaiverTreeBuilder::GLWaiverTreeBuilder(const std::string&				waiverFile,
+										 const std::string&				packageName,
+										 const std::string&				currentVendor,
+										 const std::string&				currentRenderer,
+										 SessionInfo&					sessionInfo,
+										 std::vector<WaiverComponent>&	waiverTree)
+	: WaiverTreeBuilder	(waiverFile, packageName, "vendor", "r", sessionInfo, waiverTree)
+	, m_currentVendor	(currentVendor)
+	, m_currentRenderer	(currentRenderer)
+{
+}
+
+bool GLWaiverTreeBuilder::matchVendor(const std::string& vendor) const
+{
+	return m_currentVendor == vendor;
+}
+
+bool GLWaiverTreeBuilder::matchDevice(const std::string& device) const
+{
+	// make sure that renderer name in .xml is not within "", those extra characters should be removed
+	DE_ASSERT(device[0] != '\"');
+
+	return tcu::matchWildcards(device.cbegin(),
+							   device.cend(),
+							   m_currentRenderer.cbegin(),
+							   m_currentRenderer.cend(),
+							   false);
+}
+
+// Class that builds a tree out of waiver definitions for Vulkan tests.
+// Most of functionalities are shared betwean VK and GL builders and they
+// were extracted to WaiverTreeBuilder base class.
+class VKWaiverTreeBuilder : public WaiverTreeBuilder
+{
+public:
+						VKWaiverTreeBuilder		(const std::string&				waiverFile,
+												 const std::string&				packageName,
+												 const deUint32					currentVendor,
+												 const deUint32					currentRenderer,
+												 SessionInfo&					sessionInfo,
+												 std::vector<WaiverComponent>&	waiverTree);
+
+	bool				matchVendor				(const std::string& vendor) const override;
+	bool				matchDevice				(const std::string& device) const override;
+
+private:
+
+	const deUint32	m_currentVendorId;
+	const deUint32	m_currentDeviceId;
+};
+
+VKWaiverTreeBuilder::VKWaiverTreeBuilder(const std::string&				waiverFile,
+										 const std::string&				packageName,
+										 const deUint32					currentVendor,
+										 const deUint32					currentRenderer,
+										 SessionInfo&					sessionInfo,
+										 std::vector<WaiverComponent>&	waiverTree)
+	: WaiverTreeBuilder(waiverFile, packageName, "vendorId", "d", sessionInfo, waiverTree)
+	, m_currentVendorId(currentVendor)
+	, m_currentDeviceId(currentRenderer)
+{
+}
+
+bool VKWaiverTreeBuilder::matchVendor(const std::string& vendor) const
+{
+	return (m_currentVendorId == static_cast<deUint32>(std::stoul(vendor, 0, 0)));
+}
+
+bool VKWaiverTreeBuilder::matchDevice(const std::string& device) const
+{
+	return (m_currentDeviceId == static_cast<deUint32>(std::stoul(device, 0, 0)));
+}
+
+void WaiverUtil::setup(const std::string waiverFile, std::string packageName, deUint32 vendorId, deUint32 deviceId, SessionInfo& sessionInfo)
+{
+	VKWaiverTreeBuilder(waiverFile, packageName, vendorId, deviceId, sessionInfo, m_waiverTree).build();
+}
+
+void WaiverUtil::setup(const std::string waiverFile, std::string packageName, std::string vendor, std::string renderer, SessionInfo& sessionInfo)
+{
+	GLWaiverTreeBuilder(waiverFile, packageName, vendor, renderer, sessionInfo, m_waiverTree).build();
+}
+
+bool WaiverUtil::isOnWaiverList(const std::string& casePath) const
+{
+	if (m_waiverTree.empty())
+		return false;
+
+	// skip root e.g. "dEQP-VK"
+	size_t						firstDotPos		= casePath.find('.');
+	std::string::const_iterator	componentStart	= casePath.cbegin() + firstDotPos + 1;
+	std::string::const_iterator	componentEnd	= componentStart;
+	std::string::const_iterator	pathEnd			= casePath.cend();
+	const WaiverComponent*		waiverComponent	= m_waiverTree.data();
+
+	// check path component by component
+	while (true)
+	{
+		// find the last character of next component
+		++componentEnd;
+		for (; componentEnd < pathEnd ; ++componentEnd)
+		{
+			if (*componentEnd == '.')
+				break;
+		}
+
+		// check if one of children has the same component name
+		for (const auto& c : waiverComponent->children)
+		{
+			bool matchFound = tcu::matchWildcards(c->name.cbegin(),
+												  c->name.cend(),
+												  componentStart,
+												  componentEnd,
+												  false);
+
+			// current waiver component matches curent path component - go to next component
+			if (matchFound)
+			{
+				waiverComponent = c;
+				break;
+			}
+		}
+
+		// we checked all components - if our pattern was a leaf then this test should be waived
+		if (componentEnd == pathEnd)
+			return waiverComponent->children.empty();
+
+		// go to next test path component
+		componentStart = componentEnd + 1;
+	}
+	return false;
+}
+
+} // vk
diff --git a/framework/common/tcuWaiverUtil.hpp b/framework/common/tcuWaiverUtil.hpp
new file mode 100644
index 0000000..7c805d7
--- /dev/null
+++ b/framework/common/tcuWaiverUtil.hpp
@@ -0,0 +1,99 @@
+#ifndef _TCUWAIVERUTIL_HPP
+#define _TCUWAIVERUTIL_HPP
+/*-------------------------------------------------------------------------
+ * Vulkan CTS Framework
+ * --------------------
+ *
+ * Copyright (c) 2020 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *//*!
+ * \file
+ * \brief Waiver mechanism implementation.
+ *//*--------------------------------------------------------------------*/
+
+#include "deDefs.h"
+#include <sstream>
+#include <vector>
+
+namespace tcu
+{
+
+// Class containing information about session that are printed at the beginning of log.
+class SessionInfo
+{
+public:
+
+					SessionInfo		(deUint32				vendorId,
+									 deUint32				deviceId,
+									 const std::string&		cmdLine);
+					SessionInfo		(std::string			vendor,
+									 std::string			renderer,
+									 const std::string&		cmdLine);
+
+	std::string		get				();
+
+private:
+
+	// WaiverTreeBuilder fills private fields of this class.
+	friend class WaiverTreeBuilder;
+
+	// String containing urls to gitlab issues
+	// that enable currently used waivers
+	std::string			m_waiverUrls;
+
+	// String containing command line
+	std::string			m_cmdLine;
+
+	// Stream containing all info
+	std::stringstream	m_info;
+};
+
+// Class that uses paths to waived tests represented in a form of tree.
+// Main functionality of this class is to quickly test test paths in
+// order to verify if it is on waived tests list that was read from xml.
+class WaiverUtil
+{
+public:
+			WaiverUtil		() = default;
+
+	void	setup			(const std::string	waiverFile,
+							 std::string		packageName,
+							 deUint32			vendorId,
+							 deUint32			deviceId,
+							 SessionInfo&		sessionInfo);
+	void	setup			(const std::string	waiverFile,
+							 std::string		packageName,
+							 std::string		vendor,
+							 std::string		renderer,
+							 SessionInfo&		sessionInfo);
+
+	bool	isOnWaiverList	(const std::string& casePath) const;
+
+public:
+
+	struct WaiverComponent
+	{
+		std::string						name;
+		std::vector<WaiverComponent*>	children;
+	};
+
+private:
+
+	std::vector<WaiverComponent> m_waiverTree;
+};
+
+} // tcu
+
+#endif // _TCUWAIVERUTIL_HPP
diff --git a/framework/delibs/debase/deDefs.h b/framework/delibs/debase/deDefs.h
index 4edc5e8..314d2ad 100644
--- a/framework/delibs/debase/deDefs.h
+++ b/framework/delibs/debase/deDefs.h
@@ -305,14 +305,14 @@
 
 #if (DE_COMPILER == DE_COMPILER_GCC) || (DE_COMPILER == DE_COMPILER_CLANG)
 	/* GCC 4.8 and newer warns about unused typedefs. */
-#	define DE_UNUSED_TYPEDEF_ATTR __attribute__((unused))
+#	define DE_UNUSED_ATTR __attribute__((unused))
 #else
-#	define DE_UNUSED_TYPEDEF_ATTR
+#	define DE_UNUSED_ATTR
 #endif
 
 /** Compile-time assertion macro. */
-#define DE_STATIC_ASSERT(X)						typedef char DE_UNIQUE_NAME[(X) ? 1 : -1] DE_UNUSED_TYPEDEF_ATTR
-#define DE_HEADER_STATIC_ASSERT(HEADERTOKEN, X)	typedef char DE_HEADER_UNIQUE_NAME(HEADERTOKEN)[(X) ? 1 : -1] DE_UNUSED_TYPEDEF_ATTR
+#define DE_STATIC_ASSERT(X)						typedef char DE_UNIQUE_NAME[(X) ? 1 : -1] DE_UNUSED_ATTR
+#define DE_HEADER_STATIC_ASSERT(HEADERTOKEN, X)	typedef char DE_HEADER_UNIQUE_NAME(HEADERTOKEN)[(X) ? 1 : -1] DE_UNUSED_ATTR
 
 #define DE_UNIQUE_NAME						DE_MAKE_NAME(__LINE__, hoax)
 #define DE_HEADER_UNIQUE_NAME(HEADERTOKEN)	DE_MAKE_NAME(__LINE__, HEADERTOKEN)
diff --git a/framework/delibs/decpp/deDefs.hpp b/framework/delibs/decpp/deDefs.hpp
index 9c47636..895b489 100644
--- a/framework/delibs/decpp/deDefs.hpp
+++ b/framework/delibs/decpp/deDefs.hpp
@@ -62,6 +62,12 @@
 //! Return T with high n bits reset
 template<typename T> inline T		leftZeroMask	(T n)		{ return T(~leftSetMask(n)); }
 
+//! Round x up to a multiple of y.
+template<typename T> inline T		roundUp			(T x, T y)	{ DE_ASSERT(y != T(0)); const T mod = x % y; return x + ((mod == T(0)) ? T(0) : (y - mod)); }
+
+//! Round x down to a multiple of y.
+template<typename T> inline T		roundDown		(T x, T y)	{ DE_ASSERT(y != T(0)); return (x / y) * y; }
+
 //! Helper for DE_CHECK() macros.
 void throwRuntimeError (const char* message, const char* expr, const char* file, int line);
 
diff --git a/framework/egl/egluGLUtil.cpp b/framework/egl/egluGLUtil.cpp
index b2e5ea2..c0a7acb 100644
--- a/framework/egl/egluGLUtil.cpp
+++ b/framework/egl/egluGLUtil.cpp
@@ -67,7 +67,7 @@
 				case 1:		return EGL_OPENGL_ES_BIT;
 				case 2:		return EGL_OPENGL_ES2_BIT;
 				case 3:		return EGL_OPENGL_ES3_BIT_KHR;
-				default:	DE_FATAL("Unknown OpenGL ES version");
+				default:	DE_FATAL("Unknown OpenGL ES version"); break;
 			}
 			break;
 		default:
diff --git a/framework/egl/egluUtil.cpp b/framework/egl/egluUtil.cpp
index 82aeedc..5622cd8 100644
--- a/framework/egl/egluUtil.cpp
+++ b/framework/egl/egluUtil.cpp
@@ -254,7 +254,7 @@
 				de::contains(platformExts.begin(), platformExts.end(), string(nativeDisplay.getPlatformExtensionName()));
 
 		}
-		catch (const tcu::NotSupportedError& error)
+		catch (const tcu::NotSupportedError&)
 		{
 			// If we can't get the client extension string we must not have EGL 1.5 support or the appropriate extensions.
 			maySupportPlatformGetDisplay = false;
@@ -332,7 +332,7 @@
 				de::contains(platformExts.begin(), platformExts.end(), string(nativeDisplay.getPlatformExtensionName()));
 
 		}
-		catch (const tcu::NotSupportedError& error)
+		catch (const tcu::NotSupportedError&)
 		{
 			maySupportPlatformCreate = false;
 			maySupportPlatformCreateExtension = false;
@@ -390,7 +390,7 @@
 				de::contains(platformExts.begin(), platformExts.end(), string(nativeDisplay.getPlatformExtensionName()));
 
 		}
-		catch (const tcu::NotSupportedError& error)
+		catch (const tcu::NotSupportedError&)
 		{
 			maySupportPlatformCreate = false;
 			maySupportPlatformCreateExtension = false;
diff --git a/framework/opengl/gluRenderContext.hpp b/framework/opengl/gluRenderContext.hpp
index e17cb59..2fd4fb4 100644
--- a/framework/opengl/gluRenderContext.hpp
+++ b/framework/opengl/gluRenderContext.hpp
@@ -191,6 +191,7 @@
 inline bool		isContextTypeES				(ContextType type)	{ return type.getAPI().getProfile() == PROFILE_ES;				}
 inline bool		isContextTypeGLCore			(ContextType type)	{ return type.getAPI().getProfile() == PROFILE_CORE;			}
 inline bool		isContextTypeGLCompatibility(ContextType type)	{ return type.getAPI().getProfile() == PROFILE_COMPATIBILITY;	}
+inline bool		isES2Context				(ContextType type)	{ return isContextTypeES(type) && type.getMajorVersion() == 2; }
 bool			contextSupports				(ContextType ctxType, ApiType requiredApiType);
 
 const char*		getApiTypeDescription		(ApiType type);
diff --git a/framework/opengl/gluShaderUtil.cpp b/framework/opengl/gluShaderUtil.cpp
index 1016e46..f2b1b58 100644
--- a/framework/opengl/gluShaderUtil.cpp
+++ b/framework/opengl/gluShaderUtil.cpp
@@ -1118,6 +1118,43 @@
 	}
 }
 
+DataType getDataTypeMatrixColumnType (DataType dataType)
+{
+	switch (dataType)
+	{
+		case TYPE_FLOAT_MAT2:		return TYPE_FLOAT_VEC2;
+		case TYPE_FLOAT_MAT2X3:		return TYPE_FLOAT_VEC3;
+		case TYPE_FLOAT_MAT2X4:		return TYPE_FLOAT_VEC4;
+		case TYPE_FLOAT_MAT3X2:		return TYPE_FLOAT_VEC2;
+		case TYPE_FLOAT_MAT3:		return TYPE_FLOAT_VEC3;
+		case TYPE_FLOAT_MAT3X4:		return TYPE_FLOAT_VEC4;
+		case TYPE_FLOAT_MAT4X2:		return TYPE_FLOAT_VEC2;
+		case TYPE_FLOAT_MAT4X3:		return TYPE_FLOAT_VEC3;
+		case TYPE_FLOAT_MAT4:		return TYPE_FLOAT_VEC4;
+		case TYPE_DOUBLE_MAT2:		return TYPE_DOUBLE_VEC2;
+		case TYPE_DOUBLE_MAT2X3:	return TYPE_DOUBLE_VEC3;
+		case TYPE_DOUBLE_MAT2X4:	return TYPE_DOUBLE_VEC4;
+		case TYPE_DOUBLE_MAT3X2:	return TYPE_DOUBLE_VEC2;
+		case TYPE_DOUBLE_MAT3:		return TYPE_DOUBLE_VEC3;
+		case TYPE_DOUBLE_MAT3X4:	return TYPE_DOUBLE_VEC4;
+		case TYPE_DOUBLE_MAT4X2:	return TYPE_DOUBLE_VEC2;
+		case TYPE_DOUBLE_MAT4X3:	return TYPE_DOUBLE_VEC3;
+		case TYPE_DOUBLE_MAT4:		return TYPE_DOUBLE_VEC4;
+		case TYPE_FLOAT16_MAT2:		return TYPE_FLOAT16_VEC2;
+		case TYPE_FLOAT16_MAT2X3:	return TYPE_FLOAT16_VEC3;
+		case TYPE_FLOAT16_MAT2X4:	return TYPE_FLOAT16_VEC4;
+		case TYPE_FLOAT16_MAT3X2:	return TYPE_FLOAT16_VEC2;
+		case TYPE_FLOAT16_MAT3:		return TYPE_FLOAT16_VEC3;
+		case TYPE_FLOAT16_MAT3X4:	return TYPE_FLOAT16_VEC4;
+		case TYPE_FLOAT16_MAT4X2:	return TYPE_FLOAT16_VEC2;
+		case TYPE_FLOAT16_MAT4X3:	return TYPE_FLOAT16_VEC3;
+		case TYPE_FLOAT16_MAT4:		return TYPE_FLOAT16_VEC4;
+		default:
+			DE_ASSERT(false);
+			return TYPE_INVALID;
+	}
+}
+
 int	getDataTypeNumLocations	(DataType dataType)
 {
 	if (isDataTypeScalarOrVector(dataType))
diff --git a/framework/opengl/gluShaderUtil.hpp b/framework/opengl/gluShaderUtil.hpp
index 8d857af..e885994 100644
--- a/framework/opengl/gluShaderUtil.hpp
+++ b/framework/opengl/gluShaderUtil.hpp
@@ -342,6 +342,7 @@
 
 int				getDataTypeMatrixNumRows	(DataType dataType);
 int				getDataTypeMatrixNumColumns	(DataType dataType);
+DataType		getDataTypeMatrixColumnType	(DataType dataType);
 
 int				getDataTypeNumLocations		(DataType dataType);
 int				getDataTypeNumComponents	(DataType dataType);
diff --git a/framework/opengl/gluTexture.cpp b/framework/opengl/gluTexture.cpp
index dc1ba0c..daf2bb4 100644
--- a/framework/opengl/gluTexture.cpp
+++ b/framework/opengl/gluTexture.cpp
@@ -106,7 +106,7 @@
 	: m_context			(context)
 	, m_isCompressed	(false)
 	, m_format			(format)
-	, m_refTexture		(mapGLTransferFormat(format, dataType), width, height)
+	, m_refTexture		(mapGLTransferFormat(format, dataType), width, height, isES2Context(context.getType()))
 	, m_glTexture		(0)
 {
 	const glw::Functions& gl = context.getFunctions();
@@ -118,7 +118,7 @@
 	: m_context			(context)
 	, m_isCompressed	(false)
 	, m_format			(sizedFormat)
-	, m_refTexture		(mapGLInternalFormat(sizedFormat), width, height)
+	, m_refTexture		(mapGLInternalFormat(sizedFormat), width, height, isES2Context(context.getType()))
 	, m_glTexture		(0)
 {
 	const glw::Functions& gl = context.getFunctions();
@@ -130,7 +130,7 @@
 	: m_context			(context)
 	, m_isCompressed	(true)
 	, m_format			(getGLFormat(levels[0].getFormat()))
-	, m_refTexture		(getUncompressedFormat(levels[0].getFormat()), levels[0].getWidth(), levels[0].getHeight())
+	, m_refTexture		(getUncompressedFormat(levels[0].getFormat()), levels[0].getWidth(), levels[0].getHeight(), isES2Context(context.getType()))
 	, m_glTexture		(0)
 {
 	const glw::Functions& gl = context.getFunctions();
@@ -323,7 +323,7 @@
 	: m_context			(context)
 	, m_isCompressed	(true)
 	, m_format			(getGLFormat(levels[0].getFormat()))
-	, m_refTexture		(getUncompressedFormat(levels[0].getFormat()), levels[0].getWidth())
+	, m_refTexture		(getUncompressedFormat(levels[0].getFormat()), levels[0].getWidth(), isES2Context(context.getType()))
 	, m_glTexture		(0)
 {
 	const glw::Functions& gl = m_context.getFunctions();
@@ -351,7 +351,7 @@
 	: m_context			(context)
 	, m_isCompressed	(false)
 	, m_format			(format)
-	, m_refTexture		(mapGLTransferFormat(format, dataType), size)
+	, m_refTexture		(mapGLTransferFormat(format, dataType), size, isES2Context(context.getType()))
 	, m_glTexture		(0)
 {
 	const glw::Functions& gl = m_context.getFunctions();
@@ -363,7 +363,7 @@
 	: m_context			(context)
 	, m_isCompressed	(false)
 	, m_format			(internalFormat)
-	, m_refTexture		(mapGLInternalFormat(internalFormat), size)
+	, m_refTexture		(mapGLInternalFormat(internalFormat), size, isES2Context(context.getType()))
 	, m_glTexture		(0)
 {
 	const glw::Functions& gl = m_context.getFunctions();
diff --git a/framework/opengl/gluTextureTestUtil.cpp b/framework/opengl/gluTextureTestUtil.cpp
index 6d21b48..7f8a3e9 100644
--- a/framework/opengl/gluTextureTestUtil.cpp
+++ b/framework/opengl/gluTextureTestUtil.cpp
@@ -113,7 +113,7 @@
 	const int	clampedBase	= de::clamp(baseLevel, 0, view.getNumLevels()-1);
 	const int	clampedMax	= de::clamp(maxLevel, clampedBase, view.getNumLevels()-1);
 	const int	numLevels	= clampedMax-clampedBase+1;
-	return tcu::Texture2DView(numLevels, view.getLevels()+clampedBase);
+	return tcu::Texture2DView(numLevels, view.getLevels()+clampedBase, view.isES2());
 }
 
 static tcu::TextureCubeView getSubView (const tcu::TextureCubeView& view, int baseLevel, int maxLevel)
diff --git a/framework/opengl/simplereference/sglrReferenceContext.cpp b/framework/opengl/simplereference/sglrReferenceContext.cpp
index 01efe1d..d781b81 100644
--- a/framework/opengl/simplereference/sglrReferenceContext.cpp
+++ b/framework/opengl/simplereference/sglrReferenceContext.cpp
@@ -324,7 +324,7 @@
 	, m_activeTexture					(0)
 	, m_textureUnits					(m_limits.maxTextureImageUnits)
 	, m_emptyTex1D						()
-	, m_emptyTex2D						()
+	, m_emptyTex2D						(isES2Context(limits.contextType))
 	, m_emptyTexCube					()
 	, m_emptyTex2DArray					()
 	, m_emptyTex3D						()
@@ -4825,9 +4825,9 @@
 		m_view = tcu::Texture2DView(0, DE_NULL);
 }
 
-Texture2D::Texture2D (deUint32 name)
+Texture2D::Texture2D (deUint32 name, bool es2)
 	: Texture	(name, TYPE_2D)
-	, m_view	(0, DE_NULL)
+	, m_view	(0, DE_NULL, es2)
 {
 }
 
diff --git a/framework/opengl/simplereference/sglrReferenceContext.hpp b/framework/opengl/simplereference/sglrReferenceContext.hpp
index 1cf88f2..b9aca1a 100644
--- a/framework/opengl/simplereference/sglrReferenceContext.hpp
+++ b/framework/opengl/simplereference/sglrReferenceContext.hpp
@@ -167,7 +167,7 @@
 class Texture2D : public Texture
 {
 public:
-										Texture2D		(deUint32 name = 0);
+										Texture2D		(deUint32 name = 0, bool es2 = false);
 	virtual								~Texture2D		(void);
 
 	void								clearLevels		(void) { m_levels.clear(); }
diff --git a/framework/platform/android/tcuAndroidTestActivity.cpp b/framework/platform/android/tcuAndroidTestActivity.cpp
index cfe53cb..10f21ec 100644
--- a/framework/platform/android/tcuAndroidTestActivity.cpp
+++ b/framework/platform/android/tcuAndroidTestActivity.cpp
@@ -43,10 +43,12 @@
 	, m_cmdLine		(cmdLine)
 	, m_platform	(activity)
 	, m_archive		(activity.getNativeActivity()->assetManager)
-	, m_log			(m_cmdLine.getLogFileName(), cmdLineString, m_cmdLine.getLogFlags())
+	, m_log			(m_cmdLine.getLogFileName(), m_cmdLine.getLogFlags())
 	, m_app			(m_platform, m_archive, m_log, m_cmdLine)
 	, m_finished	(false)
 {
+	const std::string sessionInfo = "#sessionInfo commandLineParameters \"";
+	m_log.writeSessionInfo(sessionInfo + cmdLineString + "\"\n");
 }
 
 TestThread::~TestThread (void)
diff --git a/framework/platform/lnx/tcuLnxVulkanPlatform.cpp b/framework/platform/lnx/tcuLnxVulkanPlatform.cpp
index b933dad..6f0e554 100644
--- a/framework/platform/lnx/tcuLnxVulkanPlatform.cpp
+++ b/framework/platform/lnx/tcuLnxVulkanPlatform.cpp
@@ -209,6 +209,11 @@
 
 vk::wsi::Display* VulkanPlatform::createWsiDisplay (vk::wsi::Type wsiType) const
 {
+	if (!hasDisplay(wsiType))
+	{
+	    throw NotSupportedError("This display type is not available: ", NULL, __FILE__, __LINE__);
+	}
+
 	switch(wsiType)
 	{
 #if defined (DEQP_SUPPORT_X11)
diff --git a/framework/platform/lnx/wayland/tcuLnxWayland.cpp b/framework/platform/lnx/wayland/tcuLnxWayland.cpp
index bea6835..f4808db 100644
--- a/framework/platform/lnx/wayland/tcuLnxWayland.cpp
+++ b/framework/platform/lnx/wayland/tcuLnxWayland.cpp
@@ -57,7 +57,7 @@
 	DE_UNREF(version);
 
 	if (!strcmp(interface, "wl_compositor"))
-		_this->m_compositor = static_cast<struct wl_compositor*>(wl_registry_bind(registry, id, &wl_compositor_interface, 3));
+		_this->m_compositor = static_cast<struct wl_compositor*>(wl_registry_bind(registry, id, &wl_compositor_interface, version > 3 ? version : 3));
 	/* Todo: when the xdg_shell protocol has stablized, we should move wl_shell to xdg_shell. */
 	if (!strcmp(interface, "wl_shell"))
 		_this->m_shell = static_cast<struct wl_shell*>(wl_registry_bind(registry, id, &wl_shell_interface, 1));
diff --git a/framework/platform/nullws/tcuNullWSPlatform.hpp b/framework/platform/nullws/tcuNullWSPlatform.hpp
index 93cb3e2..80965fc 100644
--- a/framework/platform/nullws/tcuNullWSPlatform.hpp
+++ b/framework/platform/nullws/tcuNullWSPlatform.hpp
@@ -24,17 +24,42 @@
  * \brief
  *//*--------------------------------------------------------------------*/
 
+#include "deDynamicLibrary.hpp"
+#include "tcuFunctionLibrary.hpp"
 #include "tcuDefs.hpp"
 #include "tcuPlatform.hpp"
 #include "gluPlatform.hpp"
 #include "egluPlatform.hpp"
+#include "vkPlatform.hpp"
 
 namespace tcu
 {
 namespace nullws
 {
+class VulkanLibrary : public vk::Library
+{
+public:
+	VulkanLibrary (void)
+		: m_library	("libvulkan.so.1")
+		, m_driver	(m_library)
+	{
+	}
 
-class Platform: public tcu::Platform, private glu::Platform, private eglu::Platform
+	const vk::PlatformInterface& getPlatformInterface (void) const
+	{
+		return m_driver;
+	}
+	const tcu::FunctionLibrary&		getFunctionLibrary		(void) const
+	{
+		return m_library;
+	}
+private:
+	const tcu::DynamicFunctionLibrary	m_library;
+	const vk::PlatformDriver			m_driver;
+};
+
+
+class Platform: public tcu::Platform, private glu::Platform, private eglu::Platform, private vk::Platform
 {
 public:
 									Platform		();
@@ -42,6 +67,26 @@
 
 	virtual const glu::Platform&	getGLPlatform	()	const { return static_cast<const glu::Platform&>(*this); }
 	virtual const eglu::Platform&	getEGLPlatform	()	const { return static_cast<const eglu::Platform&>(*this); }
+  virtual const vk::Platform&   getVulkanPlatform() const { return static_cast<const vk::Platform&>(*this); }
+
+	vk::Library* createLibrary (void) const
+	{
+		return new VulkanLibrary();
+	}
+	// FINISHME: Query actual memory limits.
+	//
+	// These hard-coded memory limits were copied from tcuX11Platform.cpp,
+	// and they work well enough for Intel platforms.
+	void getMemoryLimits (vk::PlatformMemoryLimits& limits) const
+	{
+		limits.totalSystemMemory					= 256*1024*1024;
+		limits.totalDeviceLocalMemory				= 128*1024*1024;
+		limits.deviceMemoryAllocationGranularity	= 64*1024;
+		limits.devicePageSize						= 4096;
+		limits.devicePageTableEntrySize				= 8;
+		limits.devicePageTableHierarchyLevels		= 3;
+	}
+
 };
 
 } // nullws
diff --git a/framework/platform/tcuMain.cpp b/framework/platform/tcuMain.cpp
index 57d62e8..ede44b4 100644
--- a/framework/platform/tcuMain.cpp
+++ b/framework/platform/tcuMain.cpp
@@ -37,7 +37,7 @@
 
 int main (int argc, char** argv)
 {
-    int exitStatus = EXIT_SUCCESS;
+	int exitStatus = EXIT_SUCCESS;
 
 #if (DE_OS != DE_OS_WIN32)
 	// Set stdout to line-buffered mode (will be fully buffered by default if stdout is pipe).
@@ -48,7 +48,7 @@
 	{
 		tcu::CommandLine				cmdLine		(argc, argv);
 		tcu::DirArchive					archive		(cmdLine.getArchiveDir());
-		tcu::TestLog					log			(cmdLine.getLogFileName(), argc-1, argv+1, cmdLine.getLogFlags());
+		tcu::TestLog					log			(cmdLine.getLogFileName(), cmdLine.getLogFlags());
 		de::UniquePtr<tcu::Platform>	platform	(createPlatform());
 		de::UniquePtr<tcu::App>			app			(new tcu::App(*platform, archive, log, cmdLine));
 
diff --git a/framework/platform/win32/tcuWGL.cpp b/framework/platform/win32/tcuWGL.cpp
index e871b4c..189a334 100644
--- a/framework/platform/win32/tcuWGL.cpp
+++ b/framework/platform/win32/tcuWGL.cpp
@@ -97,6 +97,11 @@
 #define WGL_SAMPLE_BUFFERS_ARB						0x2041
 #define WGL_SAMPLES_ARB								0x2042
 
+// WGL_EXT_colorspace
+#define WGL_COLORSPACE_EXT							0x309D
+#define WGL_COLORSPACE_SRGB_EXT						0x3089
+#define WGL_COLORSPACE_LINEAR_EXT					0x308A
+
 // WGL_ARB_create_context
 #define WGL_CONTEXT_MAJOR_VERSION_ARB				0x2091
 #define WGL_CONTEXT_MINOR_VERSION_ARB				0x2092
@@ -372,6 +377,7 @@
 		WGL_AUX_BUFFERS_ARB,
 		WGL_SAMPLE_BUFFERS_ARB,
 		WGL_SAMPLES_ARB,
+		WGL_COLORSPACE_EXT
 	};
 	const Functions&	wgl			= m_library->getFunctions();
 	std::map<int, int>	values;
@@ -403,6 +409,7 @@
 	info.numAuxBuffers		= values[WGL_AUX_BUFFERS_ARB];
 	info.sampleBuffers		= values[WGL_SAMPLE_BUFFERS_ARB];
 	info.samples			= values[WGL_SAMPLES_ARB];
+	info.sRGB				= values[WGL_COLORSPACE_EXT] == WGL_COLORSPACE_SRGB_EXT;
 
 	return info;
 }
diff --git a/framework/platform/win32/tcuWGL.hpp b/framework/platform/win32/tcuWGL.hpp
index 6f50632..b7abfde 100644
--- a/framework/platform/win32/tcuWGL.hpp
+++ b/framework/platform/win32/tcuWGL.hpp
@@ -128,6 +128,9 @@
 	int				sampleBuffers;
 	int				samples;
 
+	// From WGL_EXT_colorspace
+	bool			sRGB;
+
 	// \todo [2013-04-14 pyry] Version bits?
 
 	PixelFormatInfo (void)
@@ -152,6 +155,7 @@
 		, numAuxBuffers		(0)
 		, sampleBuffers		(0)
 		, samples			(0)
+		, sRGB				(false)
 	{
 	}
 };
diff --git a/framework/qphelper/qpDebugOut.c b/framework/qphelper/qpDebugOut.c
index cb49ed8..6ad306e 100644
--- a/framework/qphelper/qpDebugOut.c
+++ b/framework/qphelper/qpDebugOut.c
@@ -32,6 +32,7 @@
 {
 	MESSAGETYPE_INFO	= 0,
 	MESSAGETYPE_ERROR,
+	MESSAGETYPE_NONFATAL_ERROR,
 
 	MESSAGETYPE_LAST
 } MessageType;
@@ -53,11 +54,24 @@
 	va_end(args);
 }
 
+void qpPrintErrorf (const char* format, ...)
+{
+	va_list args;
+	va_start(args, format);
+	printFmt(MESSAGETYPE_NONFATAL_ERROR, format, args);
+	va_end(args);
+}
+
 void qpPrintv (const char* format, va_list args)
 {
 	printFmt(MESSAGETYPE_INFO, format, args);
 }
 
+void qpPrintErrorv (const char* format, va_list args)
+{
+	printFmt(MESSAGETYPE_NONFATAL_ERROR, format, args);
+}
+
 void qpDief (const char* format, ...)
 {
 	va_list args;
@@ -103,7 +117,7 @@
 
 static FILE* getOutFile (MessageType type)
 {
-	if (type == MESSAGETYPE_ERROR)
+	if (type == MESSAGETYPE_ERROR || type == MESSAGETYPE_NONFATAL_ERROR)
 		return stderr;
 	else
 		return stdout;
diff --git a/framework/qphelper/qpDebugOut.h b/framework/qphelper/qpDebugOut.h
index dba924a..c772653 100644
--- a/framework/qphelper/qpDebugOut.h
+++ b/framework/qphelper/qpDebugOut.h
@@ -31,7 +31,9 @@
 
 void	qpPrint			(const char* message);
 void	qpPrintf		(const char* fmt, ...);
+void	qpPrintErrorf	(const char* fmt, ...);
 void	qpPrintv		(const char* fmt, va_list va);
+void	qpPrintErrorv	(const char* fmt, va_list va);
 
 void	qpDief			(const char* fmt, ...);
 void	qpDiev			(const char* fmt, va_list va);
diff --git a/framework/qphelper/qpTestLog.c b/framework/qphelper/qpTestLog.c
index d970bcf..0ffceb9 100644
--- a/framework/qphelper/qpTestLog.c
+++ b/framework/qphelper/qpTestLog.c
@@ -171,6 +171,7 @@
 	{ QP_TEST_RESULT_INTERNAL_ERROR,			"InternalError"			},
 	{ QP_TEST_RESULT_CRASH,						"Crash"					},
 	{ QP_TEST_RESULT_TIMEOUT,					"Timeout"				},
+	{ QP_TEST_RESULT_WAIVER,					"Waiver"				},
 
 	/* Add new values here if needed, remember to update qpTestResult enumeration. */
 
@@ -296,40 +297,14 @@
 	deSprintf(buf, bufSize, "%f", value);
 }
 
-static deBool beginSession (qpTestLog* log, int argc, char** argv)
-{
-	DE_ASSERT(log && !log->isSessionOpen);
-
-	/* Write session info. */
-	fprintf(log->outputFile, "#sessionInfo releaseName %s\n", qpGetReleaseName());
-	fprintf(log->outputFile, "#sessionInfo releaseId 0x%08x\n", qpGetReleaseId());
-	fprintf(log->outputFile, "#sessionInfo targetName \"%s\"\n", qpGetTargetName());
-	fprintf(log->outputFile, "#sessionInfo commandLineParameters \"");
-	for (int i = 0; i < argc && argv != NULL; ++i)
-	{
-		fprintf(log->outputFile, "%s", argv[i]);
-		if (i < argc-1)
-			fprintf(log->outputFile, " ");
-	}
-	fprintf(log->outputFile, "\"\n");
-
-    /* Write out #beginSession. */
-	fprintf(log->outputFile, "#beginSession\n");
-	qpTestLog_flushFile(log);
-
-	log->isSessionOpen = DE_TRUE;
-
-	return DE_TRUE;
-}
-
 static deBool endSession (qpTestLog* log)
 {
 	DE_ASSERT(log && log->isSessionOpen);
 
-    /* Make sure xml is flushed. */
-    qpXmlWriter_flush(log->writer);
+	/* Make sure xml is flushed. */
+	qpXmlWriter_flush(log->writer);
 
-    /* Write out #endSession. */
+	/* Write out #endSession. */
 	fprintf(log->outputFile, "\n#endSession\n");
 	qpTestLog_flushFile(log);
 
@@ -343,7 +318,7 @@
  * \param fileName Name of the file where to put logs
  * \return qpTestLog instance, or DE_NULL if cannot create file
  *//*--------------------------------------------------------------------*/
-qpTestLog* qpTestLog_createFileLog (const char* fileName, int argc, char** argv, deUint32 flags)
+qpTestLog* qpTestLog_createFileLog (const char* fileName, deUint32 flags)
 {
 	qpTestLog* log = (qpTestLog*)deCalloc(sizeof(qpTestLog));
 	if (!log)
@@ -386,14 +361,42 @@
 		return DE_NULL;
 	}
 
-	beginSession(log, argc, argv);
-
 	return log;
 }
 
 /*--------------------------------------------------------------------*//*!
+ * \brief Log information about test session
+ * \param log qpTestLog instance
+ * \param additionalSessionInfo string contatining additional sessionInfo data
+ *//*--------------------------------------------------------------------*/
+deBool qpTestLog_beginSession(qpTestLog* log, const char* additionalSessionInfo)
+{
+	DE_ASSERT(log);
+
+	/* Make sure this function is called once*/
+	if (log->isSessionOpen)
+		return DE_TRUE;
+
+	/* Write session info. */
+	fprintf(log->outputFile, "#sessionInfo releaseName %s\n", qpGetReleaseName());
+	fprintf(log->outputFile, "#sessionInfo releaseId 0x%08x\n", qpGetReleaseId());
+	fprintf(log->outputFile, "#sessionInfo targetName \"%s\"\n", qpGetTargetName());
+
+	if (strlen(additionalSessionInfo) > 1)
+		fprintf(log->outputFile, "%s\n", additionalSessionInfo);
+
+	/* Write out #beginSession. */
+	fprintf(log->outputFile, "#beginSession\n");
+	qpTestLog_flushFile(log);
+
+	log->isSessionOpen = DE_TRUE;
+
+	return DE_TRUE;
+}
+
+/*--------------------------------------------------------------------*//*!
  * \brief Destroy a logger instance
- * \param a	qpTestLog instance
+ * \param log qpTestLog instance
  *//*--------------------------------------------------------------------*/
 void qpTestLog_destroy (qpTestLog* log)
 {
diff --git a/framework/qphelper/qpTestLog.h b/framework/qphelper/qpTestLog.h
index 7c24ed9..76d9693 100644
--- a/framework/qphelper/qpTestLog.h
+++ b/framework/qphelper/qpTestLog.h
@@ -61,6 +61,7 @@
 	QP_TEST_RESULT_INTERNAL_ERROR,			/*!< Error occurred within Tester Core													*/
 	QP_TEST_RESULT_CRASH,					/*!< Crash occurred in test execution.													*/
 	QP_TEST_RESULT_TIMEOUT,					/*!< Timeout occurred in test execution.												*/
+	QP_TEST_RESULT_WAIVER,					/*!< Status code reported by waived test.												*/
 
 	QP_TEST_RESULT_LAST
 } qpTestResult;
@@ -194,7 +195,8 @@
 } qpEglConfigInfo;
 
 
-qpTestLog*		qpTestLog_createFileLog			(const char* fileName, int argc, char** argv, deUint32 flags);
+qpTestLog*		qpTestLog_createFileLog			(const char* fileName, deUint32 flags);
+deBool			qpTestLog_beginSession			(qpTestLog* log, const char* additionalSessionInfo);
 void			qpTestLog_destroy				(qpTestLog* log);
 
 deBool			qpTestLog_startCase				(qpTestLog* log, const char* testCasePath, qpTestCaseType testCaseType);
diff --git a/framework/referencerenderer/rrRenderer.cpp b/framework/referencerenderer/rrRenderer.cpp
index 721cadc..fd461c5 100644
--- a/framework/referencerenderer/rrRenderer.cpp
+++ b/framework/referencerenderer/rrRenderer.cpp
@@ -45,6 +45,7 @@
 {
 	std::vector<FragmentPacket>		fragmentPackets;
 	std::vector<GenericVec4>		shaderOutputs;
+	std::vector<GenericVec4>		shaderOutputsSrc1;
 	std::vector<Fragment>			shadedFragments;
 	float*							fragmentDepthBuffer;
 };
@@ -1029,6 +1030,7 @@
 						   int									numRasterizedPackets,
 						   rr::FaceType							facetype,
 						   const std::vector<rr::GenericVec4>&	fragmentOutputArray,
+						   const std::vector<rr::GenericVec4>&	fragmentOutputArraySrc1,
 						   const float*							depthValues,
 						   std::vector<Fragment>&				fragmentBuffer)
 {
@@ -1086,6 +1088,7 @@
 				{
 					Fragment& fragment		= fragmentBuffer[fragCount++];
 					fragment.value			= fragmentOutputArray[(packetNdx*4 + fragNdx) * numOutputs + outputNdx];
+					fragment.value1			= fragmentOutputArraySrc1[(packetNdx*4 + fragNdx) * numOutputs + outputNdx];
 				}
 			}
 
@@ -1117,7 +1120,7 @@
 		return;
 
 	// Shading context
-	FragmentShadingContext shadingContext(triangle.v0->outputs, triangle.v1->outputs, triangle.v2->outputs, &buffers.shaderOutputs[0], buffers.fragmentDepthBuffer, triangle.v2->primitiveID, (int)program.fragmentShader->getOutputs().size(), numSamples, rasterizer.getVisibleFace());
+	FragmentShadingContext shadingContext(triangle.v0->outputs, triangle.v1->outputs, triangle.v2->outputs, &buffers.shaderOutputs[0], &buffers.shaderOutputsSrc1[0], buffers.fragmentDepthBuffer, triangle.v2->primitiveID, (int)program.fragmentShader->getOutputs().size(), numSamples, rasterizer.getVisibleFace());
 
 	// Polygon offset
 	if (buffers.fragmentDepthBuffer && state.fragOps.polygonOffsetEnabled)
@@ -1159,7 +1162,7 @@
 
 		// Handle fragment shader outputs
 
-		writeFragmentPackets(state, renderTarget, program, &buffers.fragmentPackets[0], numRasterizedPackets, visibleFace, buffers.shaderOutputs, buffers.fragmentDepthBuffer, buffers.shadedFragments);
+		writeFragmentPackets(state, renderTarget, program, &buffers.fragmentPackets[0], numRasterizedPackets, visibleFace, buffers.shaderOutputs, buffers.shaderOutputsSrc1, buffers.fragmentDepthBuffer, buffers.shadedFragments);
 	}
 }
 
@@ -1174,7 +1177,7 @@
 	const float					depthClampMin		= de::min(state.viewport.zn, state.viewport.zf);
 	const float					depthClampMax		= de::max(state.viewport.zn, state.viewport.zf);
 	const bool					msaa				= numSamples > 1;
-	FragmentShadingContext		shadingContext		(line.v0->outputs, line.v1->outputs, DE_NULL, &buffers.shaderOutputs[0], buffers.fragmentDepthBuffer, line.v1->primitiveID, (int)program.fragmentShader->getOutputs().size(), numSamples, FACETYPE_FRONT);
+	FragmentShadingContext		shadingContext		(line.v0->outputs, line.v1->outputs, DE_NULL, &buffers.shaderOutputs[0], &buffers.shaderOutputsSrc1[0], buffers.fragmentDepthBuffer, line.v1->primitiveID, (int)program.fragmentShader->getOutputs().size(), numSamples, FACETYPE_FRONT);
 	SingleSampleLineRasterizer	aliasedRasterizer	(renderTargetRect, state.subpixelBits);
 	MultiSampleLineRasterizer	msaaRasterizer		(numSamples, renderTargetRect, state.subpixelBits);
 
@@ -1212,7 +1215,7 @@
 
 		// Handle fragment shader outputs
 
-		writeFragmentPackets(state, renderTarget, program, &buffers.fragmentPackets[0], numRasterizedPackets, rr::FACETYPE_FRONT, buffers.shaderOutputs, buffers.fragmentDepthBuffer, buffers.shadedFragments);
+		writeFragmentPackets(state, renderTarget, program, &buffers.fragmentPackets[0], numRasterizedPackets, rr::FACETYPE_FRONT, buffers.shaderOutputs, buffers.shaderOutputsSrc1, buffers.fragmentDepthBuffer, buffers.shadedFragments);
 	}
 }
 
@@ -1240,7 +1243,7 @@
 	rasterizer2.init(w0, w2, w3);
 
 	// Shading context
-	FragmentShadingContext shadingContext(point.v0->outputs, DE_NULL, DE_NULL, &buffers.shaderOutputs[0], buffers.fragmentDepthBuffer, point.v0->primitiveID, (int)program.fragmentShader->getOutputs().size(), numSamples, FACETYPE_FRONT);
+	FragmentShadingContext shadingContext(point.v0->outputs, DE_NULL, DE_NULL, &buffers.shaderOutputs[0], &buffers.shaderOutputsSrc1[0], buffers.fragmentDepthBuffer, point.v0->primitiveID, (int)program.fragmentShader->getOutputs().size(), numSamples, FACETYPE_FRONT);
 
 	// Execute rasterize - shade - write loop
 	for (;;)
@@ -1277,7 +1280,7 @@
 
 		// Handle fragment shader outputs
 
-		writeFragmentPackets(state, renderTarget, program, &buffers.fragmentPackets[0], numRasterizedPackets, rr::FACETYPE_FRONT, buffers.shaderOutputs, buffers.fragmentDepthBuffer, buffers.shadedFragments);
+		writeFragmentPackets(state, renderTarget, program, &buffers.fragmentPackets[0], numRasterizedPackets, rr::FACETYPE_FRONT, buffers.shaderOutputs, buffers.shaderOutputsSrc1, buffers.fragmentDepthBuffer, buffers.shadedFragments);
 	}
 }
 
@@ -1298,6 +1301,7 @@
 	// shared buffers for all primitives
 	std::vector<FragmentPacket>		fragmentPackets		(maxFragmentPackets);
 	std::vector<GenericVec4>		shaderOutputs		(maxFragmentPackets*4*numFragmentOutputs);
+	std::vector<GenericVec4>		shaderOutputsSrc1	(maxFragmentPackets*4*numFragmentOutputs);
 	std::vector<Fragment>			shadedFragments		(maxFragmentPackets*4);
 	std::vector<float>				depthValues			(0);
 	float*							depthBufferPointer	= DE_NULL;
@@ -1314,6 +1318,7 @@
 	// set buffers
 	buffers.fragmentPackets.swap(fragmentPackets);
 	buffers.shaderOutputs.swap(shaderOutputs);
+	buffers.shaderOutputsSrc1.swap(shaderOutputsSrc1);
 	buffers.shadedFragments.swap(shadedFragments);
 	buffers.fragmentDepthBuffer = depthBufferPointer;
 
diff --git a/framework/referencerenderer/rrShadingContext.cpp b/framework/referencerenderer/rrShadingContext.cpp
index 261970a..1335cda 100644
--- a/framework/referencerenderer/rrShadingContext.cpp
+++ b/framework/referencerenderer/rrShadingContext.cpp
@@ -26,8 +26,9 @@
 namespace rr
 {
 
-FragmentShadingContext::FragmentShadingContext (const GenericVec4* varying0, const GenericVec4* varying1, const GenericVec4* varying2, GenericVec4* outputArray_, float* fragmentDepths_, int primitiveID_, int numFragmentOutputs_, int numSamples_, FaceType visibleFace_)
+FragmentShadingContext::FragmentShadingContext (const GenericVec4* varying0, const GenericVec4* varying1, const GenericVec4* varying2, GenericVec4* outputArray_, GenericVec4* outputArraySrc1_, float* fragmentDepths_, int primitiveID_, int numFragmentOutputs_, int numSamples_, FaceType visibleFace_)
 	: outputArray			(outputArray_)
+	, outputArraySrc1		(outputArraySrc1_)
 	, primitiveID			(primitiveID_)
 	, numFragmentOutputs	(numFragmentOutputs_)
 	, numSamples			(numSamples_)
diff --git a/framework/referencerenderer/rrShadingContext.hpp b/framework/referencerenderer/rrShadingContext.hpp
index b506dd1..c9e03d5 100644
--- a/framework/referencerenderer/rrShadingContext.hpp
+++ b/framework/referencerenderer/rrShadingContext.hpp
@@ -37,10 +37,11 @@
  *//*--------------------------------------------------------------------*/
 struct FragmentShadingContext
 {
-								FragmentShadingContext (const GenericVec4* varying0, const GenericVec4* varying1, const GenericVec4* varying2, GenericVec4* outputArray, float* fragmentDepths, int primitiveID, int numFragmentOutputs, int numSamples, FaceType visibleFace_);
+								FragmentShadingContext (const GenericVec4* varying0, const GenericVec4* varying1, const GenericVec4* varying2, GenericVec4* outputArray, GenericVec4* outputArraySrc1, float* fragmentDepths, int primitiveID, int numFragmentOutputs, int numSamples, FaceType visibleFace_);
 
 	const GenericVec4*			varyings[3];		//!< Vertex shader outputs. Pointer will be NULL if there is no such vertex.
 	GenericVec4* const			outputArray;		//!< Fragment output array
+	GenericVec4* const			outputArraySrc1;	//!< Fragment output array for source 1.
 	const int					primitiveID;		//!< Geometry shader output
 	const int					numFragmentOutputs;	//!< Fragment output count
 	const int					numSamples;			//!< Number of samples
@@ -60,6 +61,17 @@
 	context.outputArray[outputNdx + context.numFragmentOutputs*(fragNdx + packetNdx*4)] = value;
 }
 
+template <typename T>
+void writeFragmentOutputDualSource (const FragmentShadingContext& context, int packetNdx, int fragNdx, int outputNdx, const T& value, const T& value1)
+{
+	DE_ASSERT(packetNdx >= 0);
+	DE_ASSERT(fragNdx >= 0 && fragNdx < 4);
+	DE_ASSERT(outputNdx >= 0 && outputNdx < context.numFragmentOutputs);
+
+	context.outputArray[outputNdx + context.numFragmentOutputs*(fragNdx + packetNdx*4)] = value;
+	context.outputArraySrc1[outputNdx + context.numFragmentOutputs*(fragNdx + packetNdx*4)] = value1;
+}
+
 // Read Varying
 
 template <typename T>
diff --git a/framework/xexml/CMakeLists.txt b/framework/xexml/CMakeLists.txt
new file mode 100644
index 0000000..3af27a6
--- /dev/null
+++ b/framework/xexml/CMakeLists.txt
@@ -0,0 +1,18 @@
+# XML parser
+
+set(XEXML_SRCS
+	xeDefs.cpp
+	xeDefs.hpp
+	xeXMLParser.cpp
+	xeXMLParser.hpp
+	)
+
+set(XEXML_LIBS
+	decpp
+	deutil
+	debase
+	)
+
+add_library(xexml STATIC ${XEXML_SRCS})
+target_link_libraries(xexml ${XEXML_LIBS})
+
diff --git a/executor/xeDefs.cpp b/framework/xexml/xeDefs.cpp
similarity index 100%
rename from executor/xeDefs.cpp
rename to framework/xexml/xeDefs.cpp
diff --git a/executor/xeDefs.hpp b/framework/xexml/xeDefs.hpp
similarity index 100%
rename from executor/xeDefs.hpp
rename to framework/xexml/xeDefs.hpp
diff --git a/executor/xeXMLParser.cpp b/framework/xexml/xeXMLParser.cpp
similarity index 100%
rename from executor/xeXMLParser.cpp
rename to framework/xexml/xeXMLParser.cpp
diff --git a/executor/xeXMLParser.hpp b/framework/xexml/xeXMLParser.hpp
similarity index 100%
rename from executor/xeXMLParser.hpp
rename to framework/xexml/xeXMLParser.hpp
diff --git a/modules/egl/teglGetProcAddressTests.cpp b/modules/egl/teglGetProcAddressTests.cpp
index d848339..aa74215 100644
--- a/modules/egl/teglGetProcAddressTests.cpp
+++ b/modules/egl/teglGetProcAddressTests.cpp
@@ -116,7 +116,7 @@
 	{
 		m_supported = eglu::getClientExtensions(m_eglTestCtx.getLibrary());
 	}
-	catch (const tcu::NotSupportedError& error)
+	catch (const tcu::NotSupportedError&)
 	{
 		// Ignore case where EGL client extensions are not supported
 		// that's okay for these tests.
diff --git a/modules/egl/teglRobustnessTests.cpp b/modules/egl/teglRobustnessTests.cpp
index 452777f..0953e3a 100644
--- a/modules/egl/teglRobustnessTests.cpp
+++ b/modules/egl/teglRobustnessTests.cpp
@@ -1108,7 +1108,7 @@
 								<<	shaderDecl << "\n"
 								<<	"void main (void)\n"
 								<<	"{\n"
-								<<	"	highp vec4 color;\n"
+								<<	"	highp vec4 color = vec4(0.0f);\n"
 								<<	shaderBody << "\n"
 								<<	"	v_color = color;\n"
 								<<	"	gl_Position = a_position;\n"
diff --git a/modules/egl/teglSyncTests.cpp b/modules/egl/teglSyncTests.cpp
index ca0d91e..4c00cee 100644
--- a/modules/egl/teglSyncTests.cpp
+++ b/modules/egl/teglSyncTests.cpp
@@ -108,7 +108,8 @@
 	void							init		(void);
 	void							deinit		(void);
 	bool							hasRequiredEGLVersion(int requiredMajor, int requiredMinor);
-	bool							hasRequiredEGLExtensions(void);
+	bool							hasEGLFenceSyncExtension(void);
+	bool							hasEGLWaitSyncExtension(void);
 	EGLDisplay						getEglDisplay()	{return m_eglDisplay;}
 
 protected:
@@ -175,7 +176,7 @@
 	return true;
 }
 
-bool SyncTest::hasRequiredEGLExtensions (void)
+bool SyncTest::hasEGLFenceSyncExtension (void)
 {
 	TestLog&		log	= m_testCtx.getLog();
 
@@ -185,11 +186,12 @@
 		return false;
 	}
 
-	if (!eglu::hasExtension(m_eglTestCtx.getLibrary(), m_eglDisplay, "EGL_KHR_reusable_sync"))
-	{
-		log << TestLog::Message << "EGL_KHR_reusable_sync not supported" << TestLog::EndMessage;
-		return false;
-	}
+	return true;
+}
+
+bool SyncTest::hasEGLWaitSyncExtension (void)
+{
+	TestLog&	 log	= m_testCtx.getLog();
 
 	if (!eglu::hasExtension(m_eglTestCtx.getLibrary(), m_eglDisplay, "EGL_KHR_wait_sync"))
 	{
@@ -350,7 +352,7 @@
 		{
 			test<createSync>(m_funcNames, &Library::createSync);
 		}
-		if (hasRequiredEGLExtensions())
+		if (hasEGLFenceSyncExtension())
 		{
 			test<createSyncKHR>(m_funcNamesKHR, &Library::createSyncKHR);
 		}
@@ -402,7 +404,7 @@
 		{
 			test<createSync, EGLAttrib>(m_funcNames, &Library::createSync);
 		}
-		if (hasRequiredEGLExtensions())
+		if (hasEGLFenceSyncExtension())
 		{
 			test<createSyncKHR, EGLint>(m_funcNamesKHR, &Library::createSyncKHR);
 		}
@@ -462,7 +464,7 @@
 		{
 			test<createSync, EGLSync>(m_funcNames, &Library::createSync, EGL_NO_SYNC);
 		}
-		if (hasRequiredEGLExtensions())
+		if (hasEGLFenceSyncExtension())
 		{
 			test<createSyncKHR, EGLSyncKHR>(m_funcNamesKHR, &Library::createSyncKHR, EGL_NO_SYNC_KHR);
 		}
@@ -523,7 +525,7 @@
 			test<createSync>(m_funcNames, &Library::createSync, EGL_NO_SYNC,
 							 EGL_BAD_PARAMETER, "EGL_BAD_PARAMETER");
 		}
-		if (hasRequiredEGLExtensions())
+		if (hasEGLFenceSyncExtension())
 		{
 			test<createSyncKHR>(m_funcNamesKHR, &Library::createSyncKHR, EGL_NO_SYNC_KHR,
 								EGL_BAD_ATTRIBUTE, "EGL_BAD_ATTRIBUTE");
@@ -588,7 +590,7 @@
 		{
 			test<createSync, EGLAttrib>(m_funcNames, &Library::createSync, EGL_NO_SYNC);
 		}
-		if (hasRequiredEGLExtensions())
+		if (hasEGLFenceSyncExtension())
 		{
 			test<createSyncKHR, EGLint>(m_funcNamesKHR, &Library::createSyncKHR, EGL_NO_SYNC_KHR);
 		}
@@ -652,7 +654,7 @@
 		{
 			test<createSync>(m_funcNames, &Library::createSync, EGL_NO_SYNC);
 		}
-		if (hasRequiredEGLExtensions())
+		if (hasEGLFenceSyncExtension())
 		{
 			test<createSyncKHR>(m_funcNamesKHR, &Library::createSyncKHR, EGL_NO_SYNC_KHR);
 		}
@@ -713,7 +715,7 @@
 			test<createSync, clientWaitSync>(m_funcNames, &Library::createSync,
 											 &Library::clientWaitSync);
 		}
-		if (hasRequiredEGLExtensions())
+		if (hasEGLFenceSyncExtension())
 		{
 			test<createSyncKHR, clientWaitSyncKHR>(m_funcNamesKHR, &Library::createSyncKHR,
 												   &Library::clientWaitSyncKHR);
@@ -794,7 +796,7 @@
 											 EGL_FOREVER, "EGL_FOREVER",
 											 EGL_CONDITION_SATISFIED);
 		}
-		if (hasRequiredEGLExtensions())
+		if (hasEGLFenceSyncExtension())
 		{
 			test<createSyncKHR, clientWaitSyncKHR>(m_funcNamesKHR, &Library::createSyncKHR,
 												   &Library::clientWaitSyncKHR,
@@ -878,7 +880,7 @@
 											 &Library::clientWaitSync,
 											 EGL_CONDITION_SATISFIED, EGL_FOREVER, "EGL_FOREVER");
 		}
-		if (hasRequiredEGLExtensions())
+		if (hasEGLFenceSyncExtension())
 		{
 			test<createSyncKHR, clientWaitSyncKHR>(m_funcNamesKHR, &Library::createSyncKHR,
 												   &Library::clientWaitSyncKHR,
@@ -953,7 +955,7 @@
 											 EGL_FOREVER, "EGL_FOREVER",
 											 EGL_CONDITION_SATISFIED);
 		}
-		if (hasRequiredEGLExtensions())
+		if (hasEGLFenceSyncExtension())
 		{
 			test<createSyncKHR, clientWaitSyncKHR>(m_funcNamesKHR, &Library::createSyncKHR,
 												   &Library::clientWaitSyncKHR,
@@ -1029,7 +1031,7 @@
 											 EGL_SYNC_FLUSH_COMMANDS_BIT, "EGL_SYNC_FLUSH_COMMANDS_BIT",
 											 EGL_FOREVER, "EGL_FOREVER");
 		}
-		if (hasRequiredEGLExtensions())
+		if (hasEGLFenceSyncExtension())
 		{
 			test<createSyncKHR, clientWaitSyncKHR>(m_funcNamesKHR, &Library::createSyncKHR,
 												   &Library::clientWaitSyncKHR,
@@ -1095,7 +1097,7 @@
 								 EGL_NO_SYNC, "EGL_NO_SYNC",
 								 EGL_FOREVER, "EGL_FOREVER");
 		}
-		if (hasRequiredEGLExtensions())
+		if (hasEGLFenceSyncExtension())
 		{
 			test<clientWaitSyncKHR>(m_funcNamesKHR, &Library::clientWaitSyncKHR,
 									EGL_NO_SYNC_KHR, "EGL_NO_SYNC_KHR",
@@ -1158,7 +1160,7 @@
 													   &Library::getSyncAttrib,
 													   EGL_SYNC_TYPE, "EGL_SYNC_TYPE");
 		}
-		if (hasRequiredEGLExtensions())
+		if (hasEGLFenceSyncExtension())
 		{
 			test<createSyncKHR, getSyncAttribKHR, EGLint>(m_funcNamesKHR, &Library::createSyncKHR,
 														  &Library::getSyncAttribKHR,
@@ -1223,7 +1225,7 @@
 													   &Library::getSyncAttrib,
 													   EGL_SYNC_STATUS, "EGL_SYNC_STATUS");
 		}
-		if (hasRequiredEGLExtensions())
+		if (hasEGLFenceSyncExtension())
 		{
 			test<createSyncKHR, getSyncAttribKHR, EGLint>(m_funcNamesKHR, &Library::createSyncKHR,
 														  &Library::getSyncAttribKHR,
@@ -1323,7 +1325,7 @@
 																	   EGL_SYNC_STATUS, "EGL_SYNC_STATUS",
 																	   EGL_SIGNALED);
 		}
-		if (hasRequiredEGLExtensions())
+		if (hasEGLFenceSyncExtension())
 		{
 			test<createSyncKHR, clientWaitSyncKHR, getSyncAttribKHR, EGLint>(m_funcNamesKHR,
 																			 &Library::createSyncKHR,
@@ -1396,7 +1398,7 @@
 													   EGL_SYNC_CONDITION, "EGL_SYNC_CONDITION",
 													   EGL_SYNC_PRIOR_COMMANDS_COMPLETE);
 		}
-		if (hasRequiredEGLExtensions())
+		if (hasEGLFenceSyncExtension())
 		{
 			test<createSyncKHR, getSyncAttribKHR, EGLint>(m_funcNamesKHR, &Library::createSyncKHR,
 														  &Library::getSyncAttribKHR,
@@ -1473,7 +1475,7 @@
 													   &Library::getSyncAttrib,
 													   EGL_SYNC_CONDITION, "EGL_SYNC_CONDITION");
 		}
-		if (hasRequiredEGLExtensions())
+		if (hasEGLFenceSyncExtension())
 		{
 			test<createSyncKHR, getSyncAttribKHR, EGLint>(m_funcNamesKHR, &Library::createSyncKHR,
 														  &Library::getSyncAttribKHR,
@@ -1543,7 +1545,7 @@
 													EGL_NO_SYNC, "EGL_NO_SYNC",
 													EGL_SYNC_CONDITION, "EGL_SYNC_CONDITION");
 		}
-		if (hasRequiredEGLExtensions())
+		if (hasEGLFenceSyncExtension())
 		{
 			test<getSyncAttribKHR, EGLSyncKHR, EGLint>(m_funcNamesKHR, &Library::getSyncAttribKHR,
 													   EGL_NO_SYNC_KHR, "EGL_NO_SYNC_KHR",
@@ -1618,7 +1620,7 @@
 													   &Library::createSync,
 													   &Library::getSyncAttrib);
 		}
-		if (hasRequiredEGLExtensions())
+		if (hasEGLFenceSyncExtension())
 		{
 			test<createSyncKHR, getSyncAttribKHR, EGLint>(m_funcNamesKHR,
 														  &Library::createSyncKHR,
@@ -1693,7 +1695,7 @@
 											&Library::getSyncAttrib,
 											EGL_SYNC_TYPE, "EGL_SYNC_TYPE", value);
 		}
-		if (hasRequiredEGLExtensions())
+		if (hasEGLFenceSyncExtension())
 		{
 			EGLint value = 0;
 			test<createSyncKHR, getSyncAttribKHR>(m_funcNamesKHR, &Library::createSyncKHR,
@@ -1756,7 +1758,7 @@
 												   &Library::destroySync,
 												   EGL_NO_SYNC);
 		}
-		if (hasRequiredEGLExtensions())
+		if (hasEGLFenceSyncExtension())
 		{
 			test<createSyncKHR, destroySyncKHR, EGLSyncKHR>(m_funcNamesKHR,
 															&Library::createSyncKHR,
@@ -1827,7 +1829,7 @@
 										  &Library::createSync,
 										  &Library::destroySync);
 		}
-		if (hasRequiredEGLExtensions())
+		if (hasEGLFenceSyncExtension())
 		{
 			test<createSyncKHR, destroySyncKHR>(m_funcNamesKHR,
 												&Library::createSyncKHR,
@@ -1890,7 +1892,7 @@
 									   &Library::destroySync,
 									   EGL_NO_SYNC);
 		}
-		if (hasRequiredEGLExtensions())
+		if (hasEGLFenceSyncExtension())
 		{
 			test<destroySyncKHR, EGLSyncKHR>(m_funcNamesKHR,
 											 &Library::destroySyncKHR,
@@ -1954,7 +1956,7 @@
 												   &Library::createSync,
 												   &Library::waitSync);
 		}
-		if (hasRequiredEGLExtensions())
+		if (hasEGLWaitSyncExtension())
 		{
 			test<createSyncKHR, waitSyncKHR, EGLint>(m_funcNamesKHR,
 													 &Library::createSyncKHR,
@@ -2027,7 +2029,7 @@
 												   &Library::createSync,
 												   &Library::waitSync);
 		}
-		if (hasRequiredEGLExtensions())
+		if (hasEGLWaitSyncExtension())
 		{
 			test<createSyncKHR, waitSyncKHR, EGLint>(m_funcNamesKHR,
 													 &Library::createSyncKHR,
@@ -2090,7 +2092,7 @@
 									&Library::waitSync,
 									EGL_NO_SYNC);
 		}
-		if (hasRequiredEGLExtensions())
+		if (hasEGLWaitSyncExtension())
 		{
 			test<waitSyncKHR, EGLSyncKHR>(m_funcNamesKHR,
 										  &Library::waitSyncKHR,
@@ -2160,7 +2162,7 @@
 									   &Library::createSync,
 									   &Library::waitSync);
 		}
-		if (hasRequiredEGLExtensions())
+		if (hasEGLWaitSyncExtension())
 		{
 			test<createSyncKHR, waitSyncKHR>(m_funcNamesKHR,
 											 &Library::createSyncKHR,
diff --git a/modules/gles2/functional/es2fReadPixelsTests.cpp b/modules/gles2/functional/es2fReadPixelsTests.cpp
index b71274b..9a49611 100644
--- a/modules/gles2/functional/es2fReadPixelsTests.cpp
+++ b/modules/gles2/functional/es2fReadPixelsTests.cpp
@@ -181,7 +181,7 @@
 	getFormatInfo(format, glFormat, glType, pixelSize);
 	m_testCtx.getLog() << tcu::TestLog::Message << "Format: " << glu::getTextureFormatStr(glFormat) << ", Type: " << glu::getTypeStr(glType) << tcu::TestLog::EndMessage;
 
-	tcu::Texture2D reference(format, width, height);
+	tcu::Texture2D reference(format, width, height, glu::isES2Context(m_context.getRenderContext().getType()));
 	reference.allocLevel(0);
 
 	GLU_CHECK_CALL(glViewport(0, 0, width, height));
@@ -221,8 +221,8 @@
 		const deUint8		alphaThreshold	= (deUint8)deCeilFloatToInt32(256.0f * (2.0f / (float)(1 << deMin32(m_context.getRenderTarget().getPixelFormat().alphaBits,	formatBitDepths.w()))));
 
 		// bilinearCompare only accepts RGBA, UINT8
-		tcu::Texture2D		referenceRGBA8	(tcu::TextureFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8), width, height);
-		tcu::Texture2D		resultRGBA8		(tcu::TextureFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8), width, height);
+		tcu::Texture2D		referenceRGBA8	(tcu::TextureFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8), width, height, glu::isES2Context(m_context.getRenderContext().getType()));
+		tcu::Texture2D		resultRGBA8		(tcu::TextureFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8), width, height, glu::isES2Context(m_context.getRenderContext().getType()));
 
 		referenceRGBA8.allocLevel(0);
 		resultRGBA8.allocLevel(0);
diff --git a/modules/gles2/functional/es2fTextureMipmapTests.cpp b/modules/gles2/functional/es2fTextureMipmapTests.cpp
index 6ba4c5f..bbf9cd6 100644
--- a/modules/gles2/functional/es2fTextureMipmapTests.cpp
+++ b/modules/gles2/functional/es2fTextureMipmapTests.cpp
@@ -821,7 +821,7 @@
 
 	const int				numLevels			= deLog2Floor32(de::max(m_width, m_height))+1;
 
-	tcu::Texture2D			resultTexture		(tcu::TextureFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8), m_texture->getRefTexture().getWidth(), m_texture->getRefTexture().getHeight());
+	tcu::Texture2D			resultTexture		(tcu::TextureFormat(tcu::TextureFormat::RGBA, tcu::TextureFormat::UNORM_INT8), m_texture->getRefTexture().getWidth(), m_texture->getRefTexture().getHeight(), isES2Context(m_renderCtx.getType()));
 
 	vector<float>			texCoord;
 
diff --git a/modules/gles2/functional/es2fTextureUnitTests.cpp b/modules/gles2/functional/es2fTextureUnitTests.cpp
index 439b2e8..1af1c3c 100644
--- a/modules/gles2/functional/es2fTextureUnitTests.cpp
+++ b/modules/gles2/functional/es2fTextureUnitTests.cpp
@@ -672,7 +672,7 @@
 			if (is2d)
 			{
 				m_ndx2dOrCube.push_back((int)m_textures2d.size()); // Remember the index this texture has in the 2d array.
-				m_textures2d.push_back(new tcu::Texture2D(glu::mapGLTransferFormat(params.format, params.dataType), texWidth, texHeight));
+				m_textures2d.push_back(new tcu::Texture2D(glu::mapGLTransferFormat(params.format, params.dataType), texWidth, texHeight, isES2Context(m_context.getRenderContext().getType())));
 			}
 			else
 			{
diff --git a/modules/gles2/functional/es2fUniformApiTests.cpp b/modules/gles2/functional/es2fUniformApiTests.cpp
index 04d14fc..ba1fbd2 100644
--- a/modules/gles2/functional/es2fUniformApiTests.cpp
+++ b/modules/gles2/functional/es2fUniformApiTests.cpp
@@ -465,7 +465,7 @@
 				for (int j = 0; j < (int)structTypes.size(); j++)
 					delete structTypes[j];
 				structTypes.clear();
-				uniform.type = (("u_var" + de::toString(i)).c_str(), generateRandomType(3, structIdx, structTypes, rnd));
+				uniform.type = generateRandomType(3, structIdx, structTypes, rnd);
 			} while (res->getNumSamplers() + getNumSamplersInType(uniform.type) > MAX_NUM_SAMPLER_UNIFORMS);
 
 			res->addUniform(uniform);
diff --git a/modules/gles2/tes2TestPackage.cpp b/modules/gles2/tes2TestPackage.cpp
index d32cb8a..3b3f2ac 100644
--- a/modules/gles2/tes2TestPackage.cpp
+++ b/modules/gles2/tes2TestPackage.cpp
@@ -29,6 +29,10 @@
 #include "es2aAccuracyTests.hpp"
 #include "es2sStressTests.hpp"
 #include "tcuTestLog.hpp"
+#include "tcuTestContext.hpp"
+#include "tcuWaiverUtil.hpp"
+#include "tcuCommandLine.hpp"
+#include "gluContextInfo.hpp"
 #include "gluRenderContext.hpp"
 #include "gluStateReset.hpp"
 #include "glwFunctions.hpp"
@@ -42,7 +46,7 @@
 class TestCaseWrapper : public tcu::TestCaseExecutor
 {
 public:
-									TestCaseWrapper		(TestPackage& package);
+									TestCaseWrapper		(TestPackage& package, de::SharedPtr<tcu::WaiverUtil> waiverMechanism);
 									~TestCaseWrapper	(void);
 
 	void							init				(tcu::TestCase* testCase, const std::string& path);
@@ -51,10 +55,12 @@
 
 private:
 	TestPackage&					m_testPackage;
+	de::SharedPtr<tcu::WaiverUtil>	m_waiverMechanism;
 };
 
-TestCaseWrapper::TestCaseWrapper (TestPackage& package)
+TestCaseWrapper::TestCaseWrapper (TestPackage& package, de::SharedPtr<tcu::WaiverUtil> waiverMechanism)
 	: m_testPackage(package)
+	, m_waiverMechanism(waiverMechanism)
 {
 }
 
@@ -62,8 +68,11 @@
 {
 }
 
-void TestCaseWrapper::init (tcu::TestCase* testCase, const std::string&)
+void TestCaseWrapper::init (tcu::TestCase* testCase, const std::string& path)
 {
+	if (m_waiverMechanism->isOnWaiverList(path))
+		throw tcu::TestException("Waived test", QP_TEST_RESULT_WAIVER);
+
 	testCase->init();
 }
 
@@ -115,6 +124,7 @@
 	: tcu::TestPackage	(testCtx, "dEQP-GLES2", "dEQP OpenGL ES 2.0 Tests")
 	, m_archive			(testCtx.getRootArchive(), "gles2/")
 	, m_context			(DE_NULL)
+	, m_waiverMechanism(new tcu::WaiverUtil)
 {
 }
 
@@ -132,6 +142,18 @@
 		// Create context
 		m_context = new Context(m_testCtx);
 
+		// Setup waiver mechanism
+		if (m_testCtx.getCommandLine().getRunMode() == tcu::RUNMODE_EXECUTE)
+		{
+			const glu::ContextInfo& contextInfo = m_context->getContextInfo();
+			std::string				vendor		= contextInfo.getString(GL_VENDOR);
+			std::string				renderer	= contextInfo.getString(GL_RENDERER);
+			const tcu::CommandLine&	commandLine = m_context->getTestContext().getCommandLine();
+			tcu::SessionInfo		sessionInfo	(vendor, renderer, commandLine.getInitialCmdLine());
+			m_waiverMechanism->setup(commandLine.getWaiverFileName(), m_name, vendor, renderer, sessionInfo);
+			m_context->getTestContext().getLog().writeSessionInfo(sessionInfo.get());
+		}
+
 		// Add main test groups
 		addChild(new InfoTests						(*m_context));
 		addChild(new CapabilityTests				(*m_context));
@@ -158,7 +180,7 @@
 
 tcu::TestCaseExecutor* TestPackage::createExecutor (void) const
 {
-	return new TestCaseWrapper(const_cast<TestPackage&>(*this));
+	return new TestCaseWrapper(const_cast<TestPackage&>(*this), m_waiverMechanism);
 }
 
 } // gles2
diff --git a/modules/gles2/tes2TestPackage.hpp b/modules/gles2/tes2TestPackage.hpp
index 55eadd1..5de5c71 100644
--- a/modules/gles2/tes2TestPackage.hpp
+++ b/modules/gles2/tes2TestPackage.hpp
@@ -27,6 +27,12 @@
 #include "tcuTestPackage.hpp"
 #include "tes2Context.hpp"
 #include "tcuResource.hpp"
+#include "deSharedPtr.hpp"
+
+namespace tcu
+{
+	class WaiverUtil;
+};
 
 namespace deqp
 {
@@ -50,6 +56,7 @@
 private:
 	tcu::ResourcePrefix				m_archive;
 	Context*						m_context;
+	de::SharedPtr<tcu::WaiverUtil>	m_waiverMechanism;
 };
 
 } // gles2
diff --git a/modules/gles3/functional/es3fUniformApiTests.cpp b/modules/gles3/functional/es3fUniformApiTests.cpp
index 07fdd53..b363e73 100644
--- a/modules/gles3/functional/es3fUniformApiTests.cpp
+++ b/modules/gles3/functional/es3fUniformApiTests.cpp
@@ -531,7 +531,7 @@
 				for (int j = 0; j < (int)structTypes.size(); j++)
 					delete structTypes[j];
 				structTypes.clear();
-				uniform.type = (("u_var" + de::toString(i)).c_str(), generateRandomType(3, structIdx, structTypes, rnd));
+				uniform.type = generateRandomType(3, structIdx, structTypes, rnd);
 			} while (res->getNumSamplers() + getNumSamplersInType(uniform.type) > MAX_NUM_SAMPLER_UNIFORMS);
 
 			res->addUniform(uniform);
diff --git a/modules/gles3/tes3TestPackage.cpp b/modules/gles3/tes3TestPackage.cpp
index 7f088e1..bcfff90 100644
--- a/modules/gles3/tes3TestPackage.cpp
+++ b/modules/gles3/tes3TestPackage.cpp
@@ -28,6 +28,9 @@
 #include "es3sStressTests.hpp"
 #include "es3pPerformanceTests.hpp"
 #include "tcuTestLog.hpp"
+#include "tcuWaiverUtil.hpp"
+#include "tcuCommandLine.hpp"
+#include "gluContextInfo.hpp"
 #include "gluRenderContext.hpp"
 #include "gluStateReset.hpp"
 #include "glwFunctions.hpp"
@@ -41,7 +44,7 @@
 class TestCaseWrapper : public tcu::TestCaseExecutor
 {
 public:
-									TestCaseWrapper		(TestPackage& package);
+									TestCaseWrapper		(TestPackage& package, de::SharedPtr<tcu::WaiverUtil> waiverMechanism);
 									~TestCaseWrapper	(void);
 
 	void							init				(tcu::TestCase* testCase, const std::string& path);
@@ -50,10 +53,12 @@
 
 private:
 	TestPackage&					m_testPackage;
+	de::SharedPtr<tcu::WaiverUtil>	m_waiverMechanism;
 };
 
-TestCaseWrapper::TestCaseWrapper (TestPackage& package)
+TestCaseWrapper::TestCaseWrapper (TestPackage& package, de::SharedPtr<tcu::WaiverUtil> waiverMechanism)
 	: m_testPackage(package)
+	, m_waiverMechanism(waiverMechanism)
 {
 }
 
@@ -61,8 +66,11 @@
 {
 }
 
-void TestCaseWrapper::init (tcu::TestCase* testCase, const std::string&)
+void TestCaseWrapper::init (tcu::TestCase* testCase, const std::string& path)
 {
+	if (m_waiverMechanism->isOnWaiverList(path))
+		throw tcu::TestException("Waived test", QP_TEST_RESULT_WAIVER);
+
 	testCase->init();
 }
 
@@ -114,6 +122,7 @@
 	: tcu::TestPackage	(testCtx, "dEQP-GLES3", "dEQP OpenGL ES 3.0 Tests")
 	, m_archive			(testCtx.getRootArchive(), "gles3/")
 	, m_context			(DE_NULL)
+	, m_waiverMechanism	(new tcu::WaiverUtil)
 {
 }
 
@@ -131,6 +140,18 @@
 		// Create context
 		m_context = new Context(m_testCtx);
 
+		// Setup waiver mechanism
+		if (m_testCtx.getCommandLine().getRunMode() == tcu::RUNMODE_EXECUTE)
+		{
+			const glu::ContextInfo&	contextInfo = m_context->getContextInfo();
+			std::string				vendor		= contextInfo.getString(GL_VENDOR);
+			std::string				renderer	= contextInfo.getString(GL_RENDERER);
+			const tcu::CommandLine&	commandLine	= m_context->getTestContext().getCommandLine();
+			tcu::SessionInfo		sessionInfo	(vendor, renderer, commandLine.getInitialCmdLine());
+			m_waiverMechanism->setup(commandLine.getWaiverFileName(), m_name, vendor, renderer, sessionInfo);
+			m_context->getTestContext().getLog().writeSessionInfo(sessionInfo.get());
+		}
+
 		// Add main test groups
 		addChild(new InfoTests						(*m_context));
 		addChild(new Functional::FunctionalTests	(*m_context));
@@ -156,7 +177,7 @@
 
 tcu::TestCaseExecutor* TestPackage::createExecutor (void) const
 {
-	return new TestCaseWrapper(const_cast<TestPackage&>(*this));
+	return new TestCaseWrapper(const_cast<TestPackage&>(*this), m_waiverMechanism);
 }
 
 } // gles3
diff --git a/modules/gles3/tes3TestPackage.hpp b/modules/gles3/tes3TestPackage.hpp
index 68c8cbf..12fd987 100644
--- a/modules/gles3/tes3TestPackage.hpp
+++ b/modules/gles3/tes3TestPackage.hpp
@@ -27,6 +27,12 @@
 #include "tcuTestPackage.hpp"
 #include "tes3Context.hpp"
 #include "tcuResource.hpp"
+#include "deSharedPtr.hpp"
+
+namespace tcu
+{
+	class WaiverUtil;
+};
 
 namespace deqp
 {
@@ -50,6 +56,7 @@
 private:
 	tcu::ResourcePrefix				m_archive;
 	Context*						m_context;
+	de::SharedPtr<tcu::WaiverUtil>	m_waiverMechanism;
 };
 
 } // gles3
diff --git a/modules/gles31/functional/es31fSSBOLayoutTests.cpp b/modules/gles31/functional/es31fSSBOLayoutTests.cpp
index 9f95cf7..8d54b91 100644
--- a/modules/gles31/functional/es31fSSBOLayoutTests.cpp
+++ b/modules/gles31/functional/es31fSSBOLayoutTests.cpp
@@ -75,12 +75,13 @@
 private:
 	void					generateBlock				(de::Random& rnd, deUint32 layoutFlags);
 	void					generateBufferVar			(de::Random& rnd, BufferBlock& block, bool isLastMember);
-	glu::VarType			generateType				(de::Random& rnd, int typeDepth, bool arrayOk, bool unusedArrayOk);
+	glu::VarType			generateType				(de::Random& rnd, int structDepth, int arrayDepth, bool arrayOk, bool unusedArrayOk);
 
 	deUint32				m_features;
 	int						m_maxBlocks;
 	int						m_maxInstances;
 	int						m_maxArrayLength;
+	int						m_maxArrayDepth;
 	int						m_maxStructDepth;
 	int						m_maxBlockMembers;
 	int						m_maxStructMembers;
@@ -97,6 +98,7 @@
 	, m_maxBlocks			(3)
 	, m_maxInstances		((features & FEATURE_INSTANCE_ARRAYS)	? 3 : 0)
 	, m_maxArrayLength		((features & FEATURE_ARRAYS)			? 8 : 0)
+	, m_maxArrayDepth		((features & FEATURE_ARRAYS_OF_ARRAYS)	? 2 : 0)
 	, m_maxStructDepth		((features & FEATURE_STRUCTS)			? 2 : 0)
 	, m_maxBlockMembers		(4)
 	, m_maxStructMembers	(4)
@@ -197,7 +199,7 @@
 	const float			accessWeight		= 0.85f;
 	const bool			unusedOk			= (m_features & FEATURE_UNUSED_VARS) != 0;
 	const std::string	name				= genName('a', 'z', m_bufferVarNdx);
-	const glu::VarType	type				= generateType(rnd, 0, true, isLastMember && (m_features & FEATURE_UNSIZED_ARRAYS));
+	const glu::VarType	type				= generateType(rnd, 0, 0, true, isLastMember && (m_features & FEATURE_UNSIZED_ARRAYS));
 	const bool			access				= !unusedOk || (rnd.getFloat() < accessWeight);
 	const bool			read				= access ? (rnd.getFloat() < readWeight) : false;
 	const bool			write				= access ? (!read || (rnd.getFloat() < writeWeight)) : false;
@@ -208,7 +210,7 @@
 	m_bufferVarNdx += 1;
 }
 
-glu::VarType RandomSSBOLayoutCase::generateType (de::Random& rnd, int typeDepth, bool arrayOk, bool unsizedArrayOk)
+glu::VarType RandomSSBOLayoutCase::generateType (de::Random& rnd, int structDepth, int arrayDepth, bool arrayOk, bool unsizedArrayOk)
 {
 	const float structWeight		= 0.1f;
 	const float arrayWeight			= 0.1f;
@@ -218,11 +220,12 @@
 
 	if (unsizedArrayOk && (rnd.getFloat() < unsizedArrayWeight))
 	{
-		const bool			childArrayOk	= (m_features & FEATURE_ARRAYS_OF_ARRAYS) != 0;
-		const glu::VarType	elementType		= generateType(rnd, typeDepth, childArrayOk, false);
+		const bool			childArrayOk	= ((m_features & FEATURE_ARRAYS_OF_ARRAYS) != 0) &&
+											  (arrayDepth < m_maxArrayDepth);
+		const glu::VarType	elementType		= generateType(rnd, structDepth, arrayDepth+1, childArrayOk, false);
 		return glu::VarType(elementType, glu::VarType::UNSIZED_ARRAY);
 	}
-	else if (typeDepth < m_maxStructDepth && rnd.getFloat() < structWeight)
+	else if (structDepth < m_maxStructDepth && rnd.getFloat() < structWeight)
 	{
 		// \todo [2013-10-14 pyry] Implement unused flags for members!
 //		bool					unusedOk			= (m_features & FEATURE_UNUSED_MEMBERS) != 0;
@@ -231,7 +234,7 @@
 
 		// Generate members first so nested struct declarations are in correct order.
 		for (int ndx = 0; ndx < numMembers; ndx++)
-			memberTypes.push_back(generateType(rnd, typeDepth+1, true, false));
+			memberTypes.push_back(generateType(rnd, structDepth+1, arrayDepth, (arrayDepth < m_maxArrayDepth), false));
 
 		glu::StructType& structType = m_interface.allocStruct((string("s") + genName('A', 'Z', m_structNdx)).c_str());
 		m_structNdx += 1;
@@ -247,8 +250,9 @@
 	else if (m_maxArrayLength > 0 && arrayOk && rnd.getFloat() < arrayWeight)
 	{
 		const int			arrayLength		= rnd.getInt(1, m_maxArrayLength);
-		const bool			childArrayOk	= (m_features & FEATURE_ARRAYS_OF_ARRAYS) != 0;
-		const glu::VarType	elementType		= generateType(rnd, typeDepth, childArrayOk, false);
+		const bool			childArrayOk	= ((m_features & FEATURE_ARRAYS_OF_ARRAYS) != 0) &&
+											  (arrayDepth < m_maxArrayDepth);
+		const glu::VarType	elementType		= generateType(rnd, structDepth, arrayDepth+1, childArrayOk, false);
 
 		return glu::VarType(elementType, arrayLength);
 	}
diff --git a/modules/gles31/tes31TestPackage.cpp b/modules/gles31/tes31TestPackage.cpp
index 225cf94..40aa24e 100644
--- a/modules/gles31/tes31TestPackage.cpp
+++ b/modules/gles31/tes31TestPackage.cpp
@@ -27,7 +27,11 @@
 #include "es31sStressTests.hpp"
 #include "gluStateReset.hpp"
 #include "gluRenderContext.hpp"
+#include "gluContextInfo.hpp"
 #include "tcuTestLog.hpp"
+#include "tcuCommandLine.hpp"
+#include "tcuWaiverUtil.hpp"
+#include "glwEnums.hpp"
 
 namespace deqp
 {
@@ -37,7 +41,7 @@
 class TestCaseWrapper : public tcu::TestCaseExecutor
 {
 public:
-									TestCaseWrapper		(TestPackage& package);
+									TestCaseWrapper		(TestPackage& package, de::SharedPtr<tcu::WaiverUtil> waiverMechanism);
 									~TestCaseWrapper	(void);
 
 	void							init				(tcu::TestCase* testCase, const std::string& path);
@@ -46,10 +50,12 @@
 
 private:
 	TestPackage&					m_testPackage;
+	de::SharedPtr<tcu::WaiverUtil>	m_waiverMechanism;
 };
 
-TestCaseWrapper::TestCaseWrapper (TestPackage& package)
-	: m_testPackage(package)
+TestCaseWrapper::TestCaseWrapper (TestPackage& package, de::SharedPtr<tcu::WaiverUtil> waiverMechanism)
+	: m_testPackage		(package)
+	, m_waiverMechanism	(waiverMechanism)
 {
 }
 
@@ -57,8 +63,11 @@
 {
 }
 
-void TestCaseWrapper::init (tcu::TestCase* testCase, const std::string&)
+void TestCaseWrapper::init (tcu::TestCase* testCase, const std::string& path)
 {
+	if (m_waiverMechanism->isOnWaiverList(path))
+		throw tcu::TestException("Waived test", QP_TEST_RESULT_WAIVER);
+
 	testCase->init();
 }
 
@@ -100,6 +109,7 @@
 	: tcu::TestPackage	(testCtx, "dEQP-GLES31", "dEQP OpenGL ES 3.1 Tests")
 	, m_archive			(testCtx.getRootArchive(), "gles31/")
 	, m_context			(DE_NULL)
+	, m_waiverMechanism (new tcu::WaiverUtil)
 {
 }
 
@@ -117,6 +127,18 @@
 		// Create context
 		m_context = new Context(m_testCtx);
 
+		// Setup waiver mechanism
+		if (m_testCtx.getCommandLine().getRunMode() == tcu::RUNMODE_EXECUTE)
+		{
+			const glu::ContextInfo&	contextInfo = m_context->getContextInfo();
+			std::string				vendor		= contextInfo.getString(GL_VENDOR);
+			std::string				renderer	= contextInfo.getString(GL_RENDERER);
+			const tcu::CommandLine&	commandLine	= m_context->getTestContext().getCommandLine();
+			tcu::SessionInfo		sessionInfo	(vendor, renderer, commandLine.getInitialCmdLine());
+			m_waiverMechanism->setup(commandLine.getWaiverFileName(), m_name, vendor, renderer, sessionInfo);
+			m_context->getTestContext().getLog().writeSessionInfo(sessionInfo.get());
+		}
+
 		// Add main test groups
 		addChild(new InfoTests						(*m_context));
 		addChild(new Functional::FunctionalTests	(*m_context));
@@ -140,7 +162,7 @@
 
 tcu::TestCaseExecutor* TestPackage::createExecutor (void) const
 {
-	return new TestCaseWrapper(const_cast<TestPackage&>(*this));
+	return new TestCaseWrapper(const_cast<TestPackage&>(*this), m_waiverMechanism);
 }
 
 } // gles31
diff --git a/modules/gles31/tes31TestPackage.hpp b/modules/gles31/tes31TestPackage.hpp
index 1372f83..a42c418 100644
--- a/modules/gles31/tes31TestPackage.hpp
+++ b/modules/gles31/tes31TestPackage.hpp
@@ -27,6 +27,12 @@
 #include "tcuTestPackage.hpp"
 #include "tes31Context.hpp"
 #include "tcuResource.hpp"
+#include "deSharedPtr.hpp"
+
+namespace tcu
+{
+	class WaiverUtil;
+};
 
 namespace deqp
 {
@@ -50,6 +56,7 @@
 private:
 	tcu::ResourcePrefix				m_archive;
 	Context*						m_context;
+	de::SharedPtr<tcu::WaiverUtil>	m_waiverMechanism;
 };
 
 } // gles31
diff --git a/scripts/android/build_apk.py b/scripts/android/build_apk.py
index 4534a1e..1c9cec9 100644
--- a/scripts/android/build_apk.py
+++ b/scripts/android/build_apk.py
@@ -169,13 +169,14 @@
 		self.ndk		= ndk
 
 class Configuration:
-	def __init__(self, env, buildPath, abis, nativeApi, nativeBuildType, gtfTarget, verbose, layers, angle):
+	def __init__(self, env, buildPath, abis, nativeApi, minApi, nativeBuildType, gtfTarget, verbose, layers, angle):
 		self.env				= env
 		self.sourcePath			= DEQP_DIR
 		self.buildPath			= buildPath
 		self.abis				= abis
 		self.nativeApi			= nativeApi
-		self.javaApi			= 22
+		self.javaApi			= 28
+		self.minApi				= minApi
 		self.nativeBuildType	= nativeBuildType
 		self.gtfTarget			= gtfTarget
 		self.verbose			= verbose
@@ -196,6 +197,9 @@
 		if self.env.ndk.version[0] < 15:
 			raise Exception("Android NDK version %d is not supported; build requires NDK version >= 15" % (self.env.ndk.version[0]))
 
+		if not (self.minApi <= self.javaApi <= self.nativeApi):
+			raise Exception("Requires: min-api (%d) <= java-api (%d) <= native-api (%d)" % (self.minApi, self.javaApi, self.nativeApi))
+
 		if self.env.sdk.buildToolsVersion == (0,0,0):
 			raise Exception("No build tools directory found at %s" % os.path.join(self.env.sdk.path, "build-tools"))
 
@@ -614,6 +618,8 @@
 			aaptPath,
 			"package",
 			"-f",
+			"--min-sdk-version", str(config.minApi),
+			"--target-sdk-version", str(config.javaApi),
 			"-M", resolvePath(config, self.package.getManifestPath()),
 			"-I", config.env.sdk.getPlatformLibrary(config.javaApi),
 			"-F", dstPath,
@@ -912,6 +918,11 @@
 		dest='nativeApi',
 		default=28,
 		help="Android API level to target in native code")
+	parser.add_argument('--min-api',
+		type=int,
+		dest='minApi',
+		default=22,
+		help="Minimum Android API level for which the APK can be installed")
 	parser.add_argument('--sdk',
 		dest='sdkPath',
 		default=defaultSDKPath,
@@ -979,8 +990,8 @@
 	sdk			= SDKEnv(os.path.realpath(args.sdkPath))
 	buildPath	= os.path.realpath(args.buildRoot)
 	env			= Environment(sdk, ndk)
-	config		= Configuration(env, buildPath, abis=args.abis, nativeApi=args.nativeApi, nativeBuildType=args.nativeBuildType, gtfTarget=args.gtfTarget, verbose=args.verbose,
-						 layers=args.layers, angle=args.angle)
+	config		= Configuration(env, buildPath, abis=args.abis, nativeApi=args.nativeApi, minApi=args.minApi, nativeBuildType=args.nativeBuildType, gtfTarget=args.gtfTarget,
+						 verbose=args.verbose, layers=args.layers, angle=args.angle)
 
 	try:
 		config.check()
diff --git a/scripts/android/install_apk.py b/scripts/android/install_apk.py
index 51fe65c..1076dc8 100644
--- a/scripts/android/install_apk.py
+++ b/scripts/android/install_apk.py
@@ -128,6 +128,7 @@
 	print(printPrefix + "Installing %s...\n" % apkPath,)
 	execWithPrintPrefix([adbPath] + extraArgs + [
 			'install',
+			'-g',
 			apkPath
 		], printPrefix)
 	print(printPrefix + "Install complete\n",)
diff --git a/scripts/check_build_sanity.py b/scripts/check_build_sanity.py
index 10bed1d..67101cd 100644
--- a/scripts/check_build_sanity.py
+++ b/scripts/check_build_sanity.py
@@ -139,7 +139,7 @@
 			print("Skip: %s" % step.getName())
 
 COMMON_CFLAGS		= ["-Werror", "-Wno-error=unused-function"]
-COMMON_GCC_CFLAGS	= COMMON_CFLAGS + ["-Wno-implicit-fallthrough"]
+COMMON_GCC_CFLAGS	= COMMON_CFLAGS + ["-Wno-implicit-fallthrough", "-Wno-error=array-bounds"]
 COMMON_CLANG_CFLAGS	= COMMON_CFLAGS + ["-Wno-error=unused-command-line-argument"]
 GCC_32BIT_CFLAGS	= COMMON_GCC_CFLAGS + ["-m32"]
 CLANG_32BIT_CFLAGS	= COMMON_CLANG_CFLAGS + ["-m32"]
@@ -190,10 +190,8 @@
 			RunScript(os.path.join("scripts", "opengl", "gen_all.py")),
 			RunScript(os.path.join("external", "vulkancts", "scripts", "gen_framework.py")),
 			RunScript(os.path.join("external", "vulkancts", "scripts", "gen_framework_c.py")),
-			RunScript(os.path.join("scripts", "gen_android_mk.py")),
-		]),
-	('gen-ext-deps', [
-			RunScript(os.path.join("external", "vulkancts", "scripts", "gen_ext_deps.py"))
+			RunScript(os.path.join("external", "vulkancts", "scripts", "gen_ext_deps.py")),
+			RunScript(os.path.join("scripts", "gen_android_mk.py"))
 		]),
 ]
 
diff --git a/scripts/qpa_image_viewer.html b/scripts/qpa_image_viewer.html
new file mode 100644
index 0000000..21ba2c5
--- /dev/null
+++ b/scripts/qpa_image_viewer.html
@@ -0,0 +1,288 @@
+<!--
+--------------------------------------
+HTML QPA Image Viewer
+--------------------------------------
+
+Copyright (c) 2020 The Khronos Group Inc.
+Copyright (c) 2020 Valve Corporation.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<html>
+    <head>
+        <meta charset="utf-8"/>
+        <title>Load PNGs from QPA output</title>
+        <style>
+            body {
+                background: white;
+                text-align: left;
+                font-family: sans-serif;
+            }
+            h1 {
+                margin-top: 2ex;
+            }
+            h2 {
+                font-size: large;
+            }
+            figure {
+                display: flex;
+                flex-direction: column;
+            }
+            img {
+                margin-right: 1ex;
+                margin-bottom: 1ex;
+                /* Attempt to zoom images using the nearest-neighbor scaling
+                algorithm. Unfortunately, not supported under Firefox at the
+                time this text is being written. */
+                image-rendering: pixelated;
+                /* Use a black background color for images in case some pixels
+                are transparent to some degree. In the worst case, the image
+                could appear to be missing. */
+                background: black;
+            }
+            button {
+                margin: 1ex;
+                border: none;
+                border-radius: .5ex;
+                padding: 1ex;
+                background-color: steelblue;
+                color: white;
+                font-size: large;
+            }
+            button:hover {
+                opacity: .8;
+            }
+            #clearimagesbutton {
+                background-color: seagreen;
+            }
+            select {
+                font-size: large;
+                padding: 1ex;
+                border-radius: .5ex;
+                border: 1px solid darkgrey;
+            }
+            select:hover {
+                opacity: .8;
+            }
+            .loadoption {
+                text-align: center;
+                margin: 1ex;
+                padding: 2ex;
+                border: 1px solid darkgrey;
+                border-radius: 1ex;
+            }
+            #options {
+                display: flex;
+                flex-wrap: wrap;
+            }
+            #qpatext {
+                display: block;
+                min-width: 80ex;
+                max-width: 132ex;
+                min-height: 25ex;
+                max-height: 25ex;
+                margin: 1ex auto;
+            }
+            #fileselector {
+                display: none;
+            }
+            #zoomandclear {
+                margin: 2ex;
+            }
+            #images {
+                margin: 2ex;
+                display: flex;
+                flex-direction: column;
+            }
+            .imagesblock {
+                display: flex;
+                flex-wrap: wrap;
+            }
+        </style>
+    </head>
+    <body>
+        <h1>Load PNGs from QPA output</h1>
+
+        <div id="options">
+            <div class="loadoption">
+                <h2>Option 1: Load local QPA files</h2>
+                <!-- The file selector text cannot be changed, so we use a hidden selector trick. -->
+                <button id="fileselectorbutton">&#x1F4C2; Load files</button>
+                <input id="fileselector" type="file" multiple>
+            </div>
+
+            <div class="loadoption">
+                <h2>Option 2: Paste QPA text or text extract containing &lt;Image&gt; elements below and click "Load images"</h2>
+                <textarea id="qpatext"></textarea>
+                <button id="loadimagesbutton">&#x1F4C3; Load images</button>
+            </div>
+        </div>
+
+        <div id="zoomandclear">
+            &#x1F50E; Image zoom
+            <select id="zoomselect">
+                <option value="1" selected>1x</option>
+                <option value="2">2x</option>
+                <option value="4">4x</option>
+                <option value="8">8x</option>
+                <option value="16">16x</option>
+                <option value="32">32x</option>
+            </select>
+            <button id="clearimagesbutton">&#x267B; Clear images</button>
+        </div>
+
+        <div id="images"></div>
+
+        <script>
+            // Returns zoom factor as a number.
+            var getSelectedZoom = function () {
+                return new Number(document.getElementById("zoomselect").value);
+            }
+
+            // Scales a given image with the selected zoom factor.
+            var scaleSingleImage = function (img) {
+                var factor = getSelectedZoom();
+                img.style.width = (img.naturalWidth * factor) + "px";
+                img.style.height = (img.naturalHeight * factor) + "px";
+            }
+
+            // Rescales all <img> elements in the page. Used after changing the selected zoom.
+            var rescaleImages = function () {
+                var imageList = document.getElementsByTagName("img");
+                for (var i = 0; i < imageList.length; i++) {
+                    scaleSingleImage(imageList[i])
+                }
+            }
+
+            // Removes everything contained in the images <div>.
+            var clearImages = function () {
+                var imagesNode = document.getElementById("images");
+                while (imagesNode.hasChildNodes()) {
+                    imagesNode.removeChild(imagesNode.lastChild);
+                }
+            }
+
+            // Returns a properly sized image with the given base64-encoded PNG data.
+            var createImage = function (pngData, imageName) {
+                var imageContainer = document.createElement("figure");
+                if (imageName.length > 0) {
+                    var newFileNameHeader = document.createElement("figcaption");
+                    newFileNameHeader.textContent = escape(imageName);
+                    imageContainer.appendChild(newFileNameHeader);
+                }
+                var newImage = document.createElement("img");
+                newImage.src = "data:image/png;base64," + pngData;
+                newImage.onload = (function () {
+                    // Grab the image for the callback. We need to wait until
+                    // the image has been properly loaded to access its
+                    // naturalWidth and naturalHeight properties, needed for
+                    // scaling.
+                    var cbImage = newImage;
+                    return function () {
+                        scaleSingleImage(cbImage);
+                    };
+                })();
+                imageContainer.appendChild(newImage);
+                return imageContainer;
+            }
+
+            // Returns a new h3 header with the given file name.
+            var createFileNameHeader = function (fileName) {
+                var newHeader = document.createElement("h3");
+                newHeader.textContent = fileName;
+                return newHeader;
+            }
+
+            // Returns a new image block to contain images from a file.
+            var createImagesBlock = function () {
+                var imagesBlock = document.createElement("div");
+                imagesBlock.className = "imagesblock";
+                return imagesBlock;
+            }
+
+            // Processes a chunk of QPA text from the given file name. Creates
+            // the file name header and a list of images in the images <div>, as
+            // found in the text.
+            var processText = function(textString, fileName) {
+                var imagesNode = document.getElementById("images");
+                var newHeader = createFileNameHeader(fileName);
+                imagesNode.appendChild(newHeader);
+                var imagesBlock = createImagesBlock();
+                // [\s\S] is a match-anything regexp like the dot, except it
+                // also matches newlines. Ideally, browsers would need to widely
+                // support the "dotall" regexp modifier, but that's not the case
+                // yet and this does the trick.
+                // Group 1 are the image element properties, if any.
+                // Group 2 is the base64 PNG data.
+                var imageRegexp = /<Image\b(.*?)>([\s\S]*?)<\/Image>/g;
+                var imageNameRegexp = /\bName="(.*?)"/;
+                var result;
+                var innerResult;
+                var imageName;
+                while ((result = imageRegexp.exec(textString)) !== null) {
+                    innerResult = result[1].match(imageNameRegexp);
+                    imageName = ((innerResult !== null) ? innerResult[1] : "");
+                    // Blanks need to be removed from the base64 string.
+                    var pngData = result[2].replace(/\s+/g, "");
+                    imagesBlock.appendChild(createImage(pngData, imageName));
+                }
+                imagesNode.appendChild(imagesBlock);
+            }
+
+            // Loads images from the text in the text area.
+            var loadImages = function () {
+                processText(document.getElementById("qpatext").value, "<Pasted Text>");
+            }
+
+            // Loads images from the files in the file selector.
+            var handleFileSelect = function (evt) {
+                var files = evt.target.files;
+                for (var i = 0; i < files.length; i++) {
+                    // Creates a reader per file.
+                    var reader = new FileReader();
+                    // Grab the needed objects to use them after the file has
+                    // been read, in order to process its contents and add
+                    // images, if found, in the images <div>.
+                    reader.onload = (function () {
+                        var cbFileName = files[i].name;
+                        var cbReader = reader;
+                        return function () {
+                            processText(cbReader.result, cbFileName);
+                        };
+                    })();
+                    // Reads file contents. This will trigger the event above.
+                    reader.readAsText(files[i]);
+                }
+            }
+
+            // File selector trick: click on the selector when clicking on the
+            // custom button.
+            var clickFileSelector = function () {
+                document.getElementById("fileselector").click();
+            }
+
+            // Clears selected files to be able to select them again if needed.
+            var clearSelectedFiles = function() {
+                document.getElementById("fileselector").value = "";
+            }
+
+            // Set event handlers for interactive elements in the page.
+            document.getElementById("fileselector").onclick = clearSelectedFiles;
+            document.getElementById("fileselector").addEventListener("change", handleFileSelect, false);
+            document.getElementById("fileselectorbutton").onclick = clickFileSelector;
+            document.getElementById("loadimagesbutton").onclick = loadImages;
+            document.getElementById("zoomselect").onchange = rescaleImages;
+            document.getElementById("clearimagesbutton").onclick = clearImages;
+        </script>
+    </body>
+</html>